沒水平沒能力只會\(ABCD\),十二點多隨便寫完就爬了。其他補的。\(E\)考場降智,后面兩道神仙題真的不看題解寫不出來。
\(ABC\)懶得放代碼了,反正也沒保存,要的話博客園私信我,評論也行。后面寫題解可能\(ABC\)代碼都不放了,沒意義。
難度評分:入門難度
發現第\(i\)堆移到第\(1\)堆需要\(a[i]*(i-1)\)的貢獻;隨便算一下特判好了。
難度評分:入門難度
走最大的即可,注意特判\(a[i]=d\ (ans=1)\)以及\(mx>d\ (ans=2)\)的;其它情況\(ans=d/mx+(d\%mx!=0)\)
難度評分:普及-
題意是求出現次數最多的子序列,且這個子序列不同的元素不超過\(2\)個。
用\(cn[i]\)表示字母i出現的次數,\(c[i][j]\)表示子序列\((i,j)\)出現的次數。讀入的時候處理一下,設現在處理到\(s[i]\),那我們枚舉所有的\(x\),把\(c[x][s[i]]+=cnt[x]\)。這個就是表示所有在\(s[i]\)之前的\(x\)都對這個子串有了貢獻,貢獻是\(cnt[x]\),因為每個\(x\)和這個\(s[i]\)都能組成一個新的子串\((x,s[i])\)。然后再把\(cnt[s[i]]++\)。最后\(ans=Max(Max\{cnt[i]\},Max\{c[i][j]\})\)。
難度評分:普及+
題意是選出兩個關鍵點加邊,最大化最短路。
首先明確,加邊只會使最短路變小或不變;因為兩點之間最短距離肯定是\(1\)。所以我們肯定是找到兩點\(i,j\)連個邊,使得這個新值最大;而這個新值又取決於原來1i,jn的最短路。
想到這個之后這個題就非常套路了。正反跑\(dijkstra\),然后就是求\(Min(mindis,Max(D_i+D2_j+1))\)。其中\(D_i\)表示1i的最短路,$D2_i$表示ni的最短路,\(mindis\)表示之前求出來的1~n的最短路(其實就是\(Dn\))。可以對第一維排個序,維護一下第二維的\(Max\)即可。
難度評分:提高-
本來准備看萌神代碼學\(E\),意識到強者的碼風不是蒟蒻可以讀懂的。。最后去請教萌神了QwQ
題意是給你\(n\)頭牛,它們喜歡吃的草甜度為\(s_i\),要吃掉的草的數量為\(h_i\),當一頭牛吃掉\(s_i\)的草之后就躺那里不動了,其他牛看到她就不爽。現要求選出一些牛排在左右兩邊,讓大家都開心。求最大化選出的牛數量以及方案數\((\%1e9+7)\)
觀察一下,發現如果有兩頭牛喜歡同一個甜度的草,她們又排在同一邊,那她們是不會同時獲得快樂的。所以如果有兩頭以上的奶牛喜歡上了同一個甜度的草,她們只能各排一邊。
從這里開始都是萌神教我的(stO 萌神 Orz!):
對於每種草,用vector記錄喜歡它的牛,兩邊不能放超過\(1\)頭。記錄有多少頭可以放左邊,多少頭可以放右邊,多少頭兩邊都可以放。然后看左邊放哪一類右邊放哪一類,乘起來,注意判斷邊界只能給左邊的牛吃。
難度評分:省選/省選+
\(gugugu\)
難度評分:省選/省選+
聽萌神說是裸的線性規划轉費用流,可我沒看出來QAQ......(3100的題在萌神那就是模板題難怪人家進隊)
\(gugugu\)
爭取今天更完剩下的,奧利給!
還是鴿讓人快樂。
