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

心如止水
Je n'ai pas le temps
posts - 400,comments - 130,trackbacks - 0

NOIp2006年的第二題,典型的動態規劃,物品之間有依賴關系。可以把物品分為若干組,每組最多有四種衍生出來的“物品”,即只選擇一個主件,選擇一個主件和一個附件(兩種),選擇一個主件和兩個附件。由題意得,每組只能選擇一個“物品”,這樣就把題目轉化成了分組背包問題。

我的做法是DFS一次(雖說是DFS,實際結點數只是4),計算出衍生出來的若干組“物品”,然后用分組背包的做法進行動態規劃。

此題目還有一個優化:因為所給數據是10的倍數,所以可以在開始時除以10,最后輸出時再乘上10,用來減少狀態數量。

 

以下是我的代碼:

#include<stdio.h>
#define SIZE 61
#define max(a,b) (a>b?a:b)
long N,m,v[SIZE],p[SIZE],q[SIZE];
long maino=0,c[SIZE][SIZE]={0},w[SIZE][SIZE]={0},d[3201]={0};
int find(int nn,int kk)
{
    
long i;
    
for(i=kk;i<=m;i++)
      
if(q[i]==nn)
         
return i;
    
return 0;
}

void dfs(long now,long ii,long weight,long cost)
{// 第now個主件 
    long t;
    t
=find(now,ii+1);
    
if(!t)
    
{
       c[maino][
0]++;
       w[maino][
0]++;
       c[maino][ c[maino][
0] ]=cost;
       w[maino][ w[maino][
0] ]=weight;
       
return;
    }

    dfs(now,t,weight,cost);
    dfs(now,t,weight
+v[t]*p[t],cost+v[t]);
}

void init()
{
    
long i,j;
    FILE 
*fin=fopen("budget.in","r");
    fscanf(fin,
"%ld%ld",&N,&m);
    N
/=10;
    
for(i=1;i<=m;i++)
      q[i]
=0;// Clear
    for(i=1;i<=m;i++)
    
{
       fscanf(fin,
"%ld%ld%ld",&v[i],&p[i],&q[i]);
       v[i]
/=10;
    }

    fclose(fin);
    
// Read In
    for(i=1;i<=m;i++)
    
{
       c[i][
0]=0;
       w[i][
0]=0;
    }

    
for(i=1;i<=m;i++)
      
if(q[i]==0)
      
{
         maino
++;
         dfs(i,
0,v[i]*p[i],v[i]);
      }

}

void dp()
{
    
long k,i,j;
    
for(k=1;k<=maino;k++)
      
for(j=N;j>=0;j--)
        
for(i=1;i<=c[k][0];i++)
          
if(j>=c[k][i])
            d[j]
=max(d[j],d[j-c[k][i]]+w[k][i]);
}

void write()
{
    FILE 
*fout=fopen("budget.out","w");
    
long i,ans=0;
      
for(i=0;i<=N;i++)
        ans
=max(ans,d[i]);
    fprintf(fout,
"%ld\n",ans*10);
    fclose(fout);
}

int main()
{
    init();
    dp();
    write();
return 0;
}

posted on 2010-01-06 19:48 lee1r 閱讀(699) 評論(1)  編輯 收藏 引用 所屬分類: 題目分類:動態規劃

FeedBack:
# re: vijos P1313 金明的預算方案 求助
2010-10-06 17:51 | dingdinglhz@gmail.com
//大牛幫幫忙!!!

#include<iostream>
using namespace std;
int c[61],w[61];//原始c、w
int kids[61][2],father[61];//主附件關系
int lc[61][4],lw[61][4];//分組后c、w
int f[3201];
int n,m,fa=0;
void init(){
int k[61];
cin>>n>>m;
for(int i=1;i<=m;i++){cin>>c[i]>>w[i]>>k[i];c[i]/=10;w[i]*=c[i];}
for(int i=1;i<=m;i++){if(!k[i]){fa++;father[fa]=i;}}
for(int i=1;i<=m;i++){
if(k[i]){
if(kids[k[i]][0]){kids[k[i]][1]=i;}
else{kids[k[i]][0]=i;}
}
}
for(int i=1;i<=fa;i++){
cout<<kids[i][0]<<" "<<kids[i][1]<<" "<<father[i]<<endl;
}
}
void make_club(){
for(int i=1;i<=fa;i++){
lc[i][0]=c[father[i]];lw[i][0]=w[father[i]];
lc[i][1]=lc[i][0]+c[kids[i][0]];lw[i][1]=lw[i][0]+w[kids[i][0]];
lc[i][2]=lc[i][0]+c[kids[i][1]];lw[i][2]=lw[i][0]+w[kids[i][1]];
lc[i][3]=lc[i][1]+lc[i][2]-lc[i][0];lw[i][3]=lw[i][1]+lw[i][2]-lw[i][0];
}
for(int i=1;i<=fa;i++){
for(int j=0;j<=3;j++){
cout<<lc[i][j]<<" "<<lw[i][j]<<endl;
}
cout<<endl;
}
}
void dp(){
for(int k=1;k<=fa;k++){
for(int v=(n/10);v>=0;v--){
//for(int v=0;v<=(n/10);v++){
for(int i=0;i<=3;i++){
if(v-lc[k][i]>=0){f[v]=max(f[v],f[v-lc[k][i]]+lw[k][i]);}
}
}
for(int v=0;v<=n/10;v++){cout<<f[v]<<" ";}
cout<<endl;
}
cout<<f[n/10]*10;
}
int main(){
//freopen("budget.in" ,"r",stdin );
//freopen("budget.out","w",stdout);
init();
make_club();
dp();
system("pause");
return 0;
}
/*
自測60分
2000 10
500 1 0
400 4 0
300 5 1
400 5 1
200 5 0
500 4 5
400 4 0
320 2 0
410 3 0
400 3 5
正確答案為7340,我的答案為7200。中間加了幾句調試,答案是最后一行;
大牛們幫幫忙!!!
  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            狂野欧美一区| 午夜一区不卡| 午夜精品一区二区三区在线视| 亚洲一区二区三区三| 在线精品福利| 欧美与黑人午夜性猛交久久久| 韩日在线一区| 亚洲中无吗在线| aⅴ色国产欧美| 欧美日韩亚洲高清| 暖暖成人免费视频| 欧美性事免费在线观看| 亚洲国产二区| 在线国产精品一区| 久久久久久久欧美精品| 久久男人av资源网站| 欧美日韩国产综合久久| 亚洲视屏一区| 国产女同一区二区| 久久激情网站| 美女精品网站| 一区在线免费| 欧美高清不卡在线| 亚洲最新中文字幕| 久久偷看各类wc女厕嘘嘘偷窃| 国产主播一区二区三区| 美女主播精品视频一二三四| 亚洲精品护士| 亚洲午夜精品17c| 欧美xx69| 亚洲风情在线资源站| 亚洲日韩第九十九页| 欧美日韩福利在线观看| 蜜臀va亚洲va欧美va天堂| 亚洲精品免费观看| 国产精品私房写真福利视频| 欧美一站二站| 亚洲精品黄色| 久久爱另类一区二区小说| 亚洲成色999久久网站| 欧美日韩国产影片| 久久av二区| 亚洲片国产一区一级在线观看| 性欧美video另类hd性玩具| 日韩视频免费在线| 国产欧美日韩一区| 久久精品色图| 午夜在线电影亚洲一区| 亚洲国产日韩一区二区| 欧美一级精品大片| 亚洲毛片av| 国产色综合天天综合网| 亚洲精品免费观看| 久久精品国产成人| 女人天堂亚洲aⅴ在线观看| 一级日韩一区在线观看| 欧美一区二区三区在线观看| 蜜桃久久精品乱码一区二区| 国产精品丝袜xxxxxxx| 国产伦精品一区二区三区视频黑人| 一区二区自拍| 久久精品国产2020观看福利| 亚洲国产cao| 亚洲图片欧洲图片日韩av| 亚洲免费一在线| 欧美日本国产视频| 永久555www成人免费| 亚洲一区二区在线免费观看视频| 国产精品成人在线观看| 欧美在线影院| 亚洲国产精品传媒在线观看| 欧美激情一区三区| 亚洲综合日韩在线| 欧美国产日本| 91久久久在线| 美女精品视频一区| 久久在线免费观看视频| 国产日韩精品在线播放| 一区二区三区成人精品| 欧美激情在线免费观看| 久久久久久亚洲综合影院红桃 | 欧美一区二区三区另类| 欧美激情在线| 欧美久久99| 亚洲美女av网站| 亚洲精品欧美专区| 欧美成人三级在线| 亚洲精品一区二区三区樱花| 欧美高清视频| 欧美日韩不卡一区| 在线亚洲一区| 欧美一区二区三区在| 国产伦精品一区二区三区高清版| 亚洲制服欧美中文字幕中文字幕| 午夜激情久久久| 在线免费观看欧美| 亚洲国产精品美女| 欧美日韩一区二区高清| 久久精品99无色码中文字幕 | 老司机成人在线视频| 国产精品99久久久久久白浆小说| 国产精品一区二区在线观看网站| 久久精品视频在线| 久久视频在线免费观看| 一区电影在线观看| 一区二区三区国产盗摄| 亚洲丰满少妇videoshd| 久久国产精品亚洲va麻豆| 亚洲第一在线| 这里只有视频精品| 亚洲丁香婷深爱综合| 亚洲香蕉成视频在线观看| 精品成人久久| 在线亚洲欧美| 亚洲人成毛片在线播放女女| 亚洲一区成人| 在线一区二区三区四区五区| 在线视频你懂得一区| 韩国一区电影| 99国内精品久久| 在线观看一区二区精品视频| 一本一道久久综合狠狠老精东影业| 国产私拍一区| 亚洲人久久久| 亚洲精品少妇30p| 久久成人在线| 欧美高清自拍一区| 在线观看免费视频综合| 久久精品亚洲一区二区| 久久琪琪电影院| 一区二区三区在线视频播放| 欧美在线国产| 美女脱光内衣内裤视频久久影院| 一区一区视频| 免费91麻豆精品国产自产在线观看| 久久精品国产2020观看福利| 国产日韩欧美一区二区| 欧美制服丝袜第一页| 欧美国产成人在线| 99精品视频一区| 国产精品美女久久久| 久久国产88| 欧美电影免费| 亚洲欧美日韩区| 国产欧美一区二区精品忘忧草| 亚洲午夜视频在线| 欧美在线观看视频在线| 亚洲国产精品精华液网站| 久久午夜av| 亚洲一区二区伦理| 久久午夜视频| 亚洲一级在线观看| 国产精品久线观看视频| 欧美中文字幕视频| 亚洲高清视频在线| 女女同性女同一区二区三区91| 欧美日韩1080p| 亚洲免费av网站| 久久激情久久| 91久久嫩草影院一区二区| 久久久久久久久久久一区| 亚洲国产欧美不卡在线观看| 欧美一区三区三区高中清蜜桃| 欧美视频一区二区三区…| 亚洲女女女同性video| 亚洲国产精品va在线看黑人动漫| 亚洲综合视频在线| 黄色一区二区在线| 国产精品久久久久久久久久直播 | 欧美日本久久| 欧美一区亚洲一区| 91久久精品国产91久久性色tv| 亚洲欧美中文字幕| 亚洲一区二区三区四区中文| 亚洲精品国精品久久99热一| 国产精品欧美精品| 欧美国产日韩精品| 欧美日韩国产综合新一区| 久久国产一区二区| 午夜电影亚洲| 欧美自拍偷拍午夜视频| 先锋影音国产一区| 久久久国产成人精品| 久久精品视频免费播放| 久久久久高清| 久久久久久电影| 午夜精品美女自拍福到在线| 亚洲永久精品国产| 一区二区国产日产| 亚洲欧美成人一区二区三区| 亚洲中午字幕| 久久国产主播| 久久综合图片| 麻豆av一区二区三区久久| 欧美激情一区二区| 欧美日韩在线影院| 在线精品国产成人综合| 亚洲无亚洲人成网站77777| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲黄色有码视频|