1. 程式人生 > >NOIP2018提高組初賽滾粗記

NOIP2018提高組初賽滾粗記

先扯

多少分已不重要。一切都在預料之中。
初賽涼涼。
準備什麼,那一方面的知識就非常非常簡單,簡單到不用準備。
不準備什麼,那一方面的知識就能卡住人。
這篇部落格之前沒有發出去?!

具體報告

選擇題一個2分?!劣勢。
第7題,不會積分啊。。。。
怎麼做?
第8題
教練講了課,信心滿滿,但是乍一看這些選項好像都是對的。
A選項近幾天同學說好像沒問題,所以沒選。。。。
注意一個點就好了。
C 0

= 1 , C 1 = 1 C_0=1,C_1=1 …。數列從第0項開始。。。誤把它當作第一項了。
BC顯然對。
多選題
第一題,手機顯然不能帶進考場。
第二題,模擬一下就好了。
第三題,Dij不能夠跑負環邊。
第四題,樹的性質大家都會。
第五題,圖靈獎由ACM設立。
問題求解
第二題,當且僅當a是b的子集或b是a的子集時,等式成立。
然後直接算。
A
n s = 2 ( i = 0
5
C ( 5 , i ) 2 i ) 32 Ans=2*(\sum_{i=0}^5C(5,i)*2^i)-32

閱讀程式寫結果
說一下第4題。
n!個排列按照字典序從小到大排。
這題求讀入的排列往後的t個排列。
雖然寫了個正確答案上去,但是在檢查的時候劃掉了,寫了個錯的。
為什麼會出現這樣的情況?
失誤1,看錯一個細節。
將issmall()判斷b是否>a。我看成a>b結果慌張了15分鐘。
失誤2,檢查的時候從第160步跳到184步的這個過程,我將步數寫成了196.
所以當t=200-12=188,我的答案才是正確的。
涼涼。
完善程式
第一題直接照葫蘆畫瓢即可。
第二題貪心題不會啊。
做這一類題,一般想出一個解決的辦法,但是我貪心就是弱~想不出來
先亮一亮答案:
a [ i ] 0.95 < = b [ i ] a[i]*0.95<=b[i]
t o t a l _ a > = 50000 total\_a>=50000
③照葫蘆畫瓢, t o t a l _ a + j + a [ i ] total\_a+j+a[i]
f [ j ] + t o t a l _ b t o t a l _ b _ p r e f i x f[j]+total\_b-total\_b\_prefix
f [ j a [ i ] ] f[j-a[i]]
下面給出具體的解析。
分2種情況討論。
一開始,考慮不打折的情況。顯然, a [ i ] < = b [ i ] a[i]<=b[i] ,那麼選 a [ i ] a[i] ,否則選 b [ i ] b[i]
考慮打折,那麼所有的 a [ i ] a[i] 將變為 0.95 a [ i ] 0.95*a[i]
所以,按照不打折的情況進行初步的選取,得到 t o t a l _ a total\_a
此時又有2種情況。
情況①,選取了 0.95 a [ i ] > = b [ i ] 0.95a[i]>=b[i] a [ i ] a[i] 後,這一部分如果>=50000,那麼說明能打折。所以,這一部分直接打折。並且其他的選取方案一定比這個劣。
情況②,不能直接打折,則進行相應的調整。
類揹包,設 f [ i ] f[i] 表示,當第一個商店花費了 t o t a l _ a + i total\_a+i 元,要買完所有物品,第二個商店至少要花費的錢數。
現在要進行的決策是:本來選b[i]的,現在要不要選回a[i]。

最後一句

困於心衡於慮而後作。