消灭兔子

/* 差不多的思路,很容易想到按照兔子血量降序排序 之后按照箭的攻击力降序排序,然后把可以杀死兔子的箭全放入小根堆中,选择一个Q币最小的用 */ #include <bits/stdc++.h> #define CLOSE ios::sync_with_stdio(false);cin.tie(0);cout.tie(0) #define endl "\n" typedef long long LL; const int N = 1e5 + 10, M = N, mod = 1e9 + 7; using namespace std; int a[N]; struct node{ int d, p; }b[N]; bool cmp1(int x, int y){ return x > y; } bool cmp2(node x, node y){ return x.d > y.d; } int main() { int n, m; cin >> n >> m; for(int i = 1; i <= n; i ++) cin >> a[i]; for(int i = 1; i <= m; i ++) cin >> b[i].d; for(int i = 1; i <= m; i ++) cin >> b[i].p; sort(a + 1, a + 1 + n, cmp1); sort(b + 1, b + 1 + m, cmp2); LL ans = 0; int idx = 1; priority_queue<int, vector<int>, greater<int>> q; for(int i = 1; i <= n; i ++){ while(idx <= m && b[idx].d >= a[i]){ q.push(b[idx].p); idx ++; } if(q.empty()){ cout << "No" << endl; return 0; } ans += q.top(); q.pop(); } cout << ans; return 0; }

__EOF__

本文作者可爱的卤蛋
本文链接https://www.cnblogs.com/acwhr/p/18003393.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   可爱的卤蛋  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示