HDU 6667 Roundgod and Milk Tea

hdu題面php

吐槽

比賽時候一眼網絡流,但數據範圍顯然不行,又看到這道題提交人數賊多,因而轉向嘗試各類貪心,什麼兩邊都取最大值、一邊取最大值另外一邊取最小值、兩邊都取最小值……不少貪心方法都本身出數據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;
}

留坑:總有一天我要整理一下這個博客混亂的標籤

相關文章
相關標籤/搜索