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

posts - 43,  comments - 9,  trackbacks - 0
http://acm.pku.edu.cn/JudgeOnline/problem?id=1276
題目大意是:
給定N種面值分別為d[k]的鈔票,數量分別為n[k]張.再給一個整數cash.
求,用這些鈔票能表示出的不大于cash的最大值是多少.
數據范圍N<=1000, n[k]<=1000, cash<=100000

最簡單的DP思路是大背包.把每一張鈔票看成一件物品,把cash看成背包容量.
這樣的復雜度是O(sigma(n[k])*cash),上限是10^11,顯然難以應付1000ms的時限.

此處便需利用一個整數的性質來壓縮鈔票數:
易知,1,2,4,...,2^(k-1)這些數的線性組合,可以表示出任意小于2^k的正整數.
所以如果n[i]=2^k-1,那么實際上鈔票k,就可以轉化為分別用系數(1,2,4,...,2^k-1)去乘d[k]而得到的鈔票各一張.
如果n[i]!=2^k-1,只需取系數1,2,4,..,2^(k-1),n[i]-(2^k-1),其中k是使2^k-1<=n[i]的最大整數.

代碼如下:
 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4 int dp[100010],mark;
 5 int sn,cash;
 6 struct BILL{
 7     int n,d;
 8 }b[1010];
 9 int ans;
10 
11 void go_dp(){
12     int i,k,upb,r,s;
13     dp[0]=mark;
14     ans=0;
15     for(k=0; k<sn; k++){
16         r=1//系數:2的冪次
17         while(b[k].n>0){
18             if((r<<1)-1>b[k].n){
19                 r=b[k].n-(r-1);
20                 b[k].n=0;
21             }
22             s=r*b[k].d; //新鈔票的面值
23             upb=min(ans+s,cash);
24             for(i=upb; i>=s; i--){
25                 if(dp[i-s]==mark){
26                     dp[i]=mark;
27                     if(ans<i) ans=i;
28                 }
29             }
30             r<<=1;
31             if(ans==cash) return;
32         }
33     }
34 }
35 
36 int main(){
37     int i,j,k;
38     mark=0;
39     while(scanf("%d%d",&cash,&sn)!=EOF){
40         ans=0; mark++;
41         for(i=0;i<sn;i++){
42             scanf("%d%d",&b[i].n,&b[i].d);
43             ans+=b[i].n*b[i].d;
44         }
45         if(ans>cash)
46             go_dp();
47         
48         printf("%d\n",ans);
49     }
50     return 0;
51 }
52 

另,在網上搜得另一種思路,開bool數組記錄每個總額是否能達到,開個2維數組記錄達到相應總額每種鈔票使用數
個人以為,這種方法不能保證總得到最優解.考察如下的例子:
cash=3*4*5=60
鈔票(面值*張數):3*19,4*14,5*11
假設55的方案恰好是5*11,56的方案恰好是4*14,57的方案恰好是3*19,那么在考慮60時就找不到解了.實際上60是可以達到的.





posted on 2009-04-11 13:21 wolf5x 閱讀(428) 評論(0)  編輯 收藏 引用 所屬分類: acm_icpc
<2009年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

"Do not spend all your time on training or studying - this way you will probably become very exhausted and unwilling to compete more. Whatever you do - have fun. Once you find programming is no fun anymore – drop it. Play soccer, find a girlfriend, study something not related to programming, just live a life - programming contests are only programming contests, and nothing more. Don't let them become your life - for your life is much more interesting and colorful." -- Petr

留言簿(3)

隨筆分類(59)

隨筆檔案(43)

cows

搜索

  •  

最新評論

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久综合一区二区三区| 国产亚洲视频在线观看| 国产精品99久久久久久www| 欧美成人a视频| 久久久蜜桃精品| 欧美专区18| 久久婷婷一区| 亚洲国产精品99久久久久久久久| 久久久久久香蕉网| 欧美风情在线| 亚洲精品免费在线| 亚洲午夜成aⅴ人片| 午夜精品久久久久久久99水蜜桃 | 欧美日韩国产免费| 欧美—级高清免费播放| 欧美视频中文字幕| 国产区日韩欧美| 亚洲三级观看| 午夜精品一区二区三区在线播放| 久久精品水蜜桃av综合天堂| 亚洲高清成人| 亚洲综合视频在线| 欧美成人精品在线播放| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ入口 | 国产在线观看一区| 亚洲另类黄色| 久久久精品久久久久| 亚洲人午夜精品| 欧美一区二区高清| 欧美人与性禽动交情品| 国产亚洲精品久| 一区二区欧美国产| 嫩草影视亚洲| 性8sex亚洲区入口| 欧美日韩一区三区四区| 亚洲电影观看| 久久久噜噜噜久久狠狠50岁| 日韩一区二区高清| 免费久久精品视频| 黄色日韩网站| 久久久精品一品道一区| 亚洲视频一区| 欧美性猛片xxxx免费看久爱| 亚洲精品一区二区在线| 欧美成人黑人xx视频免费观看| 午夜欧美大片免费观看| 国产精品乱子久久久久| 一区二区成人精品| 亚洲国产高清在线观看视频| 久久久精彩视频| 国产一区二区av| 久久av一区二区| 午夜精品久久久| 国产亚洲毛片在线| 久久久久国产成人精品亚洲午夜| 亚洲一区精品在线| 国产精品hd| 亚洲图片激情小说| 99pao成人国产永久免费视频| 欧美高清在线一区二区| 亚洲精品国精品久久99热| 欧美激情精品久久久久久免费印度| 久久久999精品视频| 在线看无码的免费网站| 欧美电影打屁股sp| 欧美激情一区在线| 一区二区三区你懂的| 亚洲网站视频| 亚洲免费成人av电影| 欧美日韩国产页| 国产精品99久久不卡二区| 日韩视频免费观看高清在线视频 | 亚洲欧美精品一区| 国产视频自拍一区| 久久一二三区| 欧美成人dvd在线视频| 夜夜嗨一区二区三区| 一本色道久久综合亚洲精品小说| 欧美色网在线| 久久av免费一区| 久久婷婷久久| 一区二区不卡在线视频 午夜欧美不卡在 | 久久久国际精品| 亚洲黄色尤物视频| 亚洲另类在线视频| 国产精品视频自拍| 老司机午夜免费精品视频 | 国产综合亚洲精品一区二| 久久人人爽人人| 欧美成人情趣视频| 午夜精品久久久久久| 久久婷婷成人综合色| 国产精品99久久99久久久二8| 亚洲欧美精品在线观看| 亚洲国产高清一区| 洋洋av久久久久久久一区| 国产日韩欧美一区在线| 亚洲第一主播视频| 国产网站欧美日韩免费精品在线观看 | 亚洲午夜日本在线观看| 一区在线视频| 99热这里只有精品8| 黄色在线成人| 中日韩视频在线观看| 亚洲国产精品va在看黑人| 亚洲视频在线观看| 亚洲级视频在线观看免费1级| 洋洋av久久久久久久一区| 亚洲大胆视频| 欧美一级视频精品观看| 亚洲午夜av| 欧美精品一区二区蜜臀亚洲| 快射av在线播放一区| 国产精品人人爽人人做我的可爱| 亚洲国产乱码最新视频| 永久免费视频成人| 午夜在线电影亚洲一区| 国产精品免费视频观看| 欧美国产一区二区三区激情无套| 国产伦精品一区二区三区高清版| 欧美波霸影院| 激情成人亚洲| 欧美在线观看视频| 亚洲欧美日韩中文播放| 欧美欧美全黄| 亚洲精品国精品久久99热| 亚洲丁香婷深爱综合| 久久精品人人爽| 久久久国产一区二区三区| 国产喷白浆一区二区三区| 一区二区三区国产盗摄| 亚洲色在线视频| 欧美区二区三区| 亚洲精品免费在线播放| 日韩亚洲在线| 欧美人与性动交a欧美精品| 亚洲精品免费一二三区| 一区二区日本视频| 欧美精品大片| 亚洲三级免费观看| 99riav1国产精品视频| 欧美国产第一页| 91久久久久久国产精品| 日韩视频免费观看| 欧美日本网站| 中文国产成人精品| 欧美伊人久久大香线蕉综合69| 国产欧美一区二区三区沐欲| 久久国产精品黑丝| 欧美成人精品一区二区| 亚洲日韩欧美一区二区在线| 欧美精品一区二区在线观看| 日韩一级视频免费观看在线| 亚洲欧美日韩成人高清在线一区| 国产精品日本一区二区| 香港久久久电影| 欧美成人精品三级在线观看| 亚洲作爱视频| 国产丝袜一区二区| 美女久久一区| 夜夜嗨av一区二区三区网页| 午夜欧美不卡精品aaaaa| 国产一区视频观看| 男人的天堂亚洲在线| 一本色道久久综合精品竹菊| 久久国产精品久久久| 在线欧美福利| 欧美午夜精品一区| 久久久国产精彩视频美女艺术照福利| 亚洲高清激情| 久久九九热免费视频| 日韩午夜电影| 狠狠色狠狠色综合日日小说| 欧美另类女人| 久久婷婷色综合| 一区二区三区四区国产精品| 玖玖综合伊人| 午夜日韩激情| 99国产精品99久久久久久| 国产视频一区欧美| 欧美日韩成人综合天天影院| 久久精品国产亚洲高清剧情介绍| 亚洲日本va午夜在线电影| 久久狠狠亚洲综合| 一区二区三区日韩欧美| 激情综合久久| 国产精品视频专区| 欧美日韩视频在线一区二区| 乱中年女人伦av一区二区| 亚洲性夜色噜噜噜7777| 亚洲美女黄色| 精品91视频| 国产欧美日韩三区| 欧美日韩国产在线看| 久久一区二区视频| 亚洲婷婷在线| 99伊人成综合| 最新国产の精品合集bt伙计| 美腿丝袜亚洲色图| 久久精品夜色噜噜亚洲aⅴ|