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

A Za, A Za, Fighting...

堅信:勤能補拙

PKU 1416 Shredding Company

問題:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1416

思路:
深度優先搜索,找出所有可能的劃分,并適當減枝
這里搜索的對象是什么?
我的第一個想法受到了前幾天完成PKU 1950的啟發,對于從高到低的每一位,有兩種可能:
a. 作為解的一部分,加入總和
b. 不加入總和,而是作為向下繼續搜索時的高位
dfs(depth, cur_sum, pre)
depth: 搜索深度
cur_sum: 當前總和
pre: 保留位
經過一段時間的調試,一次AC了
存在的問題是:  對于每一種可能的解都會重復記錄兩次,例如:
輸入 376  144139
輸出 283  144  139
dfs(6, 283, 0)與dfs(6, 144, 139)都可以得到該解

之后,查看了網上的代碼,原來不用想的這么復雜
對于第k位,我們搜索從其開始的所有可能,然后遞歸,例如:
對于將被“粉碎"的12346,對于第一位'1',可能的劃分有1, 12, 123, 1234, 12346

代碼(方法一):
 1 #define MAX_LEN 7
 2 int target, num;
 3 int digits_count, digits[MAX_LEN];
 4 int sum_count, sum, parts_count, parts[MAX_LEN];
 5 int ans_count, ans[MAX_LEN];
 6 
 7 void
 8 init()
 9 {
10     int i, temp, rem;
11     memset(digits, -1sizeof(digits));
12     memset(parts, -1sizeof(parts));
13     digits_count = sum_count = parts_count = 0;
14     sum = -1;
15     rem = num;
16     do {
17         digits[digits_count++= rem % 10;
18         rem /= 10;
19     } while(rem!=0);
20     for(i=0; i<digits_count/2; i++) {
21         temp = digits[i];
22         digits[i] = digits[digits_count-i-1];
23         digits[digits_count-i-1= temp;
24     }
25 }
26 
27 void
28 dfs(depth, cur_sum, pre)
29 {
30     if(cur_sum+pre>target) /* pruning */
31         return;
32     //printf("dfs(%d, %d, %d)\n", depth, cur_sum, pre);
33     if(depth == digits_count) {
34         if(pre != 0) {
35             parts[parts_count++= pre;
36             cur_sum += pre;
37         }
38         if(cur_sum == sum)
39             ++sum_count;
40         if(cur_sum > sum) {
41             sum = cur_sum;
42             sum_count = 1;
43             ans_count = parts_count;
44             memcpy(ans, parts, sizeof(int)*ans_count);
45         }
46         if(pre != 0)
47             parts[parts_count--= -1;
48         return;
49     }
50     /* branch 1 */
51     parts[parts_count++= digits[depth] + pre * 10;
52     dfs(depth+1, cur_sum+parts[parts_count-1], 0);
53     parts[parts_count--= -1;
54     /* branch 2 */
55     dfs(depth+1, cur_sum, pre*10+digits[depth]);
56 }

代碼(方法二):
 1 #define MAX_LEN 7
 2 int target, len;
 3 char num[MAX_LEN];
 4 int sum_count, sum, parts_count, parts[MAX_LEN];
 5 int ans_count, ans[MAX_LEN];
 6 
 7 void
 8 dfs(int depth, int cur_sum)
 9 {
10     int i, value = 0;
11     if(cur_sum > target) /* pruning */
12         return;
13     if(depth == len) {
14         if(cur_sum == sum)
15             ++sum_count;
16         if(cur_sum > sum) {
17             sum = cur_sum;
18             sum_count = 1;
19             ans_count = parts_count;
20             memcpy(ans, parts, sizeof(int)*ans_count);
21         }
22         return;
23     }
24     for(i=depth; i<len; i++) {
25         value *= 10;
26         value += (num[i]-'0');
27         parts[parts_count++= value;
28         dfs(i+1, cur_sum+value);
29         parts[parts_count--= -1;
30     }
31 }

posted on 2010-07-27 17:51 simplyzhao 閱讀(180) 評論(0)  編輯 收藏 引用 所屬分類: B_搜索

導航

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

統計

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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不卡在线| 午夜电影亚洲| 久久久国产一区二区三区| 久久久久久一区| 久久免费黄色| 亚洲国产成人av在线 | 中日韩美女免费视频网站在线观看| 亚洲精品欧美| 亚洲免费在线看| 久久久久成人网| 亚洲第一页自拍| 亚洲视频精选| 久久一区二区三区av| 欧美日韩人人澡狠狠躁视频| 国产精品一卡二| 在线国产精品播放| 欧美精品免费播放| 欧美大片在线看| 亚洲欧洲精品天堂一级| 中日韩美女免费视频网站在线观看| 亚洲欧美精品在线观看| 免费在线欧美黄色| 国产一区二区精品在线观看| 亚洲激情视频网站| 久久成人羞羞网站| 亚洲精品在线免费观看视频| 午夜亚洲性色福利视频| 欧美电影在线观看完整版| 国产精品久久久999| 亚洲国产精品成人综合色在线婷婷| 亚洲欧美国产高清va在线播| 亚洲高清久久网| 久久精品亚洲国产奇米99| 欧美视频一区二区三区…| 1024成人| 久久手机免费观看| 亚洲欧美在线免费观看| 欧美日韩伦理在线免费| 亚洲激情黄色| 美女主播一区| 亚洲综合首页| 国产精品剧情在线亚洲| 日韩亚洲国产欧美| 亚洲电影网站| 乱码第一页成人| 在线观看国产日韩| 久久久青草婷婷精品综合日韩| 亚洲一区国产| 欧美日韩在线影院| 在线亚洲欧美专区二区| 亚洲精品美女免费| 欧美激情亚洲精品| 亚洲精品一线二线三线无人区| 欧美高清在线视频| 免费不卡在线观看av| 伊人久久大香线蕉av超碰演员| 欧美在线高清| 亚洲欧美制服中文字幕| 国产精品实拍| 久久久久久9999| 久久久久久久久综合| 在线成人av.com| 欧美大香线蕉线伊人久久国产精品| 欧美在线视频免费播放| 韩日午夜在线资源一区二区| 久久久久久精| 巨乳诱惑日韩免费av| 亚洲毛片一区二区| 日韩写真在线| 国产毛片精品视频| 老**午夜毛片一区二区三区| 奶水喷射视频一区| 亚洲午夜在线观看视频在线| 在线中文字幕不卡| 国产日韩欧美高清免费| 久久中文在线| 亚洲欧美日韩在线| 女人香蕉久久**毛片精品| 亚洲黄色av| 亚洲精品日韩综合观看成人91| 欧美日本国产视频| 欧美一区二区三区四区高清| 欧美亚洲三区| 日韩视频一区二区三区| 日韩一级黄色av| 国产乱肥老妇国产一区二| 麻豆9191精品国产| 欧美日韩1区| 久久av二区| 欧美福利一区二区三区| 午夜欧美精品久久久久久久| 久久精品女人的天堂av| 亚洲视频在线观看| 久久视频在线视频| 亚洲午夜久久久| 久久九九国产精品| 亚洲视频1区2区| 久久免费一区| 欧美一区二区三区精品| 欧美chengren| 欧美在线综合视频| 欧美日韩一区二区三区免费| 另类专区欧美制服同性| 国产精品国内视频| 欧美激情精品久久久久久免费印度| 国产精品久久久久久久久久久久久| 久久精品在线免费观看| 国产精品福利在线观看| 亚洲国产一区二区在线| 一区二区三区在线视频观看| 99热这里只有成人精品国产| 1024精品一区二区三区| 欧美资源在线观看| 性娇小13――14欧美| 欧美日韩精品一区视频| 欧美激情成人在线视频| 精品成人久久| 香蕉国产精品偷在线观看不卡| 日韩亚洲欧美一区二区三区| 久久久久久国产精品mv| 久久精品国产视频| 国产精品一区在线观看你懂的| 一本久道久久综合婷婷鲸鱼| 亚洲人成小说网站色在线| 久久夜色撩人精品| 免费试看一区| 在线观看视频免费一区二区三区| 亚洲欧美精品在线| 久久国产日韩| 国产一区二区日韩精品欧美精品| 亚洲女女做受ⅹxx高潮| 欧美诱惑福利视频| 国产亚洲精品激情久久| 欧美一区二区三区免费大片| 久久久xxx| 亚洲高清网站| 欧美精品亚洲| 99热精品在线| 欧美中在线观看| 国产真实乱子伦精品视频| 欧美在线免费视屏| 久久中文久久字幕| 久久成人av少妇免费| 国产主播一区二区三区| 蘑菇福利视频一区播放| 亚洲欧美日本国产有色| 久久久欧美精品sm网站| 国产精品日日摸夜夜添夜夜av | 国产日韩精品一区二区三区| 一区二区三区四区国产精品| 亚洲免费在线电影| 国产毛片久久| 久久一区中文字幕| 亚洲成人在线视频播放| 狠狠色噜噜狠狠狠狠色吗综合| 久久精品理论片| 亚洲激情电影在线| 亚洲制服少妇| 国内精品久久久久久久97牛牛| 快播亚洲色图| 99在线精品观看| 玖玖玖免费嫩草在线影院一区| 国产日本欧美一区二区三区| 国产精品―色哟哟| 妖精视频成人观看www| 欧美日韩精品三区| 亚洲欧美日韩另类精品一区二区三区| 久久久蜜桃精品| 宅男精品导航| 狠狠色狠狠色综合日日91app| 欧美激情第六页| 亚洲欧美成人| 最新69国产成人精品视频免费| 亚洲女女女同性video| 亚洲电影欧美电影有声小说| 欧美系列亚洲系列| 另类激情亚洲| 亚洲欧美日韩电影| 亚洲激情视频网| 久久久久久久欧美精品| 亚洲午夜免费视频| 亚洲人成亚洲人成在线观看图片 | 在线中文字幕日韩| 日韩午夜在线播放| 久久综合中文字幕| 中国成人亚色综合网站| 国内激情久久| 国产精品呻吟| 国产精品v日韩精品| 久久综合亚州| 久久精品日产第一区二区| 亚洲午夜激情网站| 亚洲伦理自拍| 欧美国产激情二区三区| 久久精品系列|