開始做noip的套題。
做完這道題想把它記下來。題目不難,模擬即可,考察的是字串的處理。
本題真正值得注意的是全面考慮問題,這也是noip模擬題重點考察的內容。包括noip 2003 偵探推理。
這兩道題都是模擬,但是特判的情況很多。以本題為例,我沒有考慮【兩個--】的情況,【-在開頭】的情況,和【字母-數字】,【數字-字母】的情況
而且陣列大小估計錯誤,蹦了乙個點。
第一編寫完只有40分。
經過思考,加上了【-在開頭】的情況,和【字母-數字】,【數字-字母】三種情況,70分;
最後比對資料,才意識到【兩個--】的情況和超記憶體的問題,改後ac;
另外,當初偵探推理那道題寫完只有20分,幾乎是對照資料乙個點乙個點改過的。。。。= =
客觀的說,這兩道題的資料都是很科學的,每種情況都有對應的1、2個點,幾乎是加乙個特判過乙個點。
總之,通過做此題,發現幾個要注意的問題:
第一、認真審題,認真分析!!!!! 雖然老生常談了,但是每次都會忽略。尤其是搜尋和模擬,注意特判和剪枝以及不合法情況!!!!!!
第二、仔細分析時間複雜度和空間複雜度。 其實說白了還是要認真分析問題。如果空間或時間分析錯誤就太可惜了。
第三、多做測試。不要以為題中的測試資料很強大。其實題中的資料通常蒟蒻!甚至會故意坑人。總之,要不怕麻煩,自己設計資料,而且要注意極端資料。
附帶本題**
view code
1 #include 2 #include 3 #include其中加////////////的語句都是一開始沒想到的。4int
a,b,c;
5char x[500000],t[500000];6
intmain()719
if ('0'
<=x[i]&&x[i]<='
9')
20if (x[i]=='-'
)21//////////23
if (x[i-1]=='
-') //////////24
if (x[i-1]==x[i+1]-1) continue;//
do nothing
25if (x[i-1]>=x[i+1])
26if ('a'
<=x[i-1]&&x[i-1]<='
z'&&'0'
<=x[i+1]&&x[i+1]<='
9') //////
//27
if ('a'
<=x[i+1]&&x[i+1]<='
z'&&'0'
<=x[i-1]&&x[i-1]<='
9') /////////
28if (a==1)29
35if (a==2)36
47if (a==3)48
54if (c==1)55
for (s=0;s)
56 t[k++]=temp[s];
57if (c==2)58
for (s=j-1;s>=0;s--)
59 t[k++]=temp[s];60}
61}62for (i=0;i)
63 printf("%c"
,t[i]);
64 printf("\n"
);65
return0;
66 }
that『s all.
NOIP2007 字串展開
字串的展開在初賽普及組的 閱讀程式寫結果 的問題中,我們曾給出乙個字串展開的例子 如果在輸入的字串中,含有類似於 d h 或 4 8 的子串,我們就把它當作一種簡寫,輸出時,用連續遞增的字母或數字串替代其中的減號,即,將上面兩個子串分別輸出為 defgh 和 45678 在本題中,我們通過增加一些引...
NOIP 2007 字串的展開
在初賽普及組的 閱讀程式寫結果 的問題中,我們曾給出乙個字串展開的例子 如果在輸入的字串中,含有類似於 d h 或 4 8 的子串,我們就把它當作一種簡寫,輸出時,用連續遞增的字母或數字串替代其中的減號,即,將上面兩個子串分別輸出為 defgh 和 45678 在本題中,我們通過增加一些引數的設定,...
noip2007 字串展開 (模擬)
1379字串的展開 accepted 標籤 模擬 noip提高組2007 在初賽普及組的 閱讀程式寫結果 的問題中,我們曾給出乙個字串展開的例子 如果在輸入的 字串中,含有類似於 d h 或者 4 8 的字串,我們就把它當作一種簡寫,輸出時,用連續 遞增的字母獲數字串替代其中的減號,即,將上面兩個子...