485做出一題,486作出兩題但是被系統(tǒng)掛掉一道……
485 250:
給出一個正數(shù)等差序列(長度>=4,<=50),但序列某位如果是偶數(shù),則把他一直除2直到是奇數(shù)
給你的是改造后的序列
求該序列,如果多解則輸出字典序最小的
乍一看沒想法,實際上可以這么分析,這個問題和奇偶性密切相關(guān)
我們分析:
首項為偶,公差為偶 -> 可以同除2,得到的答案一定不是字典序最小,可舍
首項為奇,公差為偶:奇奇奇奇……
首項偶,公差奇:偶奇偶奇……
都是奇:奇偶奇偶
總之,都有兩個奇數(shù)項,是和原序列相同的,這樣的話咱就枚舉那兩個,產(chǎn)生數(shù)列并且更新答案就行……
rank:1283->1338,小漲一點
486
1:給出一個數(shù)A,讓你由若干步A+=A A-=A A*=A A/=A 得到B,如果多解要字典序最小
這個題目我實現(xiàn)時有點2B,A-=A實際是廢的(1000000000>=A,B>=1),得到0就產(chǎn)生不了別的了;A/=A實際上只要一次(只是產(chǎn)生1,晚用不如早用),看某個小鬼子的代碼,就是用+=和*=去DFS擴展A,或者用+=和*=去DFS擴展1,然后求字典序最小的解輸出……我的BFS寫的貌似正確,也沒人敢Cha,實際上簡單的1->2就把我掛了……學(xué)習(xí)、增加經(jīng)驗了……
2:這題背景是Qsort,給你了這么個定義:選定基準(zhǔn)P之后,這次的代價分為2部分:(有多少個本該<P的東西在P后+有多少個本該>P的東西在P前)+(左右兩部分遞歸求代價),給的數(shù)組范圍是50,并且元素個數(shù)不相同
一時沒有想到好的做法,后來看人知道可以DP……實際上我用MAP水了一下……因為數(shù)字的絕對大小無關(guān)緊要,我們可以把這些數(shù)離散成1~N的,然后枚舉基準(zhǔn)P,統(tǒng)計第一部分,并分出左右兩部分,接下來離散左右兩部分到1~left.size(),1~right.size(),并遞歸求解……
為啥離散到1~n而不直接搞呢……是為了記憶化搜索,因為對1~n的一個排列,這個值是固定的,所以我用了一個Map<string,double>,把狀態(tài)塞進(jìn)string里進(jìn)行記憶化搜索,竟然過了……
rank:1338->1416,又小漲一點
總的來講,近日在TC上表現(xiàn)不錯……我要一點一點向上爬……
另:TC可以學(xué)習(xí)他人的代碼,的確很有益
另:我有時感覺有的人代碼的確有錯,實際上系統(tǒng)測試下來真有錯,但是沒敢Cha,也沒想好怎么構(gòu)造讓他掛的數(shù)據(jù),Cha人能力也要提高,只指望寫有時還是無力的……
485 250:
給出一個正數(shù)等差序列(長度>=4,<=50),但序列某位如果是偶數(shù),則把他一直除2直到是奇數(shù)
給你的是改造后的序列
求該序列,如果多解則輸出字典序最小的
乍一看沒想法,實際上可以這么分析,這個問題和奇偶性密切相關(guān)
我們分析:
首項為偶,公差為偶 -> 可以同除2,得到的答案一定不是字典序最小,可舍
首項為奇,公差為偶:奇奇奇奇……
首項偶,公差奇:偶奇偶奇……
都是奇:奇偶奇偶
總之,都有兩個奇數(shù)項,是和原序列相同的,這樣的話咱就枚舉那兩個,產(chǎn)生數(shù)列并且更新答案就行……
rank:1283->1338,小漲一點
486
1:給出一個數(shù)A,讓你由若干步A+=A A-=A A*=A A/=A 得到B,如果多解要字典序最小
這個題目我實現(xiàn)時有點2B,A-=A實際是廢的(1000000000>=A,B>=1),得到0就產(chǎn)生不了別的了;A/=A實際上只要一次(只是產(chǎn)生1,晚用不如早用),看某個小鬼子的代碼,就是用+=和*=去DFS擴展A,或者用+=和*=去DFS擴展1,然后求字典序最小的解輸出……我的BFS寫的貌似正確,也沒人敢Cha,實際上簡單的1->2就把我掛了……學(xué)習(xí)、增加經(jīng)驗了……
2:這題背景是Qsort,給你了這么個定義:選定基準(zhǔn)P之后,這次的代價分為2部分:(有多少個本該<P的東西在P后+有多少個本該>P的東西在P前)+(左右兩部分遞歸求代價),給的數(shù)組范圍是50,并且元素個數(shù)不相同
一時沒有想到好的做法,后來看人知道可以DP……實際上我用MAP水了一下……因為數(shù)字的絕對大小無關(guān)緊要,我們可以把這些數(shù)離散成1~N的,然后枚舉基準(zhǔn)P,統(tǒng)計第一部分,并分出左右兩部分,接下來離散左右兩部分到1~left.size(),1~right.size(),并遞歸求解……
為啥離散到1~n而不直接搞呢……是為了記憶化搜索,因為對1~n的一個排列,這個值是固定的,所以我用了一個Map<string,double>,把狀態(tài)塞進(jìn)string里進(jìn)行記憶化搜索,竟然過了……
rank:1338->1416,又小漲一點
總的來講,近日在TC上表現(xiàn)不錯……我要一點一點向上爬……
另:TC可以學(xué)習(xí)他人的代碼,的確很有益
另:我有時感覺有的人代碼的確有錯,實際上系統(tǒng)測試下來真有錯,但是沒敢Cha,也沒想好怎么構(gòu)造讓他掛的數(shù)據(jù),Cha人能力也要提高,只指望寫有時還是無力的……