先用bfs過濾出最短路中的路徑,然後最小割最大流定理。
#include#include#include#include#include#include#include#define pii pairusing namespace std;
const int maxn=1200;
struct edge
;struct node
};vectordg[maxn];
vector< node > ng[maxn];//第乙個表示來自哪,第二個表示這條邊在fa裡的編號
int dis[maxn];
vectorg[maxn];//這個存的是在邊表裡的位置
vectore;
bool vis[maxn];
int d[maxn];
int cur[maxn];
int n,m;
void init()}}
return vis[t];
}int dfs(int x,int a,int t)
}return flow;
}int maxflow(int s,int t)
q.pop();
continue;
}if(now!=st) ng[zu.first].push_back(dg[zu.first][zu.second]);
vis[now]=1;
dis[now]=step;
q.pop();
int size=dg[now].size();
for(int i=0;i>ttt;
while(ttt--)
{init();
cin>>n>>m;
for(int i=0;i
2018 ICPC 青島網路賽 Couleur
題意 給出乙個長度為n的序列,每次將某個子串行分成兩段,輸出所有段中逆序對最大的數目。題解 假設從x位置斷開,找到x最左邊的斷點l,和最右邊的斷點r,那麼就是把區間 l,r 分解為 l,x 和 x,r 如何維護兩段的逆序對個數呢?啟發式分解 假設斷點更靠近r,我們暴力求解出 x,r 的逆序對個數,再...
ICPC青島站網路賽 C 高效模擬
嗯這道辣雞題,當時我隊友寫了錯誤的 我稍微改動了,思路基本上是對了,但是就是超時,我第一直覺是我這個演算法思路是沒有任何問題的,但是就是tle,我感覺這個演算法已經優化的不能再優化了啊。後面就懷疑我們自己的演算法有問題,於是改演算法,想很多莫名奇妙的,卻無法實現的東西,最後導致我另外乙個隊友那邊卡題...
2016 青島區域賽小結
轉眼大三,又是一場區域賽打下來,本來也沒什麼追求,想拿個銀牌就此光榮退役。但時不與我,又是乙個擦肩而過,心裡還是莫名有些悲傷,都已經是大三狗的我,該何去何從又是乙個值得思量的問題。轉瞬一年時光,猶記得在南陽ccpc賽場上吊車尾的模樣,自那之後好像打擊頗大,也是那場比賽之後才算是正式入了acm這個坑。...