麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

bzoj1562 [NOI2009]變換序列

2019-11-10 19:52:47
字體:
來源:轉載
供稿:網友

Description

Input

Output

Sample Input

51 1 2 2 1

Sample Output

1 2 4 0 3

HINT

30%的數據中N≤50;60%的數據中N≤500;100%的數據中N≤10000。

正解:匈牙利算法。

這題給他們考試。。沒人想到二分圖匹配。有兩人想到用網絡流做可行解,給了4分部分分,其他人都是爆搜。。實在覺得這題不是很難吧。。

看完題目以后就能發現這是一道裸的二分圖匹配。如果用網絡流做,dinic無法保證最優解,EK會超時。那么可以考慮用匈牙利算法。只要保證遍歷與一個點相連的邊按照相連點從小到大的順序就行,因為對于單一的一個點來說,如果增廣了一條路徑就不會再增廣了。而對于全局則從最后一個點開始增廣,因為后增廣的路徑會覆蓋掉先增廣的路徑。

//It is made by wfj_2048~#include <algorithm>#include <iostream>#include <cstring>#include <cstdlib>#include <cstdio>#include <vector>#include <cmath>#include <queue>#include <stack>#include <map>#include <set>#define inf (1<<30)#define il inline#define RG register#define ll long long#define File(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout)using namespace std;int g[30010][5],match[30010],vis[30010],n;il int gi(){    RG int x=0,q=1; RG char ch=getchar(); while ((ch<'0' || ch>'9') && ch!='-') ch=getchar();    if (ch=='-') q=-1,ch=getchar(); while (ch>='0' && ch<='9') x=x*10+ch-48,ch=getchar(); return q*x;}il int dfs(RG int x,RG int cnt){    for (RG int i=1;i<=2;++i){	RG int v=g[x][i]; if (vis[v]==cnt) continue; vis[v]=cnt;	if (match[v]==-1 || dfs(match[v],cnt)){	    match[v]=x,match[x]=v; return 1;	}    }    return 0;}il void work(){    n=gi(); RG int x,flag=1,cnt=0;    for (RG int i=0;i<n;++i){	x=gi(); g[i][1]=i+x; if (g[i][1]>=n) g[i][1]-=n;	g[i][2]=i-x; if (g[i][2]<0) g[i][2]+=n;	if (g[i][1]>g[i][2]) swap(g[i][1],g[i][2]);	g[i][1]+=n,g[i][2]+=n;    }    memset(match,-1,sizeof(match));    for (RG int i=n-1;i>=0;--i) if (!dfs(i,++cnt)){ flag=0; break; }    if (!flag){ PRintf("No Answer"); return; } printf("%d",match[0]-n);    for (RG int i=1;i<n;++i) printf(" %d",match[i]-n); return;}int main(){    File("transform");    work();    return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产一区二区三区影视 | 精品国产91久久久久久久妲己 | 成人在线视频播放 | 免费黄色在线电影 | 国产午夜精品一区二区三区视频 | 一区二区三区欧洲 | 国产免费黄色 | 久久久久久久久久久亚洲 | 91成人免费视频 | 手机国产乱子伦精品视频 | 久久影院一区二区三区 | 亚洲va久久久噜噜噜久牛牛影视 | 一区二区三区四区高清视频 | 日本成年免费网站 | 99在线在线视频免费视频观看 | 国产男女 爽爽爽爽视频 | 7777奇米成人四色影视 | 国产精品v片在线观看不卡 成人一区二区三区在线 | 久久精品在这里 | 密室逃脱第一季免费观看完整在线 | 国产99久久久久久免费看 | 国产成人高清成人av片在线看 | 亚洲xxx视频 | omofun 动漫在线观看 | 久久精品片 | 久久久久免费精品 | 国产免费高清 | 成人在线第一页 | 日日操夜夜操视频 | 狠狠干五月天 | av在线浏览 | 国产精品热 | 欧美jizzhd极品欧美 | 午夜色视频在线观看 | 亚洲天堂成人在线观看 | av在线免费不卡 | 成人午夜视频网站 | 一级国产航空美女毛片内谢 | 日韩中字幕| 日韩视频一区二区三区在线观看 | 精品一区二区在线观看 |