noip2007 字串的展開

2022-08-22 05:12:13 字數 1733 閱讀 3876

開始做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 的字串,我們就把它當作一種簡寫,輸出時,用連續 遞增的字母獲數字串替代其中的減號,即,將上面兩個子...