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

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>
            欧美自拍偷拍| 久久av一区二区| 亚洲国产精品女人久久久| 欧美福利在线观看| 久久久久成人精品| 欧美伊人影院| 亚洲欧美久久久| 亚洲国产高清一区| 久久综合伊人77777尤物| 久久av红桃一区二区小说| 一区二区国产日产| 亚洲少妇中出一区| 欧美与黑人午夜性猛交久久久| 亚洲一区三区电影在线观看| 精品福利免费观看| 影音先锋中文字幕一区| 国模私拍一区二区三区| 国产亚洲女人久久久久毛片| 国模大胆一区二区三区| 国内成+人亚洲| 亚洲欧洲综合另类| 中文国产一区| 久久久av毛片精品| 99re66热这里只有精品3直播| 亚洲午夜在线视频| 久久综合九九| 国产日韩欧美一区二区三区四区| 经典三级久久| 午夜精品久久久久久久| 欧美激情一区二区三区不卡| 亚洲欧美中文字幕| 欧美午夜精品理论片a级大开眼界| 国产日产欧产精品推荐色| 亚洲影视在线播放| 亚洲欧洲精品一区二区三区不卡 | 欧美精品午夜| 国内一区二区三区| 欧美一区二区视频在线| 99视频精品| 国产精品午夜在线观看| 亚洲一区二区精品| 一个人看的www久久| 欧美日韩一区综合| 亚洲一区3d动漫同人无遮挡| 欧美激情一区二区三区| 欧美激情1区2区| 一区二区三区欧美在线观看| 久久国产一区二区| 国产精品推荐精品| 欧美一区二区性| 亚洲精品女av网站| 另类国产ts人妖高潮视频| 欧美mv日韩mv国产网站| 久久久久久综合网天天| 99精品视频免费观看视频| 欧美国产日韩精品| 欧美日韩一区二区三区在线视频| 亚洲一区二区在线观看视频| 欧美一区二区三区在线视频| 国产欧美一级| 欧美mv日韩mv国产网站| 国产精品成人一区二区| 久久九九全国免费精品观看| 久久夜色精品一区| 亚洲欧美春色| 欧美国产亚洲精品久久久8v| 亚洲欧美激情四射在线日| 久久久国产精品亚洲一区| 日韩午夜在线播放| 久久国产精品久久w女人spa| 99xxxx成人网| 欧美aa在线视频| 你懂的视频一区二区| 国产一区二区三区奇米久涩 | 亚洲欧洲综合| 欧美一级成年大片在线观看| 一区二区三区四区在线| 欧美福利视频网站| 欧美激情国产日韩| 亚洲国产精品一区二区三区| 香蕉乱码成人久久天堂爱免费| 亚洲网站视频| 久久九九国产精品| 国产毛片久久| 久久成人18免费网站| 久久女同互慰一区二区三区| 国产一区二区三区日韩欧美| 欧美一区二区三区在| 亚洲美女精品成人在线视频| 亚洲第一毛片| 久久夜色撩人精品| 又紧又大又爽精品一区二区| 欧美一区二区三区视频免费播放 | 快射av在线播放一区| 99精品欧美一区二区三区综合在线| 亚洲无线视频| 久久亚洲私人国产精品va媚药| 亚洲国产欧美一区二区三区丁香婷| 麻豆成人在线播放| 欧美视频日韩| 免费永久网站黄欧美| 国产精品手机视频| 麻豆精品一区二区综合av| 亚洲欧洲三级| 欧美一区二区三区啪啪| 在线观看一区| 国产精品久久久久毛片软件| 久久久噜噜噜久久人人看| 一区二区三区国产在线观看| 蜜臀久久99精品久久久画质超高清 | 亚洲美女精品成人在线视频| 欧美午夜精品一区二区三区| 久久午夜羞羞影院免费观看| 亚洲综合国产| 午夜精品国产精品大乳美女| 国产夜色精品一区二区av| 欧美日韩直播| 欧美日韩午夜在线| 欧美激情亚洲视频| 欧美激情一区二区三区在线视频 | 欧美影院成人| 亚洲第一在线综合在线| 久久嫩草精品久久久久| 久久精品免费观看| 欧美在线视频免费观看| 欧美一区成人| 久久精品成人一区二区三区 | 亚洲精品人人| 亚洲精品乱码久久久久久久久| 亚洲精品乱码久久久久久黑人| 亚洲国产欧美不卡在线观看| 99国产麻豆精品| 欧美一区2区视频在线观看| 久久精品国产第一区二区三区最新章节 | 欧美日韩综合在线| 国产日韩欧美亚洲| 1769国产精品| 午夜在线一区二区| 99国产一区| 1769国产精品| 尤物yw午夜国产精品视频| 亚洲另类在线视频| 久久精品国产精品| 一区二区三区日韩| 久久亚裔精品欧美| 亚洲国产一成人久久精品| 亚洲欧美国产高清va在线播| 久久九九99视频| 国产精品草草| 99视频精品免费观看| 一区二区高清视频| 性色av一区二区三区红粉影视| 欧美成人午夜77777| 狠狠综合久久av一区二区老牛| 在线亚洲+欧美+日本专区| 免费成人av| 欧美一区二区三区在| 国产一区av在线| 久久精品网址| 欧美在线精品一区| 国产亚洲欧美日韩美女| 久久精品一区| 久久漫画官网| 亚洲精品在线一区二区| 亚洲欧洲精品一区二区三区波多野1战4 | 欧美1区免费| 麻豆久久久9性大片| 日韩一级大片在线| 亚洲先锋成人| 亚洲国产精品激情在线观看| 亚洲电影免费观看高清完整版在线| 欧美gay视频| 亚洲欧美另类中文字幕| 欧美在线二区| 99re成人精品视频| 亚洲一区二区三区在线观看视频 | 美日韩精品视频免费看| 亚洲人精品午夜| 在线视频欧美日韩| 黄色成人免费网站| 99精品视频免费在线观看| 亚洲午夜免费福利视频| 国产亚洲精品激情久久| 欧美激情中文字幕在线| 国产精品日韩一区二区三区| 免费看精品久久片| 国产精品嫩草久久久久| 亚洲精品久久久久久下一站| 在线播放不卡| 久久久久久9| 久久综合久久综合久久| 亚洲人体偷拍| 国产九九精品视频| 99视频+国产日韩欧美| 亚洲另类自拍| 欧美成人一区在线| 亚洲高清资源综合久久精品| 在线精品亚洲一区二区| 欧美一区三区二区在线观看| 亚洲综合欧美日韩|