POJ 2886 Who Gets the Most Candies? (樹狀數組)

  感覺樹狀數組要比線段樹優雅。。。反素數打表什麼的都搞好了,就是從當前位置推下一個位置的公式沒搞出來,後來看得別人的。。。if(p[now].x > 0)  nxt = (nxt - 1 + p[now].x)%leave;else      nxt = ((nxt + p[now].x)%leave + leave)%leave;然後在樹狀數組裡找第nxt大的數(二分)。。。View Code //#pragma comment(linker,"/STACK:327680000,327

狀態壓縮dp入門題 POJ 1185 炮兵陣地

  POJ 1185 炮兵陣地  中文題,題意不再贅述。  解法:從題目可以知道,每一行的狀態只與前兩行有關。已知N < 100, M <= 10。很明顯的可以把M壓縮,把M中的每一個位置的狀態可以用0,1表示。所以M的總狀態可以用長度為M的二進位轉化成的十進位數表示。計算可以發現總的合法狀態並不多,因為要保證同一行的兩個士兵不能相互攻擊到。求合法狀態的關鍵代碼:REP(i, (1<<m)) { p = i; if(((p << 1

鄰接表實現圖的深度遍曆

鄰接表實現圖的深度遍曆,糾結的問題啊。。。。。View Code #include <stdio.h>#include <malloc.h>#define MAX 100typedef struct arcnode/*表節點*/{int adjvex; /*鄰接點*/struct arcnode *nextarc;/*指向下一條弧的指標*/}arcnode;typedef struct vnode /*頭結點*/{int data; /*定點資訊*/

HDU_4036 Rolling Hongshu

   物理題,我把公式推錯了。。。  兩個限制條件,1、能爬上最高坡。2、Sweet Potato在每一個有Bitter Potatoes位置的速度大於等於Bitter 的速度。設要求的初速度為pv1、pv = sqrt(2*g*(maxh - h0));2、pv = tpv = sqrt(vi*vi + 2*g*hi); 為bitter potato縱座標。View Code #include <iostream>#include <cstring>#include &

關於多邊形內點數問題的一些變形

最近兩次比賽出現兩道相同類型的題,有人十幾分鐘就AC了,而有人卡了倆小時。。。反思。。  先說hdu4353這道題,題意是要求一個從N個點1裡邊畫出一個多邊形來,然後給出M個點2。讓這個(多邊形的面積/多邊形內點2的個數)最小。 描述很複雜。。。但是仔細想想會發現,多邊形的點越多,面積也就越大,所以,這裡只能畫三個點,也就是一個三角形。至於怎麼求點2的個數,這是很有必要總結的,祭奠我那苦逼的倆小時吧。。。。先看一個圖: 這不是立體圖,僅僅是個平面圖。。。假設sum[i][j]表示i,j這條線上方

單調隊列 筆記

很早看過這個東西,不過今天遇到一道題發現居然沒有寫筆記。。。這裡補上吧。以下是我從某個題的解題報告翻出來的。轉載的別人的。。。。以此為例:對於N=8,K=3,8個元素序列1 3 -1 -3 5 3 6 7,視窗大小為3,也就是要求出(1, 3, -1), (3, -1, -3), (-1, -3, 5), (-3, 5, 3), (5, 3, 6), (3, 6, 7)這6個序列中的最小值,結果簡單,就是-1, -3, -3, -3, 3, 3. 使用單調隊列,首先要有一個資料結構struct 

關於省賽,關於以後的訓練

  省賽結束了!第一次在我們學校舉辦,沒出什麼亂子,老師忙的也夠嗆。唯獨悲劇的是我們給老師的成績。。。!一個銀牌,兩個銅牌。我們隊因為有隊長在,拿到銀牌。雖然是銀牌第一,但終歸不是金。就像昨晚張老師說的:你們不好好做都對不起劉老師!其實這個成績,我們誰也沒能對得起,劉老師,張老師,還有很多關注ACM的老師。。。  整個比賽差不多前兩個小時解決掉四道題,然後就悲劇了。。。先是被山東誤導去做I,浪費掉40多分鐘後發現隊長發現很難寫。然後去搞J,悲劇的定積分,早忘乾淨了!最後搞F,還有半個小時左右吧。

當最短路變成二維 -_-!

 當最短路變成二維,就會發生非常有意思的事情。。。問題:給出u v w,表示從u -> v(雙向邊)所耗的時間為w,又知道沒經過一條邊,獲利為1(對於一天邊可以來回走)。求從start到end點,獲利至少為k時用的最小時間。。。如果沒有那個k,這個問題直接就是st -> ed的最短路。spfa,dijkstra。。。等等現在可以設 dis[i][j]表示到從st到 i點經過邊數為j 時的最短路。然後直接spfa,隊列中的每個點保留兩個值,節點號,和到這個節點的邊數。const

ZOJ 2849 Attack of Panda Virus (優先隊列 priority_queue)

   優先隊列,據說標程是並查集,沒思路。貌似優先隊列都是直接用stl寫的,又逼我用stl了。prioriry_queue不熟。ps: value值越小,優先順序越高。所以重載 < 運算子時按優先順序從大到小排序bool operator < (const node a, const node b) {if(a.day != b.day) return a.day > b.day;return a.type > b.type;} 參考網上的代碼View Code

HDU_1285 確定比賽名次

確定比賽名次Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3389    Accepted Submission(s): 1213Problem

看了hh大牛的一篇博文,深表慚愧

  無意間看到hh大牛的這篇部落格:http://www.cppblog.com/notonlysuccess/archive/2011/09/26/80162.html#156835“去年10月16號,A了第一道A+B,我的AC生涯也正是開始了今天是4月16號,正好半年,提交了三道水題。。。在HDU的AC量達到了900。。。”  這得如何瘋狂的刷題才能做到這樣。回頭想想自己,為了能1Y一道水題而沾沾自喜!做完一道題就不自覺的想著休息一會,我又有什麼資本休息?比別人多的題多還是比別人掌握的好。就

POJ 搜尋(2)

最佳化剪枝和可行性剪枝poj1699搜尋的技巧和最佳化poj3411, poj1724記憶化搜尋poj3373,poj1691     最佳化剪枝和可行性剪枝POJ 1699對這題無語了,爆搞TLE,加一個怎麼也沒想到的減枝47MS...規模並不大,可以直接dfs,需要預先處理一下,add[i][j]表示第j號串加在第i號串上增加的長度。。。這個計算的時候要注意。本菜就錯在這上邊wa了一上午!。 搜尋的技巧和最佳化 poj

HDU比賽(二)

  第一感覺就是差距太大了。6題, 7題,甚至AK。。。Orz各路大神!  A,簡單題。就是類比那個過程。還是編碼能力不行,過的很慢。       B,這個gbx跟我說了下題意,然後用暴力方法試了一下,TLE。後來想到記錄連續出現0最多的點的位置,從這個位置種開始調整序列。       C,排序,我直接sort的,很慢。後來bbm說可以用vector。      

SRM 552 div2

250pt水題 500pt 分兩種情況, 1、RGB中最小值足夠大,制約因素是R+G+B的值,這種情況下結果為(R+G+B)/tot 2、R+G+B足夠大,制約因素是RGB中最小值不夠大,這種情況下結果為m/c 兩者取最小值第一種情況,R=7,G=6,B=6,最小值6足夠畫兩個三角形,但是R+G+B=19不夠畫兩個三角形 第二種情況R=1000000000,G=6,B=6,R+G+B足夠畫N多三角形,但是G、B只有6個,最多畫兩個三角形 /*就他妹的6行代碼!!!*/class

一道噁心題的流氓解法(HUD 4002 Find the maximum)

好噁心的題。。。。。證明可以證出來。。。。歐拉函數:φ(n) = n(1 - 1/p1)(1 - 1/p2)(1 - 1/p3)....n/φ(n) = (p1/(p1 - 1)) (p2/(p2 - 1)) ....要使n/φ(n)最大,因為p/(p - 1)隨p的增大而減小,所以p應該儘可能的小,p/(p - 1) > 1所以p儘可能的多。。。也就是說從最小的素數開始往後連乘枚舉,找到比n小且離n最近的數。。。。   不得不吐嘈的是,=,

SDUT 2384 El Dorado

    El DoradoTime Limit: 1000MS Memory limit: 65536K題目描述Bruce Force has gone to Las Vegas, the El Dorado for gamblers. He is interested especially in one betting game, where a machine forms a sequence of n numbers by drawing random numbers. Each

兩個位元運算運用到搜尋中的問題

  兩個典型的例題:POJ 1753, POJ 2965;POJ 1753 狀態轉移:1 int Flip(int pos, int i) {2 pos ^= (1<<i);3 if(i+4 < 16) pos ^= (1<<(i+4));4 if(i-4 >= 0) pos ^= (1<<(i-4));5 if(i%4+1<4) pos ^= (1<<(i+1));6

HDU_2647 Reward (拓撲排序)

注意將後一個數插到前一個數上,然後用隊列每次儲存入度為0的數,累加同一工資層級的人的工資View Code #include <stdio.h>#include <stdlib.h>#include <string.h>#define N 10005typedef struct node //鄰接表節點{int adj; //節點值 struct node * next;}node;struct //頂點{int

HDU_1520 Anniversary Praty (樹型dp)

  /*題意:傳說中的Ural神校要搞80周年校慶。學校的員工關係構成一顆樹,每個員工有個pleasure值,表示參加party的開心程度。每個員工都不想跟自己的頂頭上司一起參加party。然後校長就想啦,怎麼發請柬才能讓party最high。  思路:定義fw[i]表示帶上根結點時這顆子樹的最大pleasure,fn[i]表示不帶根結點時這顆子樹的最大pleasure。轉移方程就是:fw[i] = sum(fn[son[i]]);fn[i] = sum( max(fn[son[i]], fw[

總結幾種結構體初始化的方法

結構體能自由組裝資料,是一種很常見的資料打包方法。當我們定義一個結構體後,沒有初始化就使用,就會使用到垃圾資料,而且這種錯誤很難發現。對於定義的任何變數,我們最好都先初始化。 除了使用memset和ZeroMemory之外,有沒有更簡單的方法初始化呢?因為有時候每定義一個結構體,就使用一次memset,也會覺得很繁瑣。 我這裡總結三種方法,如果大家有什麼好的方法,不妨加上去。 1、結構體的建構函式中初始化。 2、繼承模板類初始化 3、定義時初始化在C++中,結構體與類在使用上已沒有本質上的區別了

總頁數: 61357 1 .... 9420 9421 9422 9423 9424 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.