bzoj 1562: [NOI2009]变换序列
来源:互联网 发布:大学生网络兼职 编辑:程序博客网 时间:2024/06/05 05:50
题意;
语文不好,概括不出,大概就是一个数可以用另两个数替换,求最小字典序答案。
题解:
有点玄学的增广路。
tyb的方法
容易想到二分图匹配,但是匹配要求字典序最小,一开始想到在建边的时候改变顺序,但是后来发现一个问题,前面已匹配的有可能会被后面的抢走,这样字典序就变大了。看了hzwer的代码,发现只要倒序匹配就好了,为什么呢?tkj大神告诉我,这样就能让前面的抢后面的,保证字典序最小。
code:
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int n,d[10010];struct node{ int y,next;}a[40010];int last[10010],len=0;void ins(int x,int y){ a[++len].y=y; a[len].next=last[x];last[x]=len;}int chw[10010],match[10010],tim=0;bool findma(int x){ for(int i=last[x];i!=-1;i=a[i].next) { int y=a[i].y; if(chw[y]!=tim) { chw[y]=tim; if(match[y]==-1||findma(match[y])) return match[y]=x,true; } } return false;}int main(){ memset(last,-1,sizeof(last)); memset(match,-1,sizeof(match)); scanf("%d",&n); for(int i=0;i<n;i++) { int tmp[5],k=0; scanf("%d",&d[i]); if(i>=d[i]) tmp[++k]=i-d[i]; if(i+d[i]<n) tmp[++k]=i+d[i]; int t=n-d[i]; if(i>=t) tmp[++k]=i-t; if(i+t<n) tmp[++k]=i+t; sort(tmp+1,tmp+1+k); for(int j=k;j;j--) ins(i,tmp[j]); } for(int i=n-1;i>=0;i--) { tim++; if(!findma(i)){printf("No Answer");return 0;} } int primt[10010]; for(int i=0;i<n;i++) primt[match[i]]=i; for(int i=0;i<n-1;i++) printf("%d ",primt[i]); printf("%d\n",primt[n-1]);}
阅读全文
2 0
- bzoj 1562: [NOI2009]变换序列
- bzoj 1562: [NOI2009]变换序列
- BZOJ 1562([NOI2009]变换序列-匈牙利算法)
- bzoj 1562: [NOI2009]变换序列 匈牙利算法
- BZOJ 1562 [NOI2009]变换序列 (二分图匹配)
- [二分图匹配] [NOI2009] BZOJ 1562——序列变换
- [BZOJ]1562: [NOI2009]变换序列 二分图匹配
- BZOJ 1562: [NOI2009]变换序列 【二分图匹配】【匈牙利】
- bzoj 1562: [NOI2009]变换序列 二分图最大匹配
- [NOI2009]变换序列
- [BZOJ1562][NOI2009]变换序列
- bzoj1562 [NOI2009]变换序列
- bzoj1562[NOI2009] 变换序列
- BZOJ1562: [NOI2009]变换序列
- 【NOI2009】bzoj1562 变换序列
- 【bzoj1562】 NOI2009—变换序列
- 【NOI2009】Bzoj1562 & Codevs1843 变换序列
- bzoj 1562 变换序列
- 网站点赞 评论 回复 数据库设计
- poj 2031 Building a Space Station (kruskal算法)
- 蓝牙基础知识学习
- 最全Pycharm教程(14)——Pycharm编辑器功能总篇
- ACM/ICPC 沈阳网络赛 1004 (nlogn最长上升子序列)
- bzoj 1562: [NOI2009]变换序列
- Insomnia cure
- CSS3box-shadow属性的使用
- Struts2文件上传
- linux 配置tftp和nfs
- 水王争霸
- 实体实现parcelable接口传递整个对象(购物车逻辑之前)
- 0908期 HTML 基础 第一讲
- Mycat从入门到放弃