ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

PKU 1026

2019-08-11 22:42:26  阅读:321  来源: 互联网

标签:1026 PKU s2 s1 len while 202 scanf


原文链接:http://www.cnblogs.com/ACAC/archive/2010/07/25/1784833.html

题意:   给你长度n的一组序列a[i]  然后k操作次数 再给你一组字符串   字符串长度不足n的后面补零

           操作:把字符在i位置的放到a[i]上   如此操作k次

方法:   直接模拟肯定TLE

    求字符串整体周期T k=k%T  k还是很大 超时

            求每个字符串的周期 T[i]   然后 k=k%T[i]

 

#include<stdio.h>
#include<string.h>
int main()
{
int i,j,k;
int n,len;
char s1[202],s2[202],c;
int a[202],b[202];
int temp,t;
while(scanf("%d",&n)!=EOF && n)
{
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
for(i=1;i<=n;i++)
{
t=i;
b[i]=1;
while(a[t]!=i)
{
t=a[t];
b[i]++;
}
}
scanf("%d",&k);
while(k!=0)
{
scanf("%c",&c);
gets(s1);
len=strlen(s1);
if(len<n)
{
for(i=len;i<n;i++)
{
s1[i]=' ';
}
s1[n]='\0';
}
for(i=0;i<n;i++)
{
temp=k%b[i+1];
t=i+1;
while(temp--)
t=a[t];
s2[t-1]=s1[i];
}
s2[n]='\0';
puts(s2);

scanf("%d",&k);
}
printf("\n");
}
return 0;
}

 

转载于:https://www.cnblogs.com/ACAC/archive/2010/07/25/1784833.html

标签:1026,PKU,s2,s1,len,while,202,scanf
来源: https://blog.csdn.net/weixin_30399155/article/details/99238581

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有