zoukankan      html  css  js  c++  java
  • HDU4544 湫湫系列故事――消灭兔子


    HDU 4544


    Tags: 数据结构,贪心

    Analysis:

    将兔子的血量从大到小排序,将箭的杀伤力从大到小排序,对于每一个兔子血量,

    将比他大的杀伤力大的剑压入优先队列,优先队列自己重写,让它每次抛出的数为价钱最小。


    Code:

    #include <cstdio>
    #include <queue>
    #include <algorithm>
    #include <functional>
    using namespace std;
    typedef long long LL;
    const int maxn = 100010;
    struct tt {
         int d;
         int p;
         bool operator <(const tt& t) const {
              return d>t.d||(d==t.d&&p<t.p);
         }
    } pt[maxn];
    int b[maxn];
    priority_queue<int , vector<int>, greater<int> > q;
    int main()
    {
         int n, m, i, j;
         while(~scanf("%d%d",&n,&m)) {
              for(i=1; i<=n; i++) scanf("%d",&b[i]);
              for(i=1; i<=m; i++) scanf("%d",&pt[i].d);
              for(i=1; i<=m; i++) scanf("%d",&pt[i].p);
              sort(b+1,b+1+n,greater<int>());
              sort(pt+1,pt+1+m);
              while(!q.empty()) q.pop();
              LL ans = 0;
              bool flag = 1;
              for(i=1,j=1; i<=n; i++) {
                   while(j<=m&&pt[j].d>=b[i]) {
                        q.push(pt[j].p);
                        j++;
                   }
                   if(!q.empty()) {
                        ans += q.top();
                        q.pop();
                   } else {
                        flag = 0;
                        break;
                   }
              }
              if(flag) printf("%I64d
    ",ans);
              else printf("No
    ");
         }
         return 0;
    }




  • 相关阅读:
    行转列函数listagg() WITHIN GROUP ()
    位图索引
    windows 杀掉进程
    vue 实践(过滤器)
    vue 总结
    vue v-show v-if 的使用
    vue v-for 绑定数据
    vue v-model实现数据的双向绑定
    vue .stop .self .capture .prevent 阻止冒泡
    vue v-on v-text 的运用
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3246571.html
Copyright © 2011-2022 走看看