标签:
前两次为了节省点内存SB了。。。浪费了时间 结果TLE
#include <stdio.h> #include <string.h> char pass[100000+10]; char str[200000+10]; bool vis[200000+10]; int main() { int ncase,t=1; scanf("%d",&ncase); while(ncase--) { int n,len,m; memset(vis,false,sizeof(vis)); gets(pass); gets(pass); scanf("%d",&n); len=strlen(pass); if(len%n==0) { m=len/n; } else { m=len/n+1; } int r=m*n-len; int len2=m*n; int temp=r; int j=len-1; for(int i=len2;i>0;i--) { if(i%m==0&&temp) { temp--; vis[i]=true; } else str[i]=pass[j--]; } printf("Case #%d:\n",t++); for(int k=1;k<=m;k++) { for(int i=k;i<=len2;i+=m) { if(!vis[i]) printf("%c",str[i]); } } printf("\n"); } }
列变位法解密(2016"百度之星" - 测试赛(热身,陈题))
标签:
原文地址:http://blog.csdn.net/su20145104009/article/details/51356171