1. 程式人生 > >9.21考試總結

9.21考試總結

反思 直接 做的 比對 是什麽 一起 原理 處理 del

9.21考試總結(填坑)

分組

少分析了一種情況,一直以為填坑數和挖坑數一起算。實際上只需要將填坑和挖坑取最大值。原理就是直接把多出來的部分填入缺少的部分。然後比較到底是多出的部分多還是比要求範圍少的部分多。但是有一種情況。所有數字加起來的總和比要求最低值還少或者比要求範圍最高值還高就不能滿足題目要求。

核心代碼,證明一下自己碼過,233

for (int i=1; i<=n; ++i)
    {
        if (a[i] < l)
            ans_l += (l - a[i]);
        if (a[i] > r)
            ans_r += (a[i] - r);
    }

階乘

其實是數學題目的樣子。更改過的範圍實在是鬼畜\(10^2009\)必須要上各種神奇的算法。浴谷上小範圍的數據比起來簡直就是隨便過了。

因為實在沒有什麽想法。再加上本人的數學成績一直不是很友好。所以就在網上找了一下思路:

 對於n!,只要把n換為5k+t的形式,2^k和t!都容易算。那k!怎麽算?也簡單。把k同樣換為5k'+t'的形式,不斷把待求值縮小,直到小於5,然後直接算就行了。而且“去零五余數”與“最後一個非零數字”是對應的(前提:最後一個非零數字是偶數,這只要n>1即可)

以上來著新浪

雖然還是有些看不懂數學不好還真是不好意思了,但是至少獲得了縮小數據範圍的方法。大概

根據這個就可以得到正解了吧

這個題目還在做,幾天後昨晚了再放代碼吧

還沒改完,這個下次再說

賽馬

這道題可以暴力,直接將最開始的馬一一對比就可以了,直接暴力比對。在不斷更新最大值。唯一要處理的就是類似環一樣的東西。因為每一匹馬都要參賽,所以後面多出來的馬都要跟前面沒有比賽的馬對齊。

其實每一套考試的題目都有易做的題目,但是還是有很多沒有拿到分數,一直需要反省。考試的時候到底哪裏沒有想出來,是什麽地方想復雜了都值得研究一下。正解的分數不是所有人都能直接敲出來,至少我這種蒟蒻還不行。所以沒有必要一下就追求正解。先從最暴力的開始,看能不能通過暴力找到什麽規律,再去逼近正確思路。考試反思隔了幾天不是很好寫。以後還是考完改完就立馬寫題解吧。這點還是要強烈要求一下自己,不然寫出來自己都是一臉懵逼【撓頭】

9.21考試總結