zoukankan      html  css  js  c++  java
  • hdu 1789 Doing Homework again

    题意:要完成一批作业,假定每一科作业花的时间都为一天,若该科不能在相应的期限能完成,则扣除相应的分数,问完成这些作业最少扣多少分

    分析:贪心题

    贪心策略:先将作业按扣分值从大到小排序,若大小相等,则按期限从小到大排序。之后,用一个数组标记该天是否已用于完成作业。

    依次枚举每一科作业,从该科的期限往左移,若存在一天为用过的,则标记,否则,扣分

    View Code
    #include<iostream>
    #include<algorithm>
    #define MAXN 1000+10
    using namespace std;
    int n;
    bool vis[MAXN];
    struct work
    {
    int d,w;
    }p[MAXN];
    bool cmp(work a,work b)
    {
    if(a.w!=b.w)
    return a.w>b.w;
    return a.d<b.d;
    }
    int main()
    {
    int T;
    scanf("%d",&T);
    while(T--)
    {
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    scanf("%d",&p[i].d);
    for(int i=1;i<=n;i++)
    scanf("%d",&p[i].w);
    sort(p+1,p+n+1,cmp);
    memset(vis,false,sizeof(vis));
    int ans=0;
    for(int i=1;i<=n;i++)
    {
    int flag=1;
    for(int j=p[i].d;j>=1;j--)
    {
    if(!vis[j])
    {
    vis[j]=true;
    flag=0;
    break;
    }
    }
    if(flag) ans+=p[i].w;
    }
    printf("%d\n",ans);
    }
    return 0;
    }
  • 相关阅读:
    防止软件被暴力破解
    简单分析QQ群验证
    Hash(哈希)算法科普
    C语言自学的方法
    如何防范算法求逆
    .Net程序逆向入门教程
    分享几篇VMP研究和分析的文章
    逆向工程
    PHP之MVC项目实战(三)
    PHP之MVC项目实战(二)
  • 原文地址:https://www.cnblogs.com/nanke/p/2364121.html
Copyright © 2011-2022 走看看