数学专项permutation:UVa 306
来源:互联网 发布:ie11网吧专用优化版 编辑:程序博客网 时间:2024/05/01 14:29
只要找到循环节就行了,然后就是模拟了。
#include <iostream>#include <cstdio>#include <cstring>using namespace std;int n,k;int p[210],vis[210],cnt[210],v[210];char s[210],per[210];int main(){ while(cin>>n&&n) { for(int i=0;i<n;i++) { cin>>p[i]; p[i]--; } memset(vis,0,sizeof(vis)); int c=1; for(int i=0;i<n;i++) if(!vis[i]) { int j=i,m=0; do { vis[j]=c; j=p[j]; m++; } while(j!=i); cnt[c++]=m; } while(cin>>k&&k) { getchar(); cin.getline(s,300); memset(v,0,sizeof(v)); for(int i=0;i<n;i++) if(!v[i]) { int tmp=k%cnt[vis[i]]; int j=i; do { int t=tmp,u=j; v[j]=1; while(t--) u=p[u]; if(i<strlen(s)) per[u]=s[i]; else per[u]=' '; } while(j!=i); } per[n]=0; cout<<per<<endl; } cout<<endl; } return 0;}
- 数学专项permutation:UVa 306
- 数学专项counting:UVa 11038
- 数学专项counting:UVa 10883
- 数学专项counting:UVa 10079
- 数学专项counting:UVa 10081
- 数学专项game_theory:UVa 12293
- 数学专项game_theory:UVa 11892
- 数学专项game_theory:UVa 11927
- 数学专项number_theory:UVa 10515
- 数学专项number_theory:UVa 10622
- 数学专项number_theory:UVa 10127
- 数学专项number_theory:UVa 10090
- 数学专项number_theory:UVa 10539
- 数学专项number_theory:UVa 11105
- 数学专项number_theory:UVa 11490
- 数学专项number_theory:UVa 11728
- 数学专项counting:UVa 580
- 数学专项counting:UVa 417
- java枚举enum剖析
- 【WPF】提高InkAnalyer手写汉字识别的准确率
- Spring 学习笔记
- POJ 1061
- #pragma pack 详解
- 数学专项permutation:UVa 306
- Smarty遍历数组 (一维、二维)
- Java KeyTool的使用
- 软件开发平台概要设计
- 几个JQuery插件
- 在WIN7下使用 pietty或putty远程登陆fedora18系统( LINUX 服务器)
- TCC(Tiny C Compiler)用C语言当脚本例子
- 相册特效
- 资源视图在另一编辑器中