LA 3641 Leonardo's Notebook / 置换

2024-06-15 12:08
文章标签 notebook 置换 la 3641 leonardo

本文主要是介绍LA 3641 Leonardo's Notebook / 置换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

给出26个大写字母组成 字符串B问是否存在一个置换A使得A^2 = B

书上的证明结论

2个长度为n的相同循环相乘 n为奇数时结果为1个长度为n的循环 n为偶数时分裂成2个长度为n/2的循环

倒过来

对于一个长度为n为奇数的循环B都能找到一个长度为n的循环A使得A^2 = B 对应任意2个长度为n的不相交循环B,C 都能找到一个长度为2n的循环A 使得A^2 = BC

所以对于B=(1,3,4)(2,5)(6,9)(7,8)输出No 因为长度为偶数的循环有奇数个

以上白书有介绍

对于输入的B 算出所有循环的长度 在判断一下 长度为偶数的是否有偶数个

#include <cstdio>
#include <cstring>
using namespace std;int main()
{char s[30];int vis[30], cnt[30], T;scanf("%d", &T);while(T--){scanf("%s", s);memset(vis, 0, sizeof(vis));memset(cnt, 0, sizeof(cnt));for(int i = 0; i < 26; i++){if(!vis[i]){int j = i,n = 0;do{vis[j] = 1;j = s[j] - 'A';n++;}while(j != i);cnt[n]++;}}int ok = 1;for(int i = 2; i <= 26; i += 2)if(cnt[i]%2)ok = 0;if(ok)puts("Yes");elseputs("No");}return 0;
}


 

这篇关于LA 3641 Leonardo's Notebook / 置换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1063409

相关文章

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

【Jupyter Notebook】汉化

1.打开:Anaconda Prompt 2.输入:"activate Zhui01"(注意:Zhui01是刚创建的环境名字) activate Zhui01 3.输入:"pip install jupyterlab-language-pack-zh-CN" pip install jupyterlab-language-pack-zh-CN 4.打开:Jupyter Noteb

[轻笔记] jupyter notebook 指定conda虚拟环境

安装插件 conda install nb_conda 进入conda env conda activate ${env_name}conda install ipykernelconda deactivate #3. 运行jupyter notebook conda activate # 需要先进入conda环境,非常重要jupyter notebook 会发现,在ju

jupyter notebook - python23 并存使用

在终端输入 $python2 -m pip install ipykernel$python2 -m ipykernel install --user$python3 -m pip install ipykernel$python3 -m ipykernel install --user ---------------------- Kernels for Python 2 and 3

【Jupyter】 Notebook 中的 IPython 魔法:12个必知实用技巧

Jupyter Notebook 作为一个强大的交互式计算环境,结合 IPython 的功能,为数据科学家和程序员提供了丰富的工具。本文将介绍12个在 Jupyter Notebook 中使用 IPython 的实用技巧 1. 清除输出:使用 clear_output() from IPython.display import clear_output# 执行一些操作print("This

La-Z-Boy 标签制作注意事项

在制作标签之前,供应商需要通过EDI向La-Z-Boy发送提前发货通知(ASN)。ASN中的每个明细行将会至少对应一个运输编号(shipment ID),这个信息将会被体现在运输标签上,和标签上的条形码一起,用于La-Z-Boy收货。 供应商必须确保其装箱单以及发票中的信息能够对应上该批次货物的运输标签以及相关运输编号。供应商可以在La-Z-Boy提供的标签文档中,找到La-Z-Boy EDI部

页面置换算 - FIFO、LFU、LRU

缓存算法(页面置换算法)-FIFO、LFU、LRU   在前一篇文章中通过leetcode的一道题目了解了LRU算法的具体设计思路,下面继续来探讨一下另外两种常见的Cache算法:FIFO、LFU 1.FIFO算法   FIFO(First in First out),先进先出。其实在操作系统的设计理念中很多地方都利用到了先进先出的思想,比如作业调度(先来先服务),为什么这个原则在很多地方都会

【Anaconda】修改jupyter notebook默认打开的工作目录、jupyter notebook快捷键

jupyter notebook快捷键 针对单元格的颜色蓝色命令行模式绿色编辑模式两种模式的切换编辑模式切换到命令行模式 >>> esc键命令行模式切换到编辑模式 >>> 鼠标左键或者直接按enter键1.标题的书写方式1:1.esc进入命令行模式2.按m键3.写内容4.运行单元格即可方式2:1.编辑模式下直接写文本内容2.按esc键进入命令行模式3.再按数字键选择几级标题4.运行单元格即可

[转载]如何向IPython Notebook中导入.py文件

相关文章链接 如何向IPython Notebook中导入.py文件 如何将 ipynb 发布到 blog 中(html, markdown格式) Introducing IPython Notebook Beginner’s IPython Notebook Tutorial Example notebook showing how to do statistics

[转载]jupyter notebook中创建tensorflow的kernel

我在conda下创建了tensorflow的env,然而在jupyter notebook中却无法选择此kernel,历经google多方搜索,解决方法如下。 首先在conda下激活env activate tensorflowenv 然后安装ipykernel pip install ipykernel 最后将此kernel链接到jupyter notebook中 pyt