zoukankan      html  css  js  c++  java
  • hdu 1789 doing homework again(贪心)

    http://acm.hdu.edu.cn/showproblem.php?pid=1789

    题意:

    每个老师都会给出交作业的期限和没按时交会扣掉的分数 要求出扣除最少分数的情况

    思路:

    是一题典型的贪心
    把扣除分数多的科目排在前面

    并排在尽量晚的位置 

    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    struct node
    {
        int day,val;
    };
    node num[1000+100];
    int vis[1000+100];
    int cmp1(node a,node b)
    {
        return a.val>b.val;
    }
    int main()
    {
        int i,j,k;
        int t,n,m;
        int ans;
        scanf("%d",&t);
        while(t--)
        {
            ans=0;
            memset(vis,0,sizeof(vis));
            scanf("%d",&n);
            for(i=1;i<=n;i++)
            {
                scanf("%d",&num[i].day);
            }
            for(i=1;i<=n;i++)
            {
                scanf("%d",&num[i].val);
            }
            sort(num+1,num+n+1,cmp1);
    
            for(i=1;i<=n;i++)
            {            
                int temp=num[i].day;
                while(vis[temp]) temp--;
                if(temp==0)
                {
                    ans+=num[i].val;
                }
                else vis[temp]=1;
            }
            printf("%d
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    视图和触发器
    45题的难点
    表连接、Tsql基本编程和存储过程
    五种函数、子查询和分页查询
    语句创建数据库表及增删改查
    约束
    pyhton的参数类型
    python的数组与集合
    python基础--编码
    NSIS的Push与Pop
  • 原文地址:https://www.cnblogs.com/sola1994/p/3900408.html
Copyright © 2011-2022 走看看