HDU5878 HDU5891 2016網路賽青島

2022-01-29 13:08:28 字數 1913 閱讀 9497

a、題意:給出乙個整數n

, 找出乙個大於等於n

的最小整數m

, 使得m的質因數只有2 3 5 7

分析:預處理出質因數2 3 5 7的數,超過maxt就行,然後找

b、題意:求1/1^2+1/2^2+...+1/n^2

分析:題坑,意思是n很大

感覺上越到後來值越小,實際上這個是趨向π^2/6,於是小範圍的n直接遞推,大範圍的就輸出π^2/6

c、d、題意:有一壺水, 體積在ll

rr

之間, 有兩個杯子, 你要把水倒到兩個杯子裡面, 使得杯子水體積幾乎相同(體積的差值小於等於1), 並且使得壺裡剩下水體積不大於1. 你無法測量壺裡剩下水的體積, 問最小需要倒水的次數

e、題意:問n

個手勢的石頭剪刀布遊戲是否能保證出每種手勢勝率都一樣

分析:當遊戲平衡時,我出乙個手勢,對方出的n-1個輸贏手勢中肯定一半贏我,一半輸我,所以n-1為偶數時候遊戲平衡 否則不平衡

f、題意:n個點m條邊的無向圖,找乙個尤拉路或者尤拉迴路,使得路徑經過點的異或和最大

分析:首先並查集判連通

統計度數為奇數的點的個數,如果為0,說明是尤拉迴路,如果為2說明是尤拉路,否則不存在

對於尤拉路,並不需要找出具體的路徑,易得乙個點對ans的貢獻為(d[x]/2 mod 2)*v[x],特別的起點和終點就一次

對於尤拉迴路,不一樣的對方是起點要多異或一次,所以要列舉起點

g、題意:n

個有序序列的歸併排序.每次可以選擇不超過k

個序列進行合併,合併代價為這些序列的長度和.總的合併代價不能超過t

, 問k

最小是多少

分析:二分k,然後就是石子合併問題,但是很有可能合到最後個數不夠k個,所以可以提前合併最小的一些數然後再合併

值得一提的是,如果直接丟進priority_queue中會tle,事實上,可以將排好序的丟進佇列a,合併後的數直接丟進佇列b(易得b是非單減),這樣可以省去priority_queue的乙個log複雜度

h、i、題意:給出 n 個點的無向帶權樹,問刪掉每條邊後的直徑總和

分析:先可以跑出這個樹的直徑(spfa) s->t

如果刪的邊不在s->t上,那麼這次結果顯然就是s->t長度

如果刪的邊在s->t上,很顯然就在兩邊的子樹中找,那麼思路就出來了,可以提前dp預處理找出以a、b為根的子樹的最長鏈 

j、題意:01揹包,100個物品,但重量是[0,1e9]間的隨機數

分析:肯定不能dp了

按價效比排序,然後搜尋剪枝

可行性剪枝的話就這麼考慮:對於第k個,如果後面的價效比按第k個價效比來,同樣重量的情況下,求出最大價值,如果比目前最優解還大,那麼就剪枝掉

k、 題意:1000個點10000條邊的無向圖,敵人從n走一條最短路到1,在第i條路設定障礙的代價是wi,求最少的代價使得敵人至少會遇到一次障礙

分析:就是先弄出最短路路,再在上面跑最小割(最大流)

具體的先spfa跑遍最短路,如果d[x]-d[y]=map[x][y]那麼x->y就是最短路上的一條邊

然後跑最大流 

l、題意:50個數,10w個詢問,每次問刪掉第i,j,k個數後,是否存在一種選10個數和為87的方案,只需要輸出 』yes』 或者 』no』

分析:先預處理出f[i][j][k]表示去除i,j,k是否可以

求f[i][j][k]明顯是個01揹包

如果按一般那麼些會tle

這裡可以用上bitset優化:bitset<90> dp[11]

第一維表示用了幾個數(揹包重量),第二維表示和

狀態轉移時候就是dp[j]|=dp[j-1]m、

hdu5878 列舉,打表

題意 到一行輸入t,表示下面有t組資料,然後下面t行每行輸入乙個數n 定義x 2 a 3 b 5 c 7 d a,b,c,d為自然數,x不大於1e 9 要求對於每乙個n輸出 n的最小x 思路 由於x比較大,可以先打個表 依次列舉a,b,c,d將所有不大於1e 9的x存到陣列a中,再用 lower b...

hdu1285 hdu4857 拓撲排序

一 原題內容 problem description 有n個比賽隊 1 n 500 編號依次為1,2,3,n進行比賽,比賽結束後,裁判委員會要將所有參賽隊伍從前往後依次排名,但現在裁判委員會不能直接獲得每個隊的比賽成績,只知道每場比賽的結果,即p1贏p2,用p1,p2表示,排名時p1在p2之前。現在...

樹狀陣列 hdu2689 hdu2838

題意 給定乙個正整數n,和乙個1 n的乙個排列,每個數可以和旁邊的兩個數的任意乙個交換,每交換一次總次數就要加一,問將這個排列轉換成乙個遞增的排列需要多少次交換?題意可以轉換成求這個排列的逆序對數。include include include include using namespace std...