bzoj1562 [NOI2009]变换序列


NOI也有SB题系列。
一个\(i\)只有两种可能的\(T_i\)
要求所有\(T_i\)不重复,且字典序坠小。
仔细想一想匈牙利匹配的过程就可以知道:要从后往前寻找匹配&优先匹配小的\(T\)。
匈牙利秒之。

// It is made by XZZ
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
#define rep(a,b,c) for(rg int a=b;a<=c;a++)
#define drep(a,b,c) for(rg int a=b;a>=c;a--)
#define il inline
#define rg register
#define vd void
typedef long long ll;
il int gi(){rg int x=0;bool flg=0;rg char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')flg=1;ch=getchar();}while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();return flg?-x:x;
}
const int maxn=10001;
int A[maxn],B[maxn];
int match[maxn];bool vis[maxn];
il bool dfs(int x){if(!vis[A[x]]){vis[A[x]]=1;if(match[A[x]]==-1||dfs(match[A[x]])){match[A[x]]=x;return 1;}}if(!vis[B[x]]){vis[B[x]]=1;if(match[B[x]]==-1||dfs(match[B[x]])){match[B[x]]=x;return 1;}}return 0;
}
int T[maxn];
int main(){int n=gi(),d;rep(i,0,n-1){d=gi(),A[i]=(i+d)%n,B[i]=(i-d+n)%n;if(A[i]>B[i])swap(A[i],B[i]);}memset(match,-1,sizeof match);drep(i,n-1,0){memset(vis,0,sizeof vis);if(!dfs(i)){puts("No Answer");return 0;}}rep(i,0,n-1)T[match[i]]=i;rep(i,0,n-1)printf("%d ",T[i]);puts("");return 0;
}

转载于:https://www.cnblogs.com/xzz_233/p/7608499.html

bzoj1562 [NOI2009]变换序列相关推荐

  1. bzoj1562[NOI2009] 变换序列

    题目链接:bzoj1562 题目大意: 给出一个序列(0~n-1),这个序列经过某个变换会成为另外一个序列,但是其中的元素不会改变,给出初始序列与变换后的序列每一位上的"距离",求 ...

  2. bzoj1562[NOI2009]变换序列——2016——3——12

    任意门:http://www.lydsy.com/JudgeOnline/problem.php?id=1562 题目: 对于0,1,-,N-1的N个整数,给定一个距离序列D0,D1,-,DN-1,定 ...

  3. BZOJ1562: [NOI2009]变换序列(二分图 匈牙利)

    Description Input Output Sample Input 5 1 1 2 2 1 Sample Output 1 2 4 0 3 HINT 30%的数据中N≤50: 60%的数据中N ...

  4. P1963 [NOI2009]变换序列

    题目描述 不想水字,详见某谷:P1963 [NOI2009]变换序列 solution 其实    的计算就类似于环上的距离. 对于每一个  都可能有两种位置选择:, . 所以把它们分别连边,二分图上 ...

  5. [NOI2009] 变换序列 (匈牙利最大匹配)

    description - solution 我竟然一眼题!! 变换后的TTT数组是[0,n)[0,n)[0,n)的排列,变换规则也有,距离DDD也知道 很明显可以求出iii的可能变换对象 这不就是个 ...

  6. 1562. [NOI2009]变换序列【二分图】

    Description Input Output Sample Input 5 1 1 2 2 1 Sample Output 1 2 4 0 3 HINT 30%的数据中N≤50: 60%的数据中N ...

  7. bzoj 1562 [NOI2009]变换序列 二分图

    题面 题目传送门 解法 显然可以构建一个二分图模型 但是要求出字典序最小的解,那么网络流就无能为力了 考虑用匈牙利算法来跑 匈牙利算法就是用大的来代替小的,那我们把连接的点从小到大排序,然后从左边大的 ...

  8. 【二分图匹配】BZOJ1562-[NOI2009] 变换序列

    [题目大意] 对于0,1,-,N-1的N个整数,给定一个距离序列D0,D1,-,DN-1,定义一个变换序列T0,T1,-,TN-1使得每个i,Ti的环上距离等于Di.一个合法的变换序列应是0,1,-, ...

  9. BZOJ 1562 变换序列

    二分图匹配 要求字典序最小 匈牙利算法 自N-1至0尝试匹配 先尝试小数,这个通过加边顺序控制 这样高优先权位置只有在不可行时才取大数 #include <iostream>using n ...

最新文章

  1. 十种方法保持云中数据安全
  2. 如何导入给定名称的模块为字符串?
  3. haproxy调度web案例
  4. top与bottom、left与right的优先级
  5. VS中使用C#开发一个登录窗体应用程序
  6. ASP+MSSQL注入工具 web版 beta 3 final release
  7. BZOJ 5249: [2018多省省队联测]IIIDX(贪心 + 线段树)
  8. cannot find -lunwind-x86_64
  9. qt中设置父窗口中某一控件样式后,子窗口中某一控件也随父控件样式
  10. F5刷新表单页不能清空缓存
  11. python实现logistic回归对样本量有要求么_logistic回归样本量多少合适?
  12. C语言集合的排序方法,排序集合 c语言.doc
  13. 【算法笔记】输出字符串的所有子序列
  14. origin 2018安装教程与安装包
  15. Tuxera2022Mac系统读写NTFS磁盘工具装机必备
  16. video call BT audio音频流程
  17. 双色OLED屏图片点阵转换工具(OledTools)
  18. PTA L1-030 一帮一(详解)
  19. php gd图片验证,php笔记之GD库图片创建/简单验证码
  20. RAD0.1 RB.1/.2

热门文章

  1. python -v乱码提示,#import....等信息的问题解决方式。
  2. thinkphp实现当前页面点击下载文件实例
  3. lnmp 清除mysql日志,军哥LNMP 如何关闭 Mysql 日志,并且删除 mysql-bin.0000*日志文件...
  4. 【ES6(2015)】新的声明方式 let、const
  5. MySQL入门之事件
  6. 下一步linux命令bzip,linux基础命令---bzip2
  7. java线程等待按钮点击_java如何用多线程使线程在sleep时等待按钮按下?
  8. 计算机应用技术自创ppt,教师必备:超好用的课件制作工具
  9. python列表_Python列表抽象
  10. uibot css selector定位,UiBot如何使用CSS Selector