2007年浙江大学计算机及软件工程研究生机试真题
生活随笔
收集整理的這篇文章主要介紹了
2007年浙江大学计算机及软件工程研究生机试真题
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
http://ac.jobdu.com/problem.php?pid=1025? 最大報(bào)銷額
//將題目中數(shù)字都擴(kuò)大100倍變成整數(shù),就可看作經(jīng)典的01背包問(wèn)題 //設(shè)報(bào)銷額度為背包上限,可報(bào)銷支票金額為價(jià)格,可報(bào)銷支票金額為重量 //a[]存的既是價(jià)格,又是重量 #include<iostream> #include<cstdio> using namespace std;int a[32]; //存的既是價(jià)格,又是重量 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) //合法的發(fā)票a[k++]=(int)(100*(A+B+C));}}V=q*100;for(i=0;i<=V;i++) //沒(mé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位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖
總結(jié)
以上是生活随笔為你收集整理的2007年浙江大学计算机及软件工程研究生机试真题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 2006年清华大学计算机研究生机试真题
- 下一篇: 2010年清华大学计算机研究生机试真题