noip2001提高組題解

2022-05-18 12:39:33 字數 1766 閱讀 6421

今天繼續感動滾粗。第一次提交170分,不能多說。

第一題:一元三次方程

明明是寒假講分治的時候做過的題居然還是wa而且只拿了60分,說明知識掌握實在不夠牢固。

寒假做的是保留4位小數,原題只保留2位,又因為答案在[-100,100],所以直接列舉-10000到10000即可。

然後鑑於寒假的時候寫的二分,我就傻x兮兮地在迴圈裡面寫了個二分。。。尼瑪經驗害死人啊。。。更可怕的是題目的hint裡也明顯地提示了二分。。。然後我就逗比了。

提交4次ac 。

第二題:數的劃分

去年學回溯的時候就做過,所以直接回溯了。遞推肯定也是可以的嘛。

f(i,j,k)表示把數字i拆成j個數字且第乙個數字為k的方案數,則

f(i,j,k)=f(i-k,j-1,k)+f(i-k,j-1,k+1)+...+f(i-k,j-1,i-k div j-1)   (k>=i div j)

邊界f(i,1,i)=1。

效率已經可以完虐回溯了。

第三題:統計單詞個數

強烈的既視感。。。感覺就好像把2023年的t2t3混在了一起。。。

很明顯預處理然後動規(差點說成遞迴)。果然跟前一年的最大乘積如出一轍,dp**幾乎一樣。(所以跟最大乘積一樣沒有一次ac)

然後我栽在了預處理上。

1. 乙個單詞在一段裡面是可以重複出現的。但是樣例很完美地避開了這種情況。。。所以就被我忽略了。。。

2. 「選用乙個單詞後,第乙個字母不能再用」意思是,如果有一段文字 thisjsadkfjoiquwrepio (啊這些字元真的不是我把頭放在鍵盤上滾出來的),詞典裡的單詞有this和th,那麼就不能算作包含有兩個單詞。但是如果文字是 thisth,那麼this和th都可以算作包含在內。而我一開始理解成了同一段內同一字母開頭的單詞只能出現一次。。。。

最後一次wa錯得很神奇。我的預處理過程是不斷地在文字裡找詞典裡的單詞,如果某個地方已經被某個單詞占用,就在該處做上標記,下次碰到相同開頭的單詞時就會根據標記來跳過該處。但是我在某處找到詞典裡的單詞之後就將前面的字元都刪掉,導致字元在字串中的位置發生了變化,所以標記也就標錯了地方。orz。

提交4次ac 。第一次提交ce真是太感人了,dev-c++不檢查return,不用包含cstring cstdlib algorithm,真是感(sang)人(xin)肺(bing)腑(kuang)。編譯器太智慧型也不是什麼好事。

第四題:car的旅行計畫

很明顯是最短路,但是處理起來真麻煩。一開始甚至還因為只給出了矩形的三個頂點而糾結了很久。在圖的儲存方式上,鑑於上次在建蘭做樹型dp時的經驗,我果斷採用了雖然不熟悉但是速度不錯的前向星。但是就是因為不熟悉所以又耽擱了很久。。。再接著dijkstra,又是不太熟悉的演算法。。。以至於很多細節的地方統統掛掉了,時間到了也還沒除錯完,所以就爆零咯。

最後寫完,對樣例,發現差了0.1,喪心病狂。。。涉及精度的問題都是蛇精病啊。。。學校oj上的資料很明顯有問題啊。。。四個人都a不掉啊。。。四捨五入之後只能過樣例其他點都過不了啊。。。vijos上也a不掉啊。。。最後拿了當年的noip資料5個點對了一下,算是ac了吧。(這一年兩道涉及浮點數的題目,出題人是不是瘋了。。。)

經驗教訓:

1. 確保頭腦清醒的時候才能寫**,否則可以先上廁所洗把臉調整一下狀態;

2. 對於多組資料的題目要注意初始化,可以用同一組資料複製幾個測試一下(這一點上我和lzw想到的居然一毛一樣orz);

3. 浮點數是個坑。

統計單詞個數(NOIP 2001提高組)

題目描述 description 給出乙個長度不超過200的由小寫英文本母組成的字母串 約定 該字串以每行20個字母的方式輸入,且保證每行一定為20個 要求將此字母串分成k份 1 單詞在給出的乙個不超過6個單詞的字典中。要求輸出最大的個數。輸入描述 input description 第一行為乙個正...

NOIP2001提高組 Car的旅行路線

noip2001提高組第四題。又到暑假了,住在城市 a 的 car 想和朋友一起去城市 b 旅遊。她知道每個城市都有四個飛機場,分別位於乙個矩形的四個頂點上,同乙個城市中兩個機場之間有一條筆直的高速鐵路,第i個城市中高速鐵路了的單位里程 為 ti,任意兩個不同城市的機場之間均有航線,所有航線單位里程...

NOIP2001提高組複賽B 數的劃分

略方法為減而治之,把n劃分成k份的答案就相當於每次把n分成a,b兩個數,再把a分成k 1份,然後把每次a分成k 1份的答案相加即可。注意點是每輪分出來的b要不大於上一輪分出來的b。1 include 2 using namespace std 34 define rep i,n for int i ...