2007年浙江大学计算机及软件工程研究生机试真题
生活随笔
收集整理的這篇文章主要介紹了
2007年浙江大学计算机及软件工程研究生机试真题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://ac.jobdu.com/problem.php?pid=1025? 最大報銷額
//將題目中數字都擴大100倍變成整數,就可看作經典的01背包問題 //設報銷額度為背包上限,可報銷支票金額為價格,可報銷支票金額為重量 //a[]存的既是價格,又是重量 #include<iostream> #include<cstdio> using namespace std;int a[32]; //存的既是價格,又是重量 const int MAX = 3000005; int f[MAX]; int V; //背包的體積void ZeroOnePack(int cost, int weight) {int v;for (v = V; v >= cost; v--)f[v] = f[v] > (f[v - cost] + weight) ? f[v] : (f[v - cost] + weight); } int main(void) {int i,j,n,m,k,flag;double q,price,A,B,C;char type;while(scanf("%lf %d",&q,&n)!=EOF){if(!n)break;k=0;for(i=0;i<n;i++){scanf("%d",&m);A=B=C=0;flag=0;for(j=0;j<m;j++){getchar();scanf("%c:%lf",&type,&price);if(type=='A')A+=price;else if(type=='B')B+=price;else if(type=='C')C+=price;elseflag=1;}if(!flag){if(A+B+C<=1000 && A<=600 && B<=600 && C<=600) //合法的發票a[k++]=(int)(100*(A+B+C));}}V=q*100;for(i=0;i<=V;i++) //沒有要求把背包裝滿{f[i]=0;}for(i=0;i<k;i++)ZeroOnePack(a[i],a[i]);printf("%.2lf\n",f[V]/100.0);}return 0; }與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的2007年浙江大学计算机及软件工程研究生机试真题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2006年清华大学计算机研究生机试真题
- 下一篇: 2010年清华大学计算机研究生机试真题