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

Onway

我是一只菜菜菜菜鳥...
posts - 61, comments - 56, trackbacks - 0, articles - 34

pku 3211 Washing Clothes 0-1背包

Posted on 2010-08-03 22:23 Onway 閱讀(262) 評論(0)  編輯 收藏 引用 所屬分類: 傷不起的ACM

前幾天剛學0-1背包的時候就看過了這題,但沒什么思路,今天算是學過了三種背包了,再看回這題,還是沒什么思路。怎么人家都說是0-1背包呢,想了很久還是不知道怎么背包法,笨死。無奈看了discuss,豁然開朗。原來背包還可以這樣玩,太有意思了。

 

題意:

有一堆衣服,多種顏色,每種顏色的可能有多件。有兩個洗衣服速度相同的人要洗干凈這堆衣服。每件衣服都有一個洗干凈所要花費的時間。兩個人同時工作,但只有一種顏色的衣服都洗完后,兩人才可以開始洗其他顏色。問這兩個人洗完這堆衣服最少需要多少時間。

 

思路:將某種顏色的時間之和的一半作為0-1背包的容量,物品的價值與重量等同于該種顏色的衣服所花費的時間,這是關鍵思路啊!只要求得這個背包的能獲得的最大價值,就是說在這一半的時間里,有多少是被最有效利用的。然后總時間減去這個有效利用的,就是洗完這堆衣服最少要花費的時間。

 

要處理這個題的輸入可能比較麻煩。將輸入的數據轉化為要進行背包的數據后,背包部分就簡單了。

 

如果,這個題改一下,要分兩行輸出沒人要洗的衣服呢?又怎么處理了?

 1#include <iostream>
 2#include <string>
 3#include <algorithm>
 4using namespace std;
 5const int MAX=50000;  //變成兩個背包以后,一個的容量最多就是50000
 6char name[150];     //這個沒什么用,就是吃掉那一行的名字輸入
 7int sum[10];        //每一種顏色的時間之和
 8struct clother
 9{
10    int tim;
11    string color;
12}
clo[100];
13int data[12][100];    //將原來讀入的數據轉化后好進行0-1背包
14int dp[10][MAX+1];    //不解析
15bool cmp(clother a,clother b)
16{return a.color<b.color;}
17
18int main()
19{
20    int m,n;
21    while(cin>>m>>n&&(n||m))
22    {
23        getchar();
24        cin.getline(name,150);
25        int i,j,k;
26        for(i=1;i<=n;++i)
27            cin>>clo[i].tim>>clo[i].color;
28        sort(clo+1,clo+1+n,cmp);         //輸入完以后馬上排序
29        
30        data[1][1]=clo[1].tim;
31        for(i=2,j=1,k=2;i<=n;++i)      //data[j][0]是記錄第j種顏色的衣服件數
32            if(clo[i].color==clo[i-1].color)
33                data[j][k++]=clo[i].tim;
34            else
35            {
36                data[j][0]=--k;
37                ++j;
38                k=2;
39                data[j][1]=clo[i].tim;
40            }

41        data[j][0]=--k;
42        n=j;     //n變成了需要進行背包的顏色種數
43                //這一段很容易理解,但可能處理比較麻煩,從排序后的第二個數據,即i=2開始
44                //感覺這樣比較好處理
45
46        memset(sum,0,sizeof(sum));   //這段是數據轉化后進行時間之和統計
47        for(i=1;i<=n;++i)
48        {
49            for(j=1;j<=data[i][0];++j)
50                sum[i]+=data[i][j];
51        }

52
53        memset(dp,0,sizeof(dp));   //這一段就是進行0-1背包了
54        for(i=1;i<=n;++i)
55            for(j=1;j<=data[i][0];++j)
56                for(k=MAX;k>=data[i][j];--k)
57                    dp[i][k]=dp[i][k]>dp[i][k-data[i][j]]+data[i][j]?
58                    dp[i][k]:dp[i][k-data[i][j]]+data[i][j];
59
60        for(i=1;i<=n;++i)
61            sum[i]-=dp[i][sum[i]/2];  
62                //摘自poj discuss TangMing 的一句話:
63                //把sum[i]/2的背包最大填滿,第i種顏色耗時就為 sum[i]-dp[sum[i]/2];
64                //雖然這段代碼很短,但是整個思路的關鍵
65
66        for(i=1;i<=n;++i)
67            sum[0]+=sum[i];
68        cout<<sum[0]<<endl;
69    }

70    return 0;
71}
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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人在线观看导航 | 久久黄色级2电影| 国产精品v日韩精品v欧美精品网站| 欧美日韩精品三区| 欧美sm重口味系列视频在线观看| 亚洲黄色av一区| 久久米奇亚洲| 一本久久a久久免费精品不卡| 一区二区激情| 国产精品美女久久久久av超清| 欧美成人精品三级在线观看| 亚洲欧美日韩精品久久亚洲区 | 99国产精品久久久久久久久久| 久久色在线播放| 国产精品一二三视频| 久久综合电影一区| 久久亚洲一区| 在线视频一区观看| 中国成人亚色综合网站| 免费在线欧美视频| 久久先锋影音| 亚洲精品乱码久久久久久蜜桃麻豆 | 老牛嫩草一区二区三区日本| 亚洲欧美一区二区原创| 国产色视频一区| 欧美xxx成人| 久久天天综合| 久久手机免费观看| 亚洲黄色天堂| 亚洲免费av网站| 欧美久久婷婷综合色| 巨胸喷奶水www久久久免费动漫| 亚洲欧美日韩一区在线| 欧美一级专区免费大片| 日韩午夜电影在线观看| 久久国产一区二区| 欧美1区视频| 国产精品激情电影| 欧美国产高潮xxxx1819| 尹人成人综合网| 午夜精品一区二区在线观看| 亚洲欧洲精品一区二区三区不卡 | 欧美高清日韩| 黄色成人在线免费| 欧美色道久久88综合亚洲精品| 久久九九国产| 这里只有视频精品| 国产精品热久久久久夜色精品三区| 欧美成人一区二区三区| 亚洲天堂第二页| 欧美三级乱码| 久久精品论坛| 狼狼综合久久久久综合网| 亚洲高清av| 亚洲乱码国产乱码精品精可以看 | 久久亚洲风情| 亚洲欧洲一区二区三区久久| 免费在线欧美黄色| 亚洲国产日韩欧美在线图片| 日韩午夜剧场| 欧美刺激午夜性久久久久久久| 国产综合激情| 久久精品亚洲乱码伦伦中文| 久久天天躁夜夜躁狠狠躁2022 | 久久国产黑丝| 一区二区欧美激情| 一区二区电影免费观看| 极品日韩久久| 欧美黄色一区| 亚洲综合欧美日韩| 亚洲欧美日韩高清| 最新中文字幕亚洲| 久久久久网址| 亚洲国产精品va在线观看黑人| 亚洲欧洲一级| 久久久www免费人成黑人精品| 国产午夜精品福利| 亚洲国产裸拍裸体视频在线观看乱了| 国产精品视频内| 欧美日韩精品不卡| 国产精品久久久999| 蜜臀91精品一区二区三区| 一区二区av在线| 亚洲第一网站| 99在线精品免费视频九九视| 亚洲视频精选在线| 欧美综合77777色婷婷| 亚洲国产精品一区二区尤物区| 欧美在线播放高清精品| 久久久久国产精品午夜一区| 国产日韩欧美a| 麻豆精品一区二区av白丝在线| 欧美在线观看www| 国产一区二区三区无遮挡| 久久精品九九| 亚洲免费播放| 免费成人性网站| 亚洲少妇一区| 在线看无码的免费网站| 欧美日韩中文另类| 欧美一区二区三区免费大片| 亚洲自拍都市欧美小说| 老司机aⅴ在线精品导航| 欧美久久影院| 亚洲午夜一区二区| 欧美国产在线电影| 久久躁狠狠躁夜夜爽| 国产精品视频99| 亚洲精品国产系列| 亚洲美女黄色| 免费精品视频| 在线观看91久久久久久| 激情小说亚洲一区| 国产农村妇女精品一区二区| 欧美一区二区大片| 91久久久在线| 免费在线视频一区| 亚洲伦伦在线| 99精品视频免费全部在线| 亚洲欧美中文日韩在线| 欧美视频中文在线看| 欧美大尺度在线观看| 国产精品电影观看| 久久精品国产69国产精品亚洲| 中文网丁香综合网| 亚洲永久免费精品| 一本色道久久99精品综合| 亚洲主播在线观看| 在线一区二区三区四区| 欧美一区二区三区四区视频| 久久久久一区二区三区| 亚洲欧美日韩国产| 一区二区三区视频在线播放| 一区二区欧美日韩| 久久精品亚洲| 亚洲视频一区在线观看| 亚洲视频播放| 99re热这里只有精品免费视频| 亚洲午夜在线观看视频在线| 小黄鸭精品密入口导航| 香蕉久久夜色精品国产| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲综合日韩在线| 99国产麻豆精品| 麻豆91精品91久久久的内涵| 久久免费一区| 亚洲人成小说网站色在线| 小黄鸭精品aⅴ导航网站入口 | 国产农村妇女毛片精品久久莱园子 | 另类亚洲自拍| 国产精品一区久久久| 免费日韩视频| 嫩草影视亚洲| 久久免费国产精品| 欧美日韩视频在线一区二区| 欧美大片在线观看一区| 久久精品综合| 亚洲性人人天天夜夜摸| 亚洲综合99| 亚洲国产日韩一区二区| 一区二区三区无毛| 91久久精品日日躁夜夜躁欧美| 亚洲欧洲精品成人久久奇米网| 欧美精品一区三区在线观看| 亚洲第一综合天堂另类专| 午夜精品久久久久99热蜜桃导演| 免费成人高清| 国产精品欧美激情| 亚洲日本成人女熟在线观看| 欧美国产国产综合| 欧美日韩亚洲一区二区三区在线| 日韩一级黄色片| 亚洲麻豆av| 久久久久高清| 亚洲桃花岛网站| 欧美中文在线字幕| 精品不卡一区| 亚洲狼人精品一区二区三区| 国产精品亚洲美女av网站| aaa亚洲精品一二三区| 国产精品私房写真福利视频| 午夜激情综合网| 久久亚裔精品欧美| 午夜久久福利| 久久人人97超碰精品888| 亚洲精品一区二区在线观看| 美女脱光内衣内裤视频久久影院 | 亚洲欧美日韩国产中文在线| 亚洲精品1区2区| 欧美日本在线视频| 久久精品国产v日韩v亚洲 | 亚洲女人天堂成人av在线|