HDU 4281 Judges' response(12年天津 MTSP问题) (二)

2014-11-24 10:23:14 · 作者: · 浏览: 1
;
for(int i=0;i if(flag[i]) continue;
int tmp=0;
for(int j=i;j if(flag[j]==0){
if(tmp+v[j]<=m){
flag[j]=1;
tmp+=v[j];
}
}
}
cnt++;
}
return cnt;
}
int TSP(){
for(int i=0;i<(1< if(ok[i])
for(int j=0;j if(i&(1< best[i]=min(best[i],dp[j][i]+path[j][0]);
for(int k=0;k
if(!(i&(1< dp[k][i|(1< }
}
for(int i=0;i<(1< if(i&1) www.2cto.com
for(int j=i&(i-1);j;j=i&(j-1))
best[i]=min(best[i],best[j]+best[(i-j)|1]);
return best[(1< }

int main(){
while(scanf("%d%d",&n,&m)!=EOF){
for(int i=0;i for(int i=0;i for(int i=0;i<(1< Get_dist();
Init();
int ans1=slove();
if(ans1==-1) {printf("-1 -1\n");continue;}
printf("%d %d\n",ans1,TSP());
}
return 0;
}