题目

给出一个26个大写字母的置换B,

求是否存在一个置换A,,输出Yes/No

思路来源

指南P148

题解

一般考察置换群的性质时,对置换做循环分解

构造一个奇偶置换都存在的置换

对其作

注意到a、b互不影响,运用交换律分别考虑,有

对于给定的B内的长度为奇的置换,调整顺序即可构造出A

而对于长度为偶的置换,一定需要成对出现才可逆推出A

所以检查所有长度为2,4,…的置换的奇偶性即可

手推半小时,代码五分钟

代码

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long ll;
int t,len[27];
bool vis[27];
char s[27];
int main(){scanf("%d",&t);while(t--){scanf("%s",s);memset(vis,0,sizeof vis);memset(len,0,sizeof len);for(int i=0;i<26;++i){int v=s[i]-'A',cnt=0;for(;!vis[v];v=s[v]-'A'){vis[v]=1;cnt++;}len[cnt]++;}bool ok=1;for(int i=2;i<=26;i+=2){if(len[i]%2){ok=0;break;}}puts(ok?"Yes":"No");}return 0;
}

LA3641 置换群相关推荐

  1. 河南省第二届ACM程序设计大赛解题报告(置换群)

    1. 1 /* 2 前两道题一直在纠结提议,特别是第二题,看了别人的代码才明白过来题意,由测试用例都没明白 3 */ 4 #include <iostream> 5 #include &l ...

  2. 置换群和Burnside引理,Polya定理

    定义简化版: 置换,就是一个1~n的排列,是一个1~n排列对1~n的映射 置换群,所有的置换的集合. 经常会遇到求本质不同的构造,如旋转不同构,翻转交换不同构等. 不动点:一个置换中,置换后和置换前没 ...

  3. POJ3270 Cow Sorting ——置换群

    我的第一道置换群论题目. 开始的时候不知道这就是置换群,于是对着自己数据各种思考,居然想出来了标准算法的关键部分. 当时的想法是这样的: 从后向前扫描,如果这个数字没有在该在的位置上,那么就用最小的数 ...

  4. 近世代数--置换群--判断置换的奇偶性

    近世代数--置换群--判断置换的奇偶性 置换奇偶性定义 置换分解成轮换的结果是唯一的,置换分解成对换的结果不唯一 证明置换轮换的等价式 置换分解成对换的奇偶性 博主是初学近世代数(群环域),本意是想整 ...

  5. 近世代数--置换群--置换permutation分解成什么?置换的级如何计算?

    近世代数--置换群--置换permutation分解成什么?置换的级如何计算? 置换的分解 置换的级计算 博主是初学近世代数(群环域),本意是想整理一些较难理解的定理.算法,加深记忆也方便日后查找:如 ...

  6. poj 3590 The shuffle Problem(置换群+DP)

    题目链接:poj 3590 The shuffle Problem 题意: 给你一个数n,让你找一个字典序最小的置换序列,使得变换整个周期最大. 题解: 由于置换群的性质,我们可以将n拆分成m个数,使 ...

  7. 置换怎么表示成轮换_§2.3 置换群

    让我们暂时先放下上节笔记中循环群美丽的性质,来专心看看置换群吧. 不得不说,置换群只是群的表现形式之一,本身不具有特殊的性质.但是,由于置换群所含内容的广泛性,它可以和其余所有的群(只能是有限群)形成 ...

  8. CodeForces - 1553E Permutation Shift(暴力+置换群求环)

    题目链接:点击查看 题目大意:假设初始时的数组为 [1,2,3,...,n][1,2,3,...,n][1,2,3,...,n],同时 kkk 为偏移量,则原数组会循环右移 kkk 个单位,假设 k= ...

  9. 牛客多校6 - Josephus Transform(线段树求k-约瑟夫环+置换群的幂)

    题目链接:点击查看 题目大意:给出一个长度为 n 的排列,初始时为 1 , 2 , 3 ... n - 1 , n,现在有 m 次操作,每次操作表示为 ( k , x ) ,即进行 x 次 k-约瑟夫 ...

最新文章

  1. GDAL Data Model(转)
  2. 深入浅出SQL Server中的死锁
  3. 实验二:网络嗅探与欺骗
  4. OpenCV的图像处理——iOS与OpenCV之间图像转换
  5. cocoJS配置文件:project.json
  6. 2021牛客暑期多校训练营3 B-Black and white(思维+最小生成树)
  7. html中的ppt文字不清晰,HTML页面的文字布局与文字效果.ppt
  8. 全国计算机vb二级题型,全国计算机二级考VB机试常见题型汇总.doc
  9. python 序列列表区别_Python6序列和列表
  10. ES6 Map 数据结构、ES6 箭头函数
  11. Arcgis中的空间数据拓扑理论及规则
  12. python实现爬取12306所有站点及其编码信息(附源代码)!
  13. 关于Kali使用aireplay-ng时出现设备繁忙的解决(转自 zpblog.cn)
  14. 解决手机刷机卡在开机谷歌验证
  15. Android:通过systrace进行性能分析及使用-详细
  16. ios linux远程控制软件,ios手机远程控制 ToDesk 1.0.9 iOS/iPad 版下载(远程控制软件)-520下载...
  17. python类的封装是什么意思_python类封装 python中将函数和变量封装成类的好处
  18. Windows10 安装spyder3
  19. 计算机睡眠状态无法唤醒屏幕,电脑休眠后无法唤醒,可以用这个方法-华力学校...
  20. matlab grab cut,matlabGrabCutS graph 算法, 编写,可以运 能直观看到结果。 272万源代码下载- www.pudn.com...

热门文章

  1. c语言输出成绩表格制作模板,《C语言程序设计》课程设计汇本汇本报告模板(样例).doc...
  2. 面对前所未有的挑战 联想未来依靠什么复兴?
  3. ASPICE总结——1
  4. 【学习笔记】《网络安全态势感知》第五章:网络安全态势感知本体体系
  5. 【Springboot】整合wxjava实现 微信小程序:授权登录
  6. python爬虫之ProxyPool(代理ip地址池的构建)
  7. 手机能连上WIFI而笔记本无法连上
  8. 【JavaScript】面向对象——构造函数(详解)
  9. IPVS之NAT转发模式
  10. [Overleaf] LaTeX中的斜体、加粗、下划线和简单指令