hdu題面php
Time limithtml
6000 ms網絡
Memory limit.net
131072 kB翻譯
OScode
Windowshtm
Sourceblog
比賽時候一眼網絡流,但數據範圍顯然不行,又看到這道題提交人數賊多,因而轉向嘗試各類貪心,什麼兩邊都取最大值、一邊取最大值另外一邊取最小值、兩邊都取最小值……不少貪心方法都本身出數據hack掉了,想不到怎麼hack的思路再寫網絡流生成隨機數據對拍,拍幾百組沒錯再交,但仍是WA個不停……比賽時這題最終經過率0.5%get
賽後知道離散數學裏有個東西叫作Hall定理,是匈牙利的理論基礎,然而以前咱們並不知道這麼個東西……菜啊……等下學期離散學到這個再來填坑
能百度到的題解,看上去比較靠譜的都和hall定理沾邊了,其餘的貪心都沒有證實,靠「顯然」這類字眼矇混過關,總感受只是數據水放過去了,應該會被hack……
官方題解——
這篇博客能夠算是官方題解的翻譯
另外還有兩個貌似(由於我還沒看懂,留坑)靠hall定理保證正確性的「貪心」
#include<cstdio> #include<algorithm> const int MAXN=1e6+5; int T; int n; long long a[MAXN],b[MAXN]; int main() { scanf("%d",&T); while(T--) { scanf("%d",&n); a[0]=b[0]=0; for(int i=1;i<=n;i++) scanf("%lld%lld",a+i,b+i),a[0]+=a[i],b[0]+=b[i]; long long ans=std::min(a[0],b[0]); for(int i=1;i<=n;i++) ans=std::min(ans,a[0]+b[0]-a[i]-b[i]); printf("%lld\n",ans); } return 0; }
留坑:總有一天我要整理一下這個博客混亂的標籤