1562: [NOI2009]变换序列 - BZOJ
2014-05-22 21:08
330 查看
Description
View Code
const maxn=10010; var first,link:array[0..maxn]of longint; a:array[0..maxn,0..1]of longint; next,last:array[0..maxn]of longint; n:longint; procedure swap(var x,y:longint); var t:longint; begin t:=x;x:=y;y:=t; end; procedure init; var i,x:longint; begin read(n); for i:=1 to n do begin read(x); a[i,0]:=i+x; a[i,1]:=i-x; if a[i,0]>n then dec(a[i,0],n); if a[i,1]<1 then inc(a[i,1],n); if a[i,0]>a[i,1] then swap(a[i,0],a[i,1]); end; end; var time:longint; flag:array[0..maxn]of longint; function path(x:longint):boolean; var i:longint; begin for i:=0 to 1 do if (i=0) or (a[x,i]<>a[x,i-1]) then if flag[a[x,i]]<>time then begin flag[a[x,i]]:=time; if (link[a[x,i]]=0) or (path(link[a[x,i]])) then begin link[a[x,i]]:=x; exit(true); end; end; exit(false); end; procedure work; var i:longint; begin for i:=n downto 1 do begin inc(time); if path(i)=false then begin writeln('No Answer'); exit; end; end; for i:=1 to n do if link[a[i,0]]=i then write(a[i,0]-1,' ') else write(a[i,1]-1,' '); end; begin init; work; end.
View Code
相关文章推荐
- 【NOI2009】Bzoj1562 & Codevs1843 变换序列
- Bzoj 1562: [NOI2009]变换序列 匈牙利算法,二分图匹配
- BZOJ 1562 [NOI2009]变换序列 (二分图匹配)
- 【bzoj1562】【[NOI2009]变换序列】匈牙利算法的性质利用
- [BZOJ1562][NOI2009]变换序列
- 【bzoj1562】【[NOI2009]变换序列】匈牙利算法的性质利用
- bzoj1562[NOI2009]变换序列——2016——3——12
- bzoj 1562: [NOI2009]变换序列 二分图最大匹配
- [BZOJ1562][NOI2009] 变换序列
- 【二分图匹配】BZOJ1562-[NOI2009] 变换序列
- 【bzoj1562】 NOI2009 变换序列 二分图匹配
- BZOJ 1562([NOI2009]变换序列-匈牙利算法)
- [BZOJ]1562: [NOI2009]变换序列 二分图匹配
- 【二分图最大匹配】BZOJ1562 [NOI2009]变换序列
- bzoj1562 [NOI2009]变换序列
- 【bzoj1562】【noi2009】【变换序列】【匈牙利算法】
- bzoj1562 [NOI2009]变换序列(二分图完美匹配+贪心)
- bzoj 1562: [NOI2009]变换序列 匈牙利算法
- BZOJ1562: [NOI2009]变换序列
- BZOJ1562: [NOI2009]变换序列