P2765 魔術球問題

2022-04-30 09:06:11 字數 870 閱讀 3434

p2765 魔術球問題

貪心模擬就可以過.........好像和dinic沒啥關係

找找規律發現可以貪心放。n又灰常小。

設答案=m

你可以$o(mn)$直接模擬過去

閒的慌得話可以像我用個$set$維護

複雜度可以降為$o(mlogn)$

網路流.....不會寫(逃

口胡一下dinic

乙個點$u$拆成2個表示

1.放在柱子最下面,與s連線(u)

2.滿足和下面的數的和為完全平方數,與t連線(u')

滿足關係的兩個點u、v,建立v-u'

當乙個點被加入後,它就相當於放在最下面的點了。

去看luogu的題解吧(逃

#include#include

#include

using

namespace

std;

struct

data

};set

s;set

::iterator it;

int n,w=1,tp[60][3000

];int

main());

for(int i=2;;++i)); --it;

if((*it).val+i!=w*w)

else

); }

}else

); s.erase(*it);}}

for(it=s.begin();it!=s.end();++it)

tp[(*it).id][++tp[(*it).id][0]]=(*it).val;

for(int i=1;i<=n;++i)

return0;

}

P2765 魔術球問題

題目描述 問題描述 假設有n根柱子,現要按下述規則在這n根柱子中依次放入編號為1,2,3,的球。1 每次只能在某根柱子的最上面放球。2 在同一根柱子中,任何2個相鄰球的編號之和為完全平方數。試設計乙個演算法,計算出在n根柱子上最多能放多少個球。例如,在4 根柱子上最多可放11 個球。程式設計任務 對...

P2765 魔術球問題

每個數可以放在和它和是平方的數上面 我們可以想到,如果乙個點可以放在某個點上面是那個點向它連邊 如果乙個點向它所有能連的點連邊,那麼它的最小鏈覆蓋就是我們要找的答案 經過簡單推理可以發現,每個點可以連線的點的大小是遞增的,那麼把編號小的點放在柱子下面一定更優 這樣連邊就行了 include incl...

洛谷P2765 魔術球問題

問題描述 假設有n根柱子,現要按下述規則在這n根柱子中依次放入編號為1,2,3,的球。1 每次只能在某根柱子的最上面放球。2 在同一根柱子中,任何2個相鄰球的編號之和為完全平方數。試設計乙個演算法,計算出在n根柱子上最多能放多少個球。例如,在4 根柱子上最多可放11 個球。程式設計任務 對於給定的n...