• <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>

            Onway

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

            pku 2392 Space Elevator 多重背包

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

            pku 2392 Space Elevator 多重背包

             其實這個題找到了切入口后,是挺簡單的。我似乎總有一種先入為主的傾向,想到一點點就下手,結果浪費時間,還掉入死胡同里。總之我是沒找到那個切入口,然后看了一下discuss,原來排序就可以了,ft!!怎么我就笨得想不到了。其實我是想過排序,但沒有深入去考慮。

             整個題最后的解肯定是不大于最大高度的type的。

            將最大高度排序后,先疊好高度低的,高度大的疊在上面。

            每一高度只要能組合就行進標記,不再浪費后面的blocks。同時對于某一blocks,只要枚舉高度到該type的最大高度即可,并記錄改高度使用了該type的blocks的個數。(背包部分)

             

             

             1#include <iostream>
             2#include <algorithm>
             3using namespace std;
             4const int MAX=40000;
             5const int MMAX=400;
             6struct type
             7{
             8    int h,a,c;
             9}
            data[MMAX+1];
            10bool cmp(type x,type y)
            11{
            12    return x.a<y.a;
            13}

            14int cnt[MAX+1];
            15bool sgn[MAX+1];
            16int main()
            17{
            18    int n,i,j;
            19    scanf("%d",&n);
            20    for(i=1;i<=n;++i)    scanf("%d%d%d",&data[i].h,&data[i].a,&data[i].c);
            21    sort(data+1,data+1+n,cmp);
            22
            23    memset(sgn,0,sizeof(sgn));
            24    sgn[0]=1;
            25    for(i=1;i<=n;++i)
            26    {
            27        memset(cnt,0,sizeof(cnt));
            28        for(j=data[i].h;j<=data[i].a;++j)
            29            if(!sgn[j]&&sgn[j-data[i].h]&&cnt[j-data[i].h]<data[i].c)
            30            {
            31                sgn[j]=1;
            32                cnt[j]=cnt[j-data[i].h]+1;
            33            }

            34    }

            35
            36    for(j=data[n].a;j>=0;--j)
            37        if(sgn[j])
            38
            39            break;
            40    printf("%d\n",j);
            41    return 0;
            42}
            国产福利电影一区二区三区久久老子无码午夜伦不 | 久久99久国产麻精品66| 久久久青草青青亚洲国产免观| 欧美精品国产综合久久| 久久嫩草影院免费看夜色| 欧美伊香蕉久久综合类网站| 99久久婷婷国产综合亚洲| 色欲综合久久躁天天躁蜜桃| 中文精品久久久久人妻不卡| 亚洲精品WWW久久久久久| 亚洲国产精品成人久久蜜臀| 久久亚洲天堂| 久久久这里只有精品加勒比| 一极黄色视频久久网站| 亚洲综合久久久| 久久久久久久久久久久久久| 国产精品久久久久久久人人看| 久久无码AV中文出轨人妻| 久久伊人色| 亚洲天堂久久久| 亚洲人成精品久久久久| 久久亚洲AV成人无码电影| 无码超乳爆乳中文字幕久久| AV狠狠色丁香婷婷综合久久 | 亚洲嫩草影院久久精品| 国产精品亚洲综合专区片高清久久久 | 国产成人无码精品久久久性色| 亚洲国产精品久久电影欧美| 国产精品久久久久jk制服| 7国产欧美日韩综合天堂中文久久久久| 国产福利电影一区二区三区久久久久成人精品综合 | 久久久久AV综合网成人| 久久不射电影网| 亚洲国产精品成人AV无码久久综合影院 | 久久久久亚洲AV成人网人人软件| 蜜臀久久99精品久久久久久| 久久精品aⅴ无码中文字字幕不卡| 久久亚洲精品成人AV| 国产精品欧美久久久久无广告 | 国产91久久综合| 久久精品视频一|