青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

A Za, A Za, Fighting...

堅(jiān)信:勤能補(bǔ)拙

PKU 1014 Dividing

問(wèn)題:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1014

思路:
1. 深度搜索
看到該題的第一個(gè)想法就是DFS,很快就寫(xiě)出了代碼:
 1 void
 2 dfs(int *values, int index, long cur_value_sum)
 3 {
 4     if(cur_value_sum >= value_half) {
 5         if(cur_value_sum == value_half)
 6             flag = 1;
 7         return;
 8     }
 9     if(index < 1)
10         return;
11     int i;
12     for(i=values[index]; i>=0 && (!flag); i--) {
13         cur_value_sum += (i*index);
14         dfs(values, index-1, cur_value_sum);
15         cur_value_sum -= (i*index);
16     }
17 }
額...結(jié)果TLE...
仔細(xì)看題,發(fā)現(xiàn)maximum total number will be 20000, 所以超時(shí)幾乎是肯定的
其實(shí),discuss里有人用DFS+Cut通過(guò)的,只是自己太菜,還不會(huì)減枝

2. 動(dòng)態(tài)規(guī)劃
2.1 from: 
http://m.shnenglu.com/AClayton/archive/2007/09/14/32185.html
聲明數(shù)組can_reach[60005]
can_reach[i]=1, 表示存在一個(gè)人獲得價(jià)值為 i ,另一個(gè)人獲得價(jià)值為value_sum-i的方案
我們的目標(biāo)就是要確定can_reach[value_sum>>1]是否等于1
 1 int
 2 dp()
 3 {
 4     int i, j, k, temp, cur_max = 0;
 5     can_reach[0= 1;
 6     for(i=1; i<=VALUE_MAX; i++) {
 7         if(num[i] > 0) {
 8             for(j=cur_max; j>=0; j--) { /* tricky, pay attention */
 9                 if(can_reach[j]) {
10                     for(k=1; k<=num[i]; k++) {
11                         temp = i*k+j;
12                         if(temp == value_half)
13                             return 1;
14                         if(temp>value_half) /*  initial: if(temp>value_half || can_reach[temp]) break; */
15                             break;
16                         can_reach[temp] = 1;
17                     }
18                 }
19             }
20         }
21         cur_max += (i*num[i]);
22         if(cur_max>value_half)
23             cur_max = value_half;
24     }
25 }
注意: 上述代碼的第14行,原文中存在減枝,但沒(méi)有看懂,所以沒(méi)有放進(jìn)去,還好,該代碼還是AC了

2.2  from: http://blog.sina.com.cn/s/blog_5c95cb070100cvt8.html
該問(wèn)題可以轉(zhuǎn)化成一個(gè)0-1背包模型(見(jiàn):背包九講)
關(guān)鍵是下面的數(shù)論知識(shí):
對(duì)于任意一個(gè)正整數(shù) n, 它可以表示成:
      n = 1 + 1<<1 + 1<<2 + ... + 1<<k + res[余數(shù)]
我們可以得到:對(duì)于1<=i<=n的任意正整數(shù) i, 它肯定可以表示成: 1, 1<<1, 1<<2, ... 1<<k, res的一個(gè)組合
因此,對(duì)于該題,我們可以對(duì)輸入做預(yù)處理:
 1 len = 0;
 2 memset(value_weight, 0sizeof(value_weight));
 3 for(i=1; i<=VALUE; i++) {
 4     if(num[i] != 0) {
 5          j = 0;
 6          while((1<<(j+1)) <= (num[i]+1)) {
 7                 value_weight[len++= i*(1<<j);
 8                 ++j;
 9          }
10         if((num[i]+1-(1<<j))>0)
11         value_weight[len++= i*(num[i]+1-(1<<j));
12    }
13 }
接下來(lái),原問(wèn)題就轉(zhuǎn)化成:
背包容量value_half(value_sum/2),每件物品的cost與value都是value_weight[i],考慮是否存在一種方案,使得總價(jià)值等于value_half
0-1背包的典型DP狀態(tài)方程:
      f[i][j] = max(f[i-1][j], f[i-1][j-c[i]]+v[i]), f[i][j]表示前i件物品放入容量為j的背包而可以獲得的最大價(jià)值
 1 int
 2 knapsack()
 3 {
 4     int i, w, pre, cur;
 5     memset(table, 0sizeof(table));
 6     for(w=value_weight[0]; w<=value_half; w++) {
 7         table[0][w] = value_weight[0];
 8         if(table[0][w] == value_half)
 9             return 1;
10     }
11     for(i=1; i<len; i++) {
12         cur = i%2;
13         pre = (i+1)%2;
14         for(w=0; w<=value_half; w++) {
15             if(w>=value_weight[i])
16                 table[cur][w] = max(table[pre][w], table[pre][w-value_weight[i]]+value_weight[i]);
17             else
18                 table[cur][w] = table[pre][w];
19             if(table[cur][w] == value_half)
20                 return 1;
21         }
22     }
23     return 0;
24 }
AC [ Memory: 836K, Time: 16MS]

posted on 2010-06-28 23:30 simplyzhao 閱讀(223) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C_動(dòng)態(tài)規(guī)劃

導(dǎo)航

<2010年7月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

統(tǒng)計(jì)

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

搜索

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产欧美一区二区三区另类精品 | 亚洲六月丁香色婷婷综合久久| 欧美日韩成人在线观看| 欧美一级视频精品观看| 亚洲精品小视频在线观看| 久久精品免费播放| 性欧美长视频| 欧美主播一区二区三区| 亚洲视频大全| 亚洲一区二区在线观看视频| 亚洲综合视频一区| 亚洲欧美www| 亚洲欧美中文另类| 欧美一区二区三区成人| 亚洲免费视频网站| 性欧美18~19sex高清播放| av成人动漫| 亚洲欧美日韩国产中文| 久久成人免费电影| 91久久在线视频| 国产女主播一区| 欧美日韩黄色一区二区| 午夜在线视频一区二区区别| 中文亚洲欧美| 亚洲欧美精品suv| 久久理论片午夜琪琪电影网| 免费在线观看成人av| 亚洲人成人一区二区在线观看| 欧美一区二区三区播放老司机| 久久久久国产精品一区三寸| 国产精品免费网站在线观看| 亚洲精品国产精品国自产观看浪潮| 亚洲永久免费av| 亚洲人精品午夜| 亚洲综合不卡| 国产日韩欧美在线视频观看| 影院欧美亚洲| 在线亚洲欧美视频| 亚洲欧美日韩综合国产aⅴ| 亚洲精品一区二区三区四区高清| 久久久精品国产一区二区三区 | 国产精品美女视频网站| 国产精品日韩电影| 99精品黄色片免费大全| 亚洲免费影院| 免费日韩精品中文字幕视频在线| 亚洲人午夜精品免费| 欧美激情一区二区| 欧美一区二区三区在线看| 亚洲中字在线| 午夜久久一区| 嫩草国产精品入口| 亚洲少妇在线| 国产精品视频导航| 欧美一区二视频| 欧美成人一区二区| 一区二区三区高清在线| 亚洲午夜久久久| 亚洲日产国产精品| 亚洲在线成人| 亚洲另类一区二区| 男女激情视频一区| 久久精品国产免费看久久精品| 欧美日一区二区在线观看| 亚洲性视频h| 美女视频黄 久久| 国产情人节一区| 亚洲精品一区在线观看| 在线高清一区| 久久精品国产综合| 久久精品麻豆| 免费久久99精品国产| 亚洲第一天堂av| 嫩草国产精品入口| 欧美手机在线视频| 久久gogo国模裸体人体| 久久久久国产精品厨房| 欧美一区二区精品| 欧美精品福利在线| 亚洲精品一二| 日韩视频―中文字幕| 亚洲另类自拍| 91久久精品美女高潮| 亚洲视频你懂的| 狠狠色丁香婷综合久久| 欧美精品一区二区三区在线播放| 亚洲国产91| 欧美日本在线播放| 亚洲激情视频网站| 国产伦精品一区二区三区视频黑人 | 国产精品第2页| 久久久久一本一区二区青青蜜月| 亚洲高清激情| 欧美一区免费视频| 亚洲精品在线免费观看视频| 国产精品一区二区久久久| 久久先锋资源| 亚洲专区一区| 欧美激情在线免费观看| 999亚洲国产精| 久久综合亚州| 亚洲欧美国产高清| 亚洲视频axxx| 亚洲日本电影| 欧美精品在线网站| 在线综合视频| 亚洲伊人观看| 国产精品久久久久久久免费软件| 一区二区三区黄色| 亚洲综合不卡| 国产日韩综合| 亚洲国产经典视频| 亚洲视频在线免费观看| 久久久久久一区二区| 在线综合亚洲欧美在线视频| 亚洲国产欧美久久| 亚洲激情亚洲| 欧美麻豆久久久久久中文| 久久国产直播| 欧美资源在线观看| 久久久久国产精品一区| 久久人人超碰| 亚洲精品国产拍免费91在线| 欧美久久电影| 亚洲欧美日本日韩| 一本色道久久加勒比88综合| 国色天香一区二区| 狠狠色狠狠色综合人人| 国产一区二区三区在线观看精品| 国产精品久久7| 欧美午夜在线一二页| 欧美a级一区| 狠狠色伊人亚洲综合成人| 影音先锋亚洲一区| 国产亚洲精品久久久久久| 久久久久久久久综合| 国产精品高清一区二区三区| 国产欧美一区二区三区沐欲| 狠狠入ady亚洲精品| 亚洲天堂第二页| 亚洲欧美成人一区二区在线电影| 亚洲精品国产精品乱码不99| 一区二区三区精品久久久| 亚洲国产成人午夜在线一区 | 免费成人高清在线视频| 久久人人97超碰人人澡爱香蕉| 欧美韩国在线| 亚洲自拍高清| 欧美电影电视剧在线观看| 欧美中文字幕在线观看| 免费成人av| 欧美三级在线| 国产亚洲精品bv在线观看| 国产在线精品二区| 在线亚洲+欧美+日本专区| 香蕉久久夜色精品| 免费成人黄色片| 日韩西西人体444www| 日韩亚洲欧美中文三级| 一本色道久久综合亚洲精品婷婷| 亚洲欧洲日产国产综合网| 久久久久国色av免费看影院| 欧美一区免费| 国产日韩欧美黄色| 亚洲精品免费观看| 亚洲国产精品久久久久婷婷884| 麻豆九一精品爱看视频在线观看免费| 国产欧美一区二区三区另类精品 | 香蕉久久夜色精品| 亚洲美女福利视频网站| 欧美激情乱人伦| 亚洲国产精品va在线观看黑人| 亚洲一区制服诱惑| 亚洲视频网站在线观看| 欧美国产日韩亚洲一区| 亚洲高清在线播放| 欧美在线观看天堂一区二区三区| 欧美激情一区二区三区全黄| 欧美视频在线一区二区三区| 久久激情一区| 欧美三级在线视频| 91久久精品一区| 激情欧美一区二区三区在线观看| 久热国产精品| 国产亚洲欧美一区二区| 欧美激情一区二区三区全黄| 久久成人免费日本黄色| 久久国产精品99国产精| 国产精品豆花视频| 亚洲日本中文字幕区| 欧美一区2区视频在线观看| 在线观看一区视频| 这里只有精品电影| 另类国产ts人妖高潮视频| 亚洲国产一区二区视频| 久久久久久久综合日本| 欧美大秀在线观看| 亚洲国产天堂久久国产91| 国产欧美一区二区三区另类精品| 亚洲精品社区|