题目思路

将兔子的血量从大到小排列,将箭的属性写在类中(结构体也成),排序按照伤害从大到小排列,若有相等的则按价格从小到大排。

代码

#include<bits/stdc++.h>
using namespace std;
int N, M;
const int maxn = 100000+10;
int b[maxn], d[maxn], p[maxn];
class Arrow
{
public:
int D, P;
Arrow(int i, int j):D(i), P(j){}
Arrow(){} }a[maxn];
bool cmp(Arrow s1, Arrow s2)
{
if(s1.D == s2.D)
return s1.P < s2.P;
return s1.D > s2.D;
}
int main()
{
std::ios::sync_with_stdio(false);
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
while(cin >> N >> M)
{
memset(b, 0, sizeof(b));
memset(d, 0, sizeof(d));
memset(p, 0, sizeof(p));
for(int i = 0; i < N; i++)
cin >> b[i];
for(int i = 0; i < M; i++)
{
cin >> d[i];
a[i].D = d[i];
}
for(int i = 0; i < M; i++)
{
cin >> p[i];
a[i].P = p[i];
}
sort(b, b + N, greater<int>());
sort(a, a + M, cmp);
priority_queue<int, vector<int>, greater<int> > q;
long long ans = 0;
int k = 0, flag = 0;
for(int i = 0; i < N; i++)
{
while(k < M && b[i] <= a[k].D)
{
q.push(a[k].P);
k++;
}
if(q.empty())
{
flag = 1;
break;
}
ans += q.top(); //加上杀死该兔子对应的最佳方案
q.pop();
}
if(flag)
cout << "No" << endl;
else
cout << ans << endl;
}
}

最新文章

  1. 局域网象棋游戏(C++实现,使用Socket,界面使用Win32,CodeBlocks+GCC编译)
  2. YARN基本框架介绍
  3. DSP using MATLAB示例Example3.16
  4. JetBrains WebStorm 7.0 Build 131.202 Win/Mac/Liniux
  5. 在client类中设置访问属性 address,business和individua
  6. Activator.CreateInstance 方法 (Type) 的用法
  7. Javascript之简单按钮搜索功能
  8. Subsets II ——LeetCode
  9. C#委托的简单剖析
  10. HDU2066:一个人的旅行(Dijkstra)
  11. STM32学习笔记(一)——点亮一个LED
  12. GitHub 入门不完全指南(未完待续)
  13. Spark性能调优之Shuffle调优
  14. myeclipse 彻底让烦人的各种验证消失 让你的开发速度飞快
  15. EF中关于TransactionScope的使用
  16. 数据交换格式与SpringIOC底层实现
  17. 一次电话Java面试的问题总结(JDK8新特性、哈希冲突、HashMap原理、线程安全、Linux查询命令、Hadoop节点)
  18. [luogu5003]跳舞的线【动态规划】
  19. linux 硬链接 软链接
  20. 你确定你真的懂Nginx与PHP的交互?

热门文章

  1. ng2 空标签
  2. 开启和安装Kubernetes k8s 基于Docker For Windows
  3. PHP pdo单例模式连接数据库
  4. 对JavaEE的简单理解
  5. spark2.2 从入门到精通全套视频教程(含网盘下载地址)
  6. 异或序列 [set优化DP]
  7. Java面试题及答案汇总(一)
  8. node-red inject节点 debug节点 switch节点
  9. ABP 结合 MongoDB 集成依赖注入
  10. test aria2 on windows platform