description

solution

我竟然一眼题!!

变换后的TTT数组是[0,n)[0,n)[0,n)的排列,变换规则也有,距离DDD也知道
很明显可以求出iii的可能变换对象
这不就是个最大匹配??
无解就是匹配数量达不到nnn罢了
最小字典序那就从后往前匹配,这样前面的就可以让后面的让出更优匹配

code

#include <cstdio>
#include <vector>
#include <cstring>
#include <iostream>
using namespace std;
#define maxn 10005
vector < int > G[maxn];
int n;
bool vis[maxn];
int match[maxn], link[maxn];bool find( int u ) {for( int i = 0;i < G[i].size();i ++ ) {int v = G[u][i];if( vis[v] ) continue;vis[v] = 1;if( ! match[v] || find( match[v] ) ) {match[v] = u;link[u] = v;return 1;}}return 0;
}int main() {scanf( "%d", &n );for( int i = 0, d;i < n;i ++ ) {scanf( "%d", &d );int x = ( i + d ) % n;int y = ( i - d + n ) % n;G[i].push_back( min( x, y ) );G[i].push_back( max( x, y ) );}int ans = 0;for( int i = n - 1;~ i;i -- ) {memset( vis, 0, sizeof( vis ) );if( find( i ) ) ans ++;}if( ans != n ) return ! printf( "No Answer\n" );for( int i = 0;i < n;i ++ )printf( "%d ", link[i] );return 0;
}

[NOI2009] 变换序列 (匈牙利最大匹配)相关推荐

  1. P1963 [NOI2009]变换序列

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

  2. bzoj1562 [NOI2009]变换序列

    bzoj1562 [NOI2009]变换序列 NOI也有SB题系列. 一个\(i\)只有两种可能的\(T_i\) 要求所有\(T_i\)不重复,且字典序坠小. 仔细想一想匈牙利匹配的过程就可以知道:要 ...

  3. bzoj1562[NOI2009] 变换序列

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

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

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

  5. 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 ...

  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. WebAssembly基础
  2. 使用KiWi Syslog Daemon构建日志服务器
  3. 异常“企图释放并非呼叫方所拥有的多用户终端运行程序”的处理
  4. jQuery Form Plugin (jquery表单插件)
  5. C++计算nCr模p表达式如n! / (r! * (n-r)!)的实现算法(附完整源码)
  6. 数据科学家数据分析师_站出来! 分析人员,数据科学家和其他所有人的领导和沟通技巧...
  7. python双划线_Python中单下划线(_)和双下划线(__)的特殊用法
  8. jsp页面中使用javascript获取后台放在request或session中的值
  9. 服务器故障内存位置怎么确定,服务器故障内存位置怎么确定
  10. STM8S103之时钟设置
  11. ADC芯片——AD7705最详细讲解(STM32)
  12. CTF挑战赛-合天网安实验室
  13. java 求次方_Java递归例子——求x的y幂次方
  14. 如何避免动态字体Font Texture过大
  15. 列位置CDays列位置
  16. 让Enter键实现Tab键的功能
  17. 实时时钟系统设计c语言,基于PC机的实时时钟实现
  18. 【LeetCode - 702】搜索长度未知的有序数组
  19. OpenHarmony 开发者大会2023 活动开始报名啦!抢票中ing
  20. 好员工,别以为裁员与你无关(上

热门文章

  1. 宇宙十大不为人知的事情
  2. 人为什么会出轨?麻省理工学院告诉你:男女配对的真相
  3. oracle创建public链接,如何在oracle直接使用地址来创建database link
  4. colorkey唇釉是否安全_colorkey空气唇釉,19/支
  5. aix 安装oracle9,IBM P570 小型机AIX5.3系统安装ORACLE9i
  6. javadoc文档的生成方法_[springboot 开发单体web shop] 4. Swagger生成Javadoc
  7. 不要被约束的意思_俗话说:“娶妻不娶颧骨高,嫁汉不嫁连眉梢”,到底什么意思?...
  8. postgresql 动态添加过滤条件_通过窗口函数进行过滤导致Postgresql
  9. python最大值_Python 获取最大值函数|python3教程|python入门|python教程
  10. 7-28 搜索树判断 (25 分)(思路加详解) just easy!