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...