| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:相同代码C++WA,G++就AC了。。。顺便贴下代码(贪心加枚举)In Reply To:相同代码C++WA,G++就AC了。。。顺便贴下代码(贪心加枚举) Posted by:hdd871532887 at 2016-01-02 18:11:13 > #include<stdio.h>
> #include<algorithm>
> using namespace std;
> int fi[30];
> int di[30];
> int ti[30];
> int cfi[30];
> int n,t;
> struct st
> {
> int max;
> int num[30];
> }s[30];
> int getmax(int p[],int i,int j)
> {
> int t=i,cmax=p[i];
> for(int m=i+1;m<=j;m++)
> {
> if(cmax<p[m])
> {
> cmax=p[m];
> t=m;
> }
> }
> return t;
> }
> void fishing()
> {
> int T,v;
> for(int i=1;i<=n;i++)
> {
> s[i].max=0;
> for(int j=1;j<=n;j++)
> {
> s[i].num[j]=0;
> }
> }
> for(int i=1;i<=n;i++)//i表示结束钓鱼时的湖
> {
> v=0;
> T=t*60;
> for(int j=1;j<=i;j++)
> {
> cfi[j]=fi[j];
> T=(j<i)?T-ti[j]*5:T;
> }
> while(v<T)
> {
> int k=getmax(cfi,1,i);// 找到当前状态下捕鱼最多的湖进行捕鱼
> s[i].max+=cfi[k];
> s[i].num[k]+=5;
> cfi[k]>=di[k]?cfi[k]-=di[k]:cfi[k]=0;
> v+=5;
> }
> }
> for(int i;i<=n;i++)//将以编号为1-n的湖为结束钓鱼时,最多钓鱼数存入cfi数组
> cfi[i]=s[i].max;
> int l=getmax(cfi,1,n);//找到其中钓鱼最多时的l,l即结束钓鱼时的小湖
> for(int i=1;i<=n;i++)
> {
> if(i!=n)
> printf("%d, ",s[l].num[i]);
> else
> printf("%d\n",s[l].num[i]);
> }
> printf("Number of fish expected: %d\n\n",s[l].max);
> }
> int main()
> {
> while(scanf("%d",&n),n)
> {
> scanf("%d",&t);
> for(int i=1;i<=n;i++)
> {
> scanf("%d",&fi[i]);
> }
> for(int i=1;i<=n;i++)
> {
> scanf("%d",&di[i]);
> }
> for(int i=1;i<n;i++)
> {
> scanf("%d",&ti[i]);
> }
> fishing();
> }
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator