T1:
題面:
題解:
用string記錄名字,再輸入求救字符串,每看到s就判斷前兩是否爲so,如果是就ans++,最後判斷最大輸出。
分數:
估分:100
實際:100
T2:
題面:
題解:
普通的dfs,就像細胞那樣,值得一提的是我的判斷:我用了一個數組把每個星座的大小記錄起來,然後遍歷一遍,判重輸出答案。
分數:
估分:100
實際:50
失分:
就是錯在我的那個判斷,我的判斷方法會使最後一種星系沒被判斷到,多判斷一個就ok了。
T3:
題面:
題解:
暴力50%(不過我50不是暴力,而是數據開小了):
把它當成一個無腦 的暴力01揹包問題,把個當成單純的個,時間複雜度爲O(* *)。
二進制優化揹包100%:
如果想讓個不是單純的個,那就需要二進制優化。
首先,我們知道20+21+……2n=2n+1-1,且用20,21……2n,可以組成2n+1以下的所有整數,且絕不超2n+1。
然後,根據上面的的定理,我們就能得到2n+1-1的優化,但別的呢???
我們再放一個-(2n+1-1),再配上前面的就可以組成別的數了。
放一個二進制優化的代碼:
int q=read(),p=read(),k=1;
while(k<=p){
w[++w[0]]=k*q;
p-=k;
k*=2;
}
if(p!=0)
w[++w[0]]=p*q;
分數:
估分:100
實際:50
失分:
數據開小了
總結:
這次比賽本來可以AK的,但實在是太不小心了,二,三題都錯在一點細節,數據範圍這個下次一定注意,如果再犯錯了,就發40次古詩。
但這個像第二題一樣的細節問題我也經常犯,我也有驗算數據,但還是錯,請問各位有沒什麼好的方法給我參考參考。