程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 757 - Gone Fishing

757 - Gone Fishing

編輯:C++入門知識

[cpp]
描述:暴力+貪心,先定向選擇依次只能到達第一個湖、第二個湖……最後一個湖,就會變成選擇最優解問題,選擇和最大的就可以了,注意有可能數據都是為零的時候,這是把所有的時間都用在第一個湖就可以了 
#include <cstdio>  
#include <cstring>  
int main() 

   // freopen("a.txt","r",stdin);  
    int t[30],f[30],d[30],s[30]; 
    int h,n,count,p=0; 
    while(scanf("%d",&n)!=EOF) 
    { 
        if(!n) break; 
        if(p) printf("\n"); 
        scanf("%d",&h); 
        h*=60; 
        for(int i=0; i<n; i++) scanf("%d",&f[i]); 
        for(int i=0; i<n; i++) scanf("%d",&d[i]); 
        count=t[0]=0; 
        for(int i=1; i<n; i++) 
        { 
            scanf("%d",&t[i]); 
            t[i]=t[i]*5+t[i-1]; 
        } 
        memset(s,0,sizeof(s)); 
        for(int i=0; i<n; i++) 
        { 
            int leave=h-t[i]; 
            if(leave<5) break; 
            int sum=0,pos=0,temp[30],m[30],flag,c; 
            for(int j=0; j<=i; j++) 
            { 
                m[j]=f[j]; 
                temp[j]=0; 
            } 
            while(leave>=5) 
            { 
                flag=c=0; 
                for(int j=0; j<=i; j++) 
                    if(m[j]>c) 
                    { 
                        c=m[j]; 
                        pos=j; 
                        flag=1; 
                    } 
                if(!flag) break; 
                temp[pos]+=5; 
                sum+=c; 
                m[pos]-=d[pos]; 
                leave-=5; 
            } 
            if(leave>=5) temp[0]+=leave; 
            if(sum>count) 
            { 
                count=sum; 
                for(int j=0; j<=i; j++) s[j]=temp[j]; 
            } 
        } 
        if(!count) s[0]=h; 
        printf("%d",s[0]); 
        for(int i=1; i<n; i++) printf(", %d",s[i]); 
        printf("\nNumber of fish expected: %d\n",count); 
        p++; 
    } 
    return 0; 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved