159 条题解
-
0jzjsuper LV 8 @ 2009-10-28 10:11:58
注意第一个就是‘-’以及连续‘-’的情况,还有out文件可能有7KB
-
02009-10-27 20:39:37@
水题,但做了我一个多小时。。。
注意细节,加1减1什么的,还有就是做题不要急,先在纸上写出算法框架,让代码高效一点,就像做数学上的分类讨论,先把最简单的做出来,exit,之后剩下的情况也会变得简单。
做这种题,一定要有信心,相信它很水,自己不水,心态在这时候是最关键的。考场上拿到它你能花多少时间做出来呢?
就这么多吧。NOIP2009,再不能被水题吓住了... -
02009-10-22 22:35:53@
竟然交了3次。
各位注意要判断连续‘-’的情况以及0-d或d-0的情况,
没有判断则,
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案错误...程序输出比正确答案长
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案错误...程序输出比正确答案长
├ 测试数据 06:答案错误...程序输出比正确答案长
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:70 有效耗时:0msprogram P1379;
const num:set of byte=[0,1,2,3,4,5,6,7,8,9];
chr1:set of char=['a'..'z'];
var p1,p2,p3,l,i,j,k,oa,ob,t:longint;
str1:ansistring;
begin
readln(p1,p2,p3);
readln(str1);
l:=length(str1);
t:=ord('-');
write(str1[1]);
for i:=2 to l-1 do
begin
if str1[i]'-' then write(str1[i])
else
begin
oa:=ord(str1);
ob:=ord(str1);
if (oa -
02009-10-17 21:41:12@
无语啦,楼下是我的小号,交自己的代码被认定抄袭,给锁定了……
-
02009-10-17 21:31:35@
要善于用Copy@Pastle..呵呵
var
p1,p2,p3:longint;
s:string;
i,j,k,t,l:longint;
c:char;
begin
readln(p1,p2,p3);
readln(s);
l:=length(s);
write(s[1]);
for i:=2 to l-1 do
begin
if s[i]'-' then write(s[i]);
if s[i]='-' then
begin
if (s in ['0'..'9'])and(s in ['0'..'9'])
and(ord(s) -
02009-10-11 19:44:18@
列举所有情况就是了
要细心
其实也没多少行
---|---|---|---|---|---|---|---|---|--晒程序---|---|---|---|---|---|---|---|---|---|-
program p1379;
var
a:string;
p1,p2,p3,ck,i,k,j:longint;
begin
readln(p1,p2,p3);
readln(a);
if p1=1 then ck:=0 else ck:=-32;
write(a[1]);
for i:=2 to length(a)-1 do
case a[i] of
'-':
if ((a in ['a'..'z'])and(a in ['a'..'z'])
and(ord(a) -
02009-10-08 10:54:07@
注意题目!!!
-
02009-10-07 18:05:24@
以惨痛的经历提醒后来者:注意细节!!!
-
02009-10-06 23:17:59@
我的妈呀
烦死我了.... -
02009-10-06 19:52:48@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms这一题花了我好长时间。一开始用ansistring,发现ansistring的记数竟然是从0开始而不是1,郁闷了一次;;; 又改成string,结果字符串长度不够; 最终选择了数组,终于AC了。WA了整整2次!!!!!!!!
-
02009-10-06 09:43:11@
#include
#include
int p1,p2,p3,i;
char s[100001];
void printx(char x,char y)
{
int k;char j;
for(j=x;j -
02009-10-05 16:01:48@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms水水更健康
-
02009-10-04 14:06:17@
靠靠靠。。。大水题我WA了7次...
-
02009-09-27 22:54:24@
此题甚水
-
02009-09-25 21:34:37@
~~200次提交&两星纪念~~
-
02009-09-23 13:30:07@
开头结尾注意必须要原样输出 判断'-'前后是否都是数字或字母
-
02009-09-18 21:35:32@
细节题:
1。最好先存要展开的串与位置,最后统一插,倒插可以避免位置移动。
2。ansistring!!!!!! -
02009-09-09 00:50:46@
惨痛的教训
1.开头和结尾一定会原样输出
2.'-'两边都同是字母或同是数字
3.不能输出除字母和数字以外的字符
4.'*'的输出个数满足输出字母和数字个数的规则
5.输出大写时,当前字符不是数字也得是字母(我光判断了是不是属于数字集合 然后直接else了+_+)
6.当不满足填充规则时,一定记得输出原字符(+_+我竟然忘了)交了4次 分数60 70 70 100......
这道水题通过率如此之低...是有原因的... -
02009-09-06 20:17:51@
我的AC史:
1:60 粗心
2~3 60 没用ansistring
4:50 没事找事用了两个字符串
5:AC;编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms要细心啊:1、注意数字没有大小写(用upcase函数就可以不管这问题···)
2、仔细读题:p1还可以等于3,所有的位置用“*”,也要用p2的
3、字符串的长度在不断变化,不能用for循环
4、没了、
好孩子别往下看var
p1,i,j,p2,p3,h,l:integer;
s,s1:ansistring;
begin
readln(p1,p2,p3);
readln(s);repeat
inc(i);
if s[i]='-'
then if ((s in['a'..'z'])and(s in['a'..'z']))or((s in['0'..'9'])and(s in ['0'..'9']))
then if ord(s)>ord(s)
then if ord(s)-ord(s)=1
then delete(s,i,1)
else if p3=1
then if p1=1
then begin
s1:='';
for j:=ord(s)+1 to ord(s)-1 do
for h:=1 to p2 do
s1:=s1+chr(j);
delete(s,i,1);
insert(s1,s,i);
end
else if p1=2
then
begin
s1:='';
for j:=ord(s)+1 to ord(s)-1 do
for h:=1 to p2 do
s1:=s1+upcase(chr(j));
delete(s,i,1);
insert(s1,s,i);
end
else begin
if p1=3
then begin
s1:='';
for j:=ord(s)-1 downto ord(s)+1 do
for h:=1 to p2 do
s1:=s1+'*';
delete(s,i,1);
insert(s1,s,i);
end end
else if p1=1
then begin
s1:='';
for j:=ord(s)-1 downto ord(s)+1 do
for h:=1 to p2 do
s1:=s1+chr(j);
delete(s,i,1);
insert(s1,s,i);
end
else if p1=2
then begin
s1:='';
for j:=ord(s)-1 downto ord(s)+1 do
for h:=1 to p2 do
s1:=s1+upcase(chr(j));
delete(s,i,1);
insert(s1,s,i);
end
else if p1=3
then begin
s1:='';
for j:=ord(s)-1 downto ord(s)+1 do
for h:=1 to p2 do
s1:=s1+'*';
delete(s,i,1);
insert(s1,s,i);
end;
l:=length(s);
until i>=l;
write(s);
end.ps:我这辈子写的最长的代码
-
02009-09-02 18:54:57@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
终于呀……眼泪哗哗地
先是没有认真读题 40
接着没有考虑开头,结尾,连续的‘-’,70
然后又是只根据p1分类,转大写的话 数字就没有了(第六点)90
还有几次错误的修改,以及一次错交(我交到1378 矩阵取数里了=_=)
之后ac 我可怜的ac率呀TT赞同楼下一牛的话:水题+特殊情况=简单题不能ac