[NKU]sweet @ Google && TopCoder && CodeForces

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            33 Posts :: 1 Stories :: 15 Comments :: 0 Trackbacks
          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人能力也要提高,只指望寫有時還是無力的……

          posted on 2010-10-27 01:37 sweetsc 閱讀(193) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 林甸县| 吕梁市| 忻州市| 开平市| 太白县| 穆棱市| 伊川县| 平昌县| 正定县| 苍南县| 望奎县| 界首市| 大邑县| 兰州市| 隆化县| 岱山县| 河间市| 桃园市| 治多县| 越西县| 驻马店市| 竹溪县| 南昌县| 女性| 册亨县| 肃宁县| 蓬溪县| 昔阳县| 仁寿县| 河北省| 平邑县| 六盘水市| 宣城市| 内黄县| 浑源县| 通辽市| 河南省| 昌都县| 班戈县| 皋兰县| 张家界市|