啊啊全域性最小割?
看了一天沒看懂
考慮乙個最小割,把原圖分成兩半(廢話
左邊取乙個點為s,右邊去乙個點為t,跑出來的最小割一定是答案(廢話
於是取1為s,隨機t,1000組,保證不重複,隨機資料隨便過
但是有卡點,3000個點被分成了2999+1或2998+2
這兩種情況都是可以預處理的
當2997+3時有三個點隨機到乙個就行,1000次,a掉的概率有
想想卡點不多(2999+1,2998+2為主),隨機至上(笑),反正過了
#include #include #include #include #include #define rep(j,k,l) for (int j=k;j<=l;++j)
#define red(j,k,l) for (int j=k;j>=l;--j)
#define n 3005
#define m 100005*2
#define inf 1000000007
#define min(a,b) (((a)
using namespace std;
int n,m,a[m],b[m],c[m],d[m],e[m],pos;
struct dinic
int dfs(int k,int re)
if (re) deep[k]=-1;
return flow;
}int maxflow()
//printf("----%d\n",flow);
return flow;
}} f;
int main(){
srand(time(0));
while (scanf("%d%d",&n,&m)!=eof){
for (int i=1;i
2017 百度之星 程式設計大賽 資格賽
度度熊為了拯救可愛的公主,於是與 大魔王戰鬥起來。大魔王的麾下有n個怪獸,每個怪獸有a i 的生命值,以及b i 的防禦力。度度熊一共擁有m種攻擊方式,第i種攻擊方式,需要消耗k i 的晶石,造成p i 點傷害。當然,如果度度熊使用第i個技能打在第j個怪獸上面的話,會使得第j個怪獸的生命值減少p i...
2017 百度之星 程式設計大賽 資格賽
思路 比賽的時候也一直以為是計算幾何問題,所以就沒想,賽後看了看大佬們的部落格發現思路還是挺簡單的,就是對度度熊夥伴進行建圖,有邊的條件是所有所有村莊位於這天邊的一側,然後對這個圖跑乙個最小環 之前一直不理解叉積,做了幾道題之後好多了 include include include include ...
有道難題資格賽1
另類的異或 描述 對於普通的異或,其實是二進位制的無進製的加法 這裡我們定義一種另類的異或a op b,op是乙個僅由 組成的字串,如果op中包含n個 那麼a op b表示a和b之間進行n 1進製的無進製的加法。下圖展示了3 5 和 4 5的計算過程 輸入 第一行有乙個正整數t,表示下面共有t組測試...