北京個(gè)人網(wǎng)站建設(shè)多少錢西安市seo排名按天優(yōu)化
又不能放圖片,又不能寫學(xué)校,你讓我怎么辦啊!!
系列文章目錄
1.周賽 Round#1
2.周賽 Round#2
前言
這是周賽第三輪。//涉及隱私原因,博文里不放題目,要看的去http://0241:101:610:801.22222
劃分字符串 | 貪心&動(dòng)態(tài)規(guī)劃 | ||||
組合線段 | 遞推 | ||||
美味沙拉 | |||||
最大化運(yùn)算式 | |||||
湯姆貓與臺(tái)球 | |||||
小組長 |
T1 劃分字符串 parse
本題考查:貪心&動(dòng)態(tài)規(guī)劃
通過簡單地分析易得出結(jié)論:最優(yōu)解一定只含1或2長度的字串,所以最好理解的方法就是貪心,首先默認(rèn)長度是1,再通過與前一個(gè)的比較判斷是否需要i++;只用兩個(gè)字符串就行。
T2 組合線段 segment
這道題真的是水上加水,真不知道那些沒A的怎么想的!!
——某BCS同學(xué)
因?yàn)榫€段不能動(dòng),所以直接算出某一縱軸上的線段,取最大值不就完了嗎!!我還去廁所打了下草稿(這是真的別不信)。
題解上的遞推式太復(fù)雜了,雖然可以O(shè)(1),但此題時(shí)間限制居然2000ms,硬是給我看蒙了,我還以為本題不是遞推。
我找到了一個(gè)規(guī)律:
從3開始,i=2,每次a[i] = a[i-1] + i; 而每隔兩次計(jì)算i++;簡單一個(gè)O(n)循環(huán)就能實(shí)現(xiàn)。
說實(shí)話,評(píng)講的時(shí)候方法太多了,我們來一個(gè)個(gè)的列舉下。
1
就是上文說的方法,也是我考試時(shí)想到的,核心代碼:
for(int i = 3; i <= n; i++){s+=j;if(i % 2 ==0) j++;}
cout << s;
2
與第一種方法本質(zhì)是一樣的,只不過推理方法不同:
算出某一縱軸上的線段,取最大值:
3
在2的方法下更進(jìn)一步,用一個(gè)表格可以來表示2的軸上長度為幾的線段格出現(xiàn)了幾次,通過表格我們也可以得到規(guī)律從而地推完成。
4
其實(shí)3可以算作是一個(gè)等差數(shù)列的遞推,我們?cè)侔褑螖?shù)和雙數(shù)合并下就變成經(jīng)典的兩行代碼那不是更好嗎,利用單數(shù)和雙數(shù)%2的性質(zhì),再利用c++/2只取整的“漏洞”即可。