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

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://www.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>
            99re66热这里只有精品4| 久久免费视频在线观看| 久久狠狠亚洲综合| 午夜欧美不卡精品aaaaa| 亚洲精品一区在线观看香蕉| 国产在线拍偷自揄拍精品| 国产精品久久久久影院色老大 | 亚洲日韩成人| 欧美国产日韩一二三区| 欧美国产日韩在线| 亚洲欧洲精品一区二区三区不卡 | 亚洲免费伊人电影在线观看av| 亚洲第一在线综合在线| 在线观看亚洲精品| 亚洲国产成人av在线| 亚洲精品免费一区二区三区| 在线一区二区视频| 亚洲自拍偷拍麻豆| 亚洲韩国精品一区| 欧美亚男人的天堂| 欧美一级在线亚洲天堂| 久久天天综合| 久久久999精品| 欧美激情片在线观看| 亚洲永久字幕| 欧美成人福利视频| 9久草视频在线视频精品| 午夜久久福利| 欧美精品少妇一区二区三区| 国产欧美精品一区aⅴ影院| 在线日韩视频| 亚欧美中日韩视频| 亚洲巨乳在线| 六十路精品视频| 国产欧美一区二区精品性| 亚洲人成网站在线观看播放| 欧美一区二区成人| 亚洲精品视频在线观看免费| 亚洲视频图片小说| 欧美激情一区二区三区全黄| 中文一区二区在线观看| 免费成人激情视频| 国产日韩欧美综合在线| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 久久亚洲综合色一区二区三区| 黄色精品一区二区| 在线性视频日韩欧美| 美女脱光内衣内裤视频久久网站| 中文国产亚洲喷潮| 欧美日韩精品综合在线| 91久久精品国产91久久| 一区二区三区国产| 噜噜噜在线观看免费视频日韩| 国产精品99久久久久久有的能看 | 国产欧美日韩在线 | 极品尤物一区二区三区| 欧美在线视频一区二区| 午夜精品免费| 国产欧美一区二区三区在线老狼| 亚洲欧美日韩直播| 一级日韩一区在线观看| 欧美午夜视频| 欧美一级欧美一级在线播放| 午夜精品av| 黄色日韩精品| 老鸭窝亚洲一区二区三区| 亚洲最新视频在线| 亚洲国产婷婷| 欧美日韩国产色站一区二区三区| 99视频一区二区| 99视频有精品| 国产精品成人av性教育| 亚洲综合三区| 亚洲女ⅴideoshd黑人| 国产美女一区| 免费成人黄色片| 免费看成人av| 日韩小视频在线观看| 日韩亚洲精品视频| 国产精品性做久久久久久| 久久久人成影片一区二区三区观看 | 欧美激情国产精品| 欧美国产精品| 欧美一区成人| 免费久久99精品国产自| 在线亚洲欧美| 久久精品二区三区| 亚洲欧美清纯在线制服| 久久免费观看视频| 亚洲精品少妇网址| 一区二区不卡在线视频 午夜欧美不卡在 | 国产亚洲欧美在线| 裸体一区二区三区| 欧美欧美在线| 久久久国产精品亚洲一区| 能在线观看的日韩av| 亚洲午夜精品国产| 久久精品日韩欧美| 一区二区三区日韩精品视频| 性色av一区二区怡红| 亚洲精品在线看| 欧美亚洲网站| 一本一道久久综合狠狠老精东影业| 午夜影视日本亚洲欧洲精品| 亚洲另类春色国产| 久久国产天堂福利天堂| 一区二区三区精品在线| 久久久久国产精品厨房| 亚洲欧美日韩天堂| 欧美国产激情| 欧美.www| 国模吧视频一区| 亚洲深夜影院| 亚洲免费av电影| 久久久久成人精品| 久久国产精品色婷婷| 欧美精品久久一区| 老**午夜毛片一区二区三区| 国产精品日本| 9l国产精品久久久久麻豆| 伊人婷婷久久| 久久精品亚洲国产奇米99| 午夜国产不卡在线观看视频| 欧美欧美全黄| 亚洲国内精品在线| 亚洲国产va精品久久久不卡综合| 欧美中文在线视频| 久久9热精品视频| 国产精品入口日韩视频大尺度| 99视频精品在线| 亚洲一区二区在| 亚洲日本va午夜在线影院| 一区二区三区在线观看国产| 午夜视频在线观看一区二区三区 | 亚洲国产美女精品久久久久∴| 性欧美在线看片a免费观看| 性欧美1819性猛交| 国产精品人人爽人人做我的可爱 | 最新高清无码专区| 亚洲三级视频| 欧美精品日韩综合在线| 亚洲承认在线| 亚洲看片一区| 欧美午夜免费| 欧美一区不卡| 嫩草国产精品入口| 亚洲黄色尤物视频| 欧美巨乳在线| 亚洲一级在线| 久久免费精品视频| 亚洲国产精品久久久久秋霞影院 | 欧美夜福利tv在线| 久久精品国产2020观看福利| 国产一区二区三区黄视频| 久久久亚洲人| 亚洲精品一区二区三| 亚洲欧美日韩在线不卡| 国模私拍一区二区三区| 久久综合一区二区| 亚洲高清视频的网址| 亚洲婷婷免费| 狠狠色狠狠色综合日日五| 欧美成人激情在线| 亚洲午夜精品视频| 六十路精品视频| 一本综合久久| 极品日韩av| 国产精品乱码久久久久久| 欧美一区二区三区视频在线观看 | 久久成人亚洲| 欧美黄色成人网| 午夜精品免费在线| 亚洲国产精品一区二区尤物区 | 一道本一区二区| 蜜臀va亚洲va欧美va天堂| 99国产精品99久久久久久粉嫩 | 一区二区三区欧美在线| 国产主播一区二区| 欧美揉bbbbb揉bbbbb| 久久久另类综合| 中文国产亚洲喷潮| 国产日韩精品久久久| 免费人成网站在线观看欧美高清| 一区二区欧美在线观看| 嫩模写真一区二区三区三州| 亚洲欧美日韩中文视频| 亚洲激情成人在线| 国产欧美一区二区精品仙草咪| 欧美日韩成人在线观看| 久久国产精品一区二区| 亚洲午夜国产成人av电影男同| 亚洲国产女人aaa毛片在线| 久久精品最新地址| 亚洲欧美综合另类中字| 一区二区三区欧美激情| 亚洲欧洲一区二区三区| 亚洲国产成人在线播放| 狠狠久久综合婷婷不卡| 国产精品一二三| 欧美亚洲第一页|