poj 1874 Trade on Verweggistan
2012-04-10 14:36
381 查看
题目链接:http://poj.org/problem?id=1874
题目思路:简单题,不过题意好难理解啊!
题目思路:简单题,不过题意好难理解啊!
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<string> #include<queue> #include<algorithm> #include<vector> #include<stack> #include<list> #include<iostream> #include<map> using namespace std; #define inf 0x3f3f3f3f #define Max 110 int max(int a,int b) { return a>b?a:b; } int min(int a,int b) { return a<b?a:b; } int money,num,w,cnt; int sum,MAXN,dp[55][1010],p; int ans[55]; int main() { int i,j,k,count=1; while(scanf("%d",&w),w) { money=0; memset(dp[0],0,sizeof(dp[0])); dp[0][0]=1; for(i=1;i<=w;i++) { memset(dp[i],0,sizeof(dp[i])); sum=0; MAXN=0; cnt=0; scanf("%d",&num); ans[cnt++]=0; for(j=1;j<=num;j++) { scanf("%d",&p); p=10-p; sum+=p; // printf("sum%d\n",sum); if(sum>MAXN) { cnt=0; ans[cnt++]=j; MAXN=sum; } else if(sum==MAXN) { ans[cnt++]=j; } // printf("MAX %d\n",MAXN); } money+=MAXN; for(j=0;j<cnt;j++) for(k=1000;k>=0&&k-ans[j]>=0;k--) { if(dp[i-1][k-ans[j]]) dp[i][k]=1; } } num=1; printf("Workyards %d\nMaximum profit is %d.\n",count++,money); printf("Number of pruls to buy:"); for(i=0;i<=1000;i++) { if(dp[w][i]&&num<=10) { num++; printf(" %d",i); } } puts(""); puts(""); } }
相关文章推荐
- POJ 1874 Trade on Verweggistan
- poj-1874 Trade on Verweggistan *
- p1874_Trade on Verweggistan
- UVa 812 - Trade on Verweggistan 解题报告(枚举)
- UVa 812 - Trade on Verweggistan (贪心+dfs)
- UVa 812 - Trade on Verweggistan(贪心)
- UVA - 812 Trade on Verweggistan
- 812 - Trade on Verweggistan (暴力枚举)
- UVA - 812 Trade on Verweggistan
- uva 812 - Trade on Verweggistan(暴力)
- UVA - 812 Trade on Verweggistan dfs + 贪心
- UVA812-Trade on Verweggistan(暴力)
- POJ1874 Tram
- poj 1942 Paths on a Grid
- ZOJ 1103 Hike on a Graph(POJ 2415) (广搜)
- POJ 1942 Paths on a Grid 组合数学
- poj1386 Play on Words (欧拉路径)
- POJ 1942 Paths on a Grid
- POJ 1386 Play on Words
- POJ - 1942 D - Paths on a Grid 组合数