成都賽區網路賽 hdu 4292 food

2021-06-09 13:44:02 字數 1207 閱讀 7994

題目:

給出n個人喜歡的飲料種類以及食物種類,每個人只能取其中一種且數量為1,現在給出有f中食物以及d種飲料,以及他們各自的數量,問如何安、排食物以及飲料,使得最多的人得到乙個食物以及一瓶飲料

題目類似poj3281 dining 只是那題目每個種類都只有數量1 ,所以這道題目就只用才起點建邊和終點建邊的時候加上流量限制就可以了

首先,我們為了控制乙個人只連一瓶飲料,乙份食物,那麼我們可以把乙個人拆成兩個,他們之間連一條權值為1的邊,另外左邊連它喜歡的食物,權值為1,右邊連它喜歡的飲料,權值為1,在起點連食物的時候加流量限制,終點加流量限制,跑一遍最大流即可。 

#include#include#include#includeusing namespace std;   

#define maxn 10005

#define maxe 200000

#define inf 1e9

int ne,nv,tmp,s,t,index;

struct edgeedge[maxe];

int net[maxn];

int isap()

} for(i = s; i != t; i = edge[curedge[i]].v)

max_flow += cur_flow;

u = neck;

} for(i = curedge[u]; i != -1; i = edge[i].next)

if(edge[i].cap > 0 && dist[u] == dist[edge[i].v]+1)

break;

if(i != -1)

else

}

return max_flow;

}void addedge(int u,int v,int f)

int main()

for(i=1;i<=d;i++)

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

}/*if(tc==f)

addedge(s,f+i,1);*/

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

}/*if(tc==d)

addedge(f+n+i,t,1);*/

}int ans=isap();

printf("%d\n",ans);

} return 0;

}

acm成都賽區網路熱身賽 Sum

題目大意 給你乙個n和x n的範圍 n 1000001 n表示有n個數,在這n個數查詢是否有兩個數之和為x的,如果有就輸出 yes 沒有 no sample input 3 3 1 2 3 2 31 3sample output yesno 最後我編了一組測試資料 3 16 1 8 16 no用二分...

成都網路賽 hdu 4288 4291 4296

成都網路賽結束了,還好我們這種渣渣學校拿到了個名額 hdu 4288 coder 這題開始我還想想用stl 來做,發現每次都要隔5個數加和,這樣統計的操作變成線性了,不行 然後想到線段樹,發現線段樹就很好做,每個點統計改點區間內mod 5的 5個和,在統計區間內元素的個數,然後就可以很方便的進行區間...

Hdu5441 2015長春賽區網路賽

題目大意 有n 個城市,城市之間有 m條道路,每條道路用時為t。有 q次詢問,每次詢問在時間 t內可以在多少對城市之間走動。注意 a,b 和 b,a 算兩種方案。題目分析 我們可以知道,如果n 個城市之間相互聯通,那麼方案數一共有 n n 1 個,所以現在我們要求的就是在 t範圍內有多少城市相互聯通...