hdu 1789 doing 숙제 again 욕심

1319 단어 알고리즘
제목 링크
전형 적 인 욕심 문 제 는 매 수업 의 가치 에 대해 큰 것 에서 작은 것 으로 순 서 를 매기 면 됩 니 다. 매 수업 의 시간 을 차례대로 보면 이 시간 이 점용 되 지 않 으 면 표 시 를 점용 합 니 다. 만약 에 점용 되 었 다 면 시간 이 한 사람 앞으로 이동 하고 점용 하면 계속 이동 합 니 다. 만약 에 0 시간 으로 이동 하면 이 임 무 를 완성 하지 못 하고 임 무 를 완성 하지 못 하 는 가 치 를 누적 하여 최종 결 과 를 얻 을 수 있 습 니 다.
post code:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int a[2000];
struct node{
   int time,value;       
}job[2000];
int cmp(node a,node b){
     return a.value>b.value;    
}

int main()
{
    int n,i,x;
    scanf("%d",&x);
    while(x--){
        scanf("%d",&n);
        for(i=1;i<=n;i++)
           scanf("%d",&job[i].time);
        for(i=1;i<=n;i++){
           scanf("%d",&job[i].value);
        }
        sort(job+1,job+1+n,cmp);
        memset(a,0,sizeof(a));
        int sum=0;
        for(i=1;i<=n;i++){
           int t=job[i].time;
           while(t>0){
              if(a[t]==0){     //        
                 a[t]=1;
                 break;
              }
              else t--;           
           }
           if(t==0)sum+=job[i].value;    // 0                                     
        }         
        printf("%d
",sum); } }

좋은 웹페이지 즐겨찾기