zoukankan      html  css  js  c++  java
  • poj 3128

    置换的应用。若一个置换B中所有的元素个数为偶数的循环节和它元素相等的循环节的个数为偶数个,就存在置换A使得A^2=B

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 using namespace std;
     5 const int maxn=30;
     6 char s[maxn];
     7 int vis[maxn],cou[maxn];
     8 int main()
     9 {
    10     int n;
    11     scanf("%d",&n);
    12     while(n--)
    13     {
    14         memset(vis,0,sizeof(vis));
    15         memset(cou,0,sizeof(cou));
    16         scanf("%s",s);
    17         int i,j;
    18         for(i=0;i<26;i++) s[i]=s[i]-'A';
    19         int tc,tot=0;
    20         for(i=0;i<26;i++)
    21         {
    22             if(!vis[i])
    23             {
    24                 vis[i]=1;
    25                 tc=1;
    26                 j=s[i];
    27                 while(j!=i)
    28                 {
    29                     vis[j]=1;
    30                     j=s[j];
    31                     tc++;
    32                 }
    33                 cou[tc]++;
    34             }
    35         }
    36         for(i=2;i<=26;i+=2)
    37             if(cou[i]%2)  break;
    38         if(i<=26)printf("No\n");
    39         else printf("Yes\n");
    40     }
    41     return 0;
    42 }
  • 相关阅读:
    Asp.net调用百度搜索引擎
    iOS 之 alcatraz (插件管理器)
    @dynamic、@synthesize
    iOS 准备
    iOS 沙盒
    iOS 引导页
    iOS 开发之登陆
    iOS 程序开发
    Java 验证用户名、密码
    数据库操作
  • 原文地址:https://www.cnblogs.com/lj030/p/3080541.html
Copyright © 2011-2022 走看看