121 条题解
- 
  0zby1234 LV 8 @ 2008-08-31 19:15:47 /***|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|** 
 记录号 Flag 得分 记录信息 环境 评测机 程序提交时间
 R797621 Accepted 100 P1318 From zby1234 CPP Vijos Dolphin 2008-8-31 19:13:56编译通过... 
 ├ 测试数据 01:答案正确... 0ms
 ├ 测试数据 02:答案正确... 0ms
 ├ 测试数据 03:答案正确... 0ms
 ├ 测试数据 04:答案正确... 0ms
 ├ 测试数据 05:答案正确... 0ms
 ├ 测试数据 06:答案正确... 0ms
 ├ 测试数据 07:答案正确... 0ms
 ├ 测试数据 08:答案正确... 0ms
 ├ 测试数据 09:答案正确... 0ms
 ├ 测试数据 10:答案正确... 0ms
 ---|---|---|---|---|---|---|---|-
 Accepted 有效得分:100 有效耗时:0ms
 ***|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|\**|**/
 #include
 using namespace std;
 int main()
 {
 int n=0,s,t,w,z;
 char b[27],f='a'+t-1;
 cin>>s>>t>>w>>b+1;
 z=w;
 s='a'+t;
 do
 if(++f==s-w+z+1||z==w)
 f=b[z--];
 else
 {
 b[++z]=f;
 if(z==w)
 {
 cout
- 
  0@ 2008-08-29 21:42:45编译通过... 
 ├ 测试数据 01:答案正确... 0ms
 ├ 测试数据 02:答案正确... 0ms
 ├ 测试数据 03:答案正确... 0ms
 ├ 测试数据 04:答案正确... 0ms
 ├ 测试数据 05:答案正确... 0ms
 ├ 测试数据 06:答案正确... 0ms
 ├ 测试数据 07:答案正确... 0ms
 ├ 测试数据 08:答案正确... 0ms
 ├ 测试数据 09:答案正确... 0ms
 ├ 测试数据 10:答案正确... 0ms
 ---|---|---|---|---|---|---|---|-
 Accepted 有效得分:100 有效耗时:0ms用递推也可以 才用31行 一次ac 秒杀 
- 
  0@ 2008-08-21 15:02:23写的什么东西 
 看都看不懂
 想骂人了...
- 
  0@ 2008-08-20 19:19:20编译通过... 
 ├ 测试数据 01:答案正确... 0ms
 ├ 测试数据 02:答案正确... 0ms
 ├ 测试数据 03:答案正确... 0ms
 ├ 测试数据 04:答案正确... 0ms
 ├ 测试数据 05:答案正确... 0ms
 ├ 测试数据 06:答案正确... 0ms
 ├ 测试数据 07:答案正确... 0ms
 ├ 测试数据 08:答案正确... 0ms
 ├ 测试数据 09:答案正确... 0ms
 ├ 测试数据 10:答案正确... 0ms
 ---|---|---|---|---|---|---|---|-
 Accepted 有效得分:100 有效耗时:0ms弱弱的水题 
- 
  0@ 2008-07-23 08:35:34典型的回溯 
 就是让你用回溯做
 秒杀
 提AC率喽
- 
  0@ 2007-12-05 18:32:26编译通过... 
 ├ 测试数据 01:答案正确... 0ms
 ├ 测试数据 02:答案正确... 0ms
 ├ 测试数据 03:答案正确... 0ms
 ├ 测试数据 04:答案正确... 0ms
 ├ 测试数据 05:答案正确... 0ms
 ├ 测试数据 06:答案正确... 0ms
 ├ 测试数据 07:答案正确... 0ms
 ├ 测试数据 08:答案正确... 0ms
 ├ 测试数据 09:答案正确... 0ms
 ├ 测试数据 10:答案正确... 0ms
 ---|---|---|---|---|---|---|---|-
 Accepted 有效得分:100 有效耗时:0ms
 发现还有这题弱题。。
- 
  0@ 2007-11-13 16:45:05直接枚举…… 编译通过... 
 ├ 测试数据 01:答案正确... 0ms
 ├ 测试数据 02:答案正确... 0ms
 ├ 测试数据 03:答案正确... 0ms
 ├ 测试数据 04:答案正确... 0ms
 ├ 测试数据 05:答案正确... 0ms
 ├ 测试数据 06:答案正确... 0ms
 ├ 测试数据 07:答案正确... 0ms
 ├ 测试数据 08:答案正确... 0ms
 ├ 测试数据 09:答案正确... 275ms
 ├ 测试数据 10:答案正确... 0ms
 ---|---|---|---|---|---|---|---|-
 Accepted 有效得分:100 有效耗时:275ms
- 
  0@ 2007-11-11 17:11:13第1000个人过,好有记念意义。 
- 
  0@ 2007-10-24 19:23:14766,不错的数字。AC的第76个题目 
- 
  0@ 2007-10-21 11:47:54├ 测试数据 01:答案正确... 0ms 
 ├ 测试数据 02:答案正确... 0ms
 ├ 测试数据 03:答案正确... 0ms
 ├ 测试数据 04:答案正确... 0ms
 ├ 测试数据 05:答案正确... 0ms
 ├ 测试数据 06:答案正确... 0ms
 ├ 测试数据 07:答案正确... 0ms
 ├ 测试数据 08:答案正确... 0ms
 ├ 测试数据 09:答案正确... 0ms
 ├ 测试数据 10:答案正确... 0ms
 ---|---|---|---|---|---|---|---|-
 Accepted 有效得分:100 有效耗时:0ms庆祝 :本人普及组至此为止全过了!@~~ 
- 
  0@ 2007-08-26 10:11:24编译通过... 
 ├ 测试数据 01:答案正确... 0ms
 ├ 测试数据 02:答案正确... 0ms
 ├ 测试数据 03:答案正确... 0ms
 ├ 测试数据 04:答案正确... 0ms
 ├ 测试数据 05:答案正确... 0ms
 ├ 测试数据 06:答案正确... 0ms
 ├ 测试数据 07:答案正确... 0ms
 ├ 测试数据 08:答案正确... 0ms
 ├ 测试数据 09:答案正确... 0ms
 ├ 测试数据 10:答案正确... 0ms
 ---|---|---|---|---|---|---|---|-
 Accepted 有效得分:100 有效耗时:0ms
- 
  0@ 2007-07-03 22:16:18可以用做《火星人》这题的思路! 
- 
  0@ 2007-06-19 10:21:34递归即可~ 
- 
  0@ 2007-04-22 11:29:58编译通过... 
 ├ 测试数据 01:答案正确... 0ms
 ├ 测试数据 02:答案正确... 0ms
 ├ 测试数据 03:答案正确... 0ms
 ├ 测试数据 04:答案正确... 0ms
 ├ 测试数据 05:答案正确... 0ms
 ├ 测试数据 06:答案正确... 0ms
 ├ 测试数据 07:答案正确... 0ms
 ├ 测试数据 08:答案正确... 0ms
 ├ 测试数据 09:答案正确... 0ms
 ├ 测试数据 10:答案正确... 0ms
 ---|---|---|---|---|---|---|---|-
 Accepted 有效得分:100 有效耗时:0ms
 比赛时打错了一个字母'k',wa了九个点!
 555~
 本来400!!!
 郁闷ing
- 
  0@ 2007-01-06 20:39:20编译通过... 
 ├ 测试数据 01:答案正确... 0ms
 ├ 测试数据 02:答案正确... 0ms
 ├ 测试数据 03:答案正确... 0ms
 ├ 测试数据 04:答案正确... 0ms
 ├ 测试数据 05:答案正确... 0ms
 ├ 测试数据 06:答案正确... 0ms
 ├ 测试数据 07:答案正确... 0ms
 ├ 测试数据 08:答案正确... 0ms
 ├ 测试数据 09:答案正确... 0ms
 ├ 测试数据 10:答案正确... 0ms
 ---|---|---|---|---|---|---|---|-
 Accepted 有效得分:100 有效耗时:0ms
- 
  0@ 2007-01-04 19:56:01编译通过... 
 ├ 测试数据 01:答案正确... 0ms
 ├ 测试数据 02:答案正确... 0ms
 ├ 测试数据 03:答案正确... 0ms
 ├ 测试数据 04:答案正确... 0ms
 ├ 测试数据 05:答案正确... 0ms
 ├ 测试数据 06:答案正确... 0ms
 ├ 测试数据 07:答案正确... 0ms
 ├ 测试数据 08:答案正确... 0ms
 ├ 测试数据 09:答案正确... 0ms
 ├ 测试数据 10:答案正确... 0ms
 ---|---|---|---|---|---|---|---|-
 Accepted 有效得分:100 有效耗时:0ms
- 
  0@ 2006-12-22 22:03:04编译通过... 
 ├ 测试数据 01:答案正确... 0ms
 ├ 测试数据 02:答案正确... 0ms
 ├ 测试数据 03:答案正确... 0ms
 ├ 测试数据 04:答案正确... 0ms
 ├ 测试数据 05:答案正确... 0ms
 ├ 测试数据 06:答案正确... 0ms
 ├ 测试数据 07:答案正确... 0ms
 ├ 测试数据 08:答案正确... 0ms
 ├ 测试数据 09:答案正确... 0ms
 ├ 测试数据 10:答案正确... 0ms
 ---|---|---|---|---|---|---|---|-
 Accepted 有效得分:100 有效耗时:0ms
 楼下的运气果然好啊~~~~
 我就差一点了~~~
 考试时我400~~哈哈
- 
  -1@ 2014-08-03 21:23:17模拟嘛,所以要找一下它的规律。 所谓下一个, 
 1.
 如果最后一个字符不是最大的,那么最后一个字符增加1就可以了。
 2.
 否则,看看前面一个是不是第二大(可用的字符中,不是给你的jam数中的),* 如果是,则增大1,并且最后一个字符就变成了这个字符+1。 * 否则,判断前面的字符串,操作回到1. 
 递归可以做。
 本蒟蒻的c++程序如下(附上我啰嗦的解释):
 ###BLOCK CODE
 #include <iostream>
 #include<cstring>
 using namespace std;
 int s,e,w,c=1,ok[6];
 //s、e分別是字符串開頭和結尾,w是位數,c用來记录第几个,ok表示第几个jam数存不存在。
 string a; //a为原始字符串
 void inc(int st,int en) //此函数用来计算下一个jam数,st、en表示当前要算的jam数的范围
 {
 if (a[w-1-e+en]<(char)(en+96)){ //情况1,最后一位可以增加
 a[w-1-e+en]++;return;}
 //w-1是当前jam数的第w位的数在a里的指针位置,-e+en表示当前范围内的最后一位
 //就是说,现在要算下一个的这个数的最后一位,它不是w-1了,而是w-1减去尾巴(e-->en)的减少量(e-en)
 else { //情况2,最后一位不能增加
 inc(st,en-1); //递归,计算前st到en-1的数的下一位数。
 a[w-1-e+en]=a[w+en-e-2]+1;}//这后面的数都要更新为前一位数+1了;这样字典序才小。
 }
 int main(){
 cin>>s>>e>>w;
 cin>>a;
 for(int i=1;i<6;i++){
 inc(s,e);
 ok[c++]=1;//先让当前第c个jam数“存在”;
 for(int j=0;j<w;j++)//如果这个jam数里面有比最大数还要大的数,那么这个jam数就是“不存在的”
 if(a[j]>(char)(e+96))ok[c-1]=0;
 if(ok[c-1])cout<<a;cout<<endl;}//打印出存在的jam数。
 }
- 
  -1@ 2014-08-03 21:15:39模拟嘛,所以要找一下它的规律。 所谓下一个, 
 1.如果最后一个字符不是最大的,那么最后一个字符增加1就可以了。
 2.否则,看看前面一个是不是第二大(可用的字符中,不是给你的jam数中的),
 *如果是,则增大1,并且最后一个字符就变成了这个字符+1。
 *否则,判断前面的字符串,操作回到1.
 递归可以做。
 本蒟蒻的c++程序如下(附上我啰嗦的解释):
 #include <iostream>
 #include<cstring>
 using namespace std;
 int s,e,w,c=1,ok[6];
 //s、e分別是字符串開頭和結尾,w是位數,c用來记录第几个,ok表示第几个jam数存不存在。
 string a; //a为原始字符串
 void inc(int st,int en) //此函数用来计算下一个jam数,st、en表示当前要算的jam数的范围
 {
 if (a[w-1-e+en]<(char)(en+96)){ //情况1,最后一位可以增加
 a[w-1-e+en]++;return;}
 //w-1是当前jam数的第w位的数在a里的指针位置,-e+en表示当前范围内的最后一位
 //就是说,现在要算下一个的这个数的最后一位,它不是w-1了,而是w-1减去尾巴(e-->en)的减少量(e-en)
 else { //情况2,最后一位不能增加
 inc(st,en-1); //递归,计算前st到en-1的数的下一位数。
 a[w-1-e+en]=a[w+en-e-2]+1;}//这后面的数都要更新为前一位数+1了;这样字典序才小。
 }
 int main(){
 cin>>s>>e>>w;
 cin>>a;
 for(int i=1;i<6;i++){
 inc(s,e);
 ok[c++]=1;//先让当前第c个jam数“存在”;
 for(int j=0;j<w;j++)//如果这个jam数里面有比最大数还要大的数,那么这个jam数就是“不存在的”
 if(a[j]>(char)(e+96))ok[c-1]=0;
 if(ok[c-1])cout<<a;cout<<endl;}//打印出存在的jam数。
 }
- 
  -1@ 2013-03-03 18:29:16program P1318; 
 var
 s,t,w,i,j,k:integer;
 a:string;
 b:string;
 begin
 readln(s,t,w);
 readln(a);
 for i:=1 to 5 do
 for j:=w downto 1 do
 if ord(a[j])-96<(t-w+j) then
 begin
 b:=copy(a,1,j-1)+succ(a[j]);
 for k:=j+1 to w do
 b:=b+succ(b[k-1]);
 a:=b;
 writeln(a);
 b:='';
 break;
 end;
 end.