51Nod-1493-数据关联
来源:互联网 发布:淘宝店掌柜名怎么改 编辑:程序博客网 时间:2024/06/06 02:58
ACM模版
描述
题解
贪心问题,不过贪心思路不是特别明了……
首先我们将两个序列都进行排序,然后分别考虑往
听起来可能有些迷糊,但是看一下代码就清晰多了,所以不再多说了~~~
代码
#include <iostream>#include <algorithm>using namespace std;typedef long long ll;const int MAXN = 1e5 + 10;const ll INF = 0x3f3f3f3f3f3f3f3f;int n, m;ll a[MAXN], b[MAXN];template <class T>inline void scan_d(T &ret){ char c; ret = 0; while ((c = getchar()) < '0' || c > '9'); while (c >= '0' && c <= '9') { ret = ret * 10 + (c - '0'), c = getchar(); }}int main(){ scan_d(m), scan_d(n); ll sum_a = 0, sum_b = 0; for (int i = 0; i < m; i++) { scan_d(a[i]); sum_a += a[i]; } for (int i = 0; i < n; i++) { scan_d(b[i]); sum_b += b[i]; } sort(a, a + m); sort(b, b + n); ll ans = INF; ll sum = 0; for (ll i = 0; i < m - 1; i++) { if (sum_b <= a[i]) { sum += (m - i) * sum_b; ans = min(ans, sum); break; } sum += a[i]; } ans = min(ans, sum + sum_b); sum = 0; for (ll i = 0; i < n - 1; i++) { if (sum_a <= b[i]) { sum += (n - i) * sum_a; ans = min(ans, sum); } sum += b[i]; } ans = min(ans, sum + sum_a); printf("%lld\n", ans); return 0; }
阅读全文
0 0
- 51Nod-1493-数据关联
- 数据关联
- 51Nod
- 51Nod
- 51nod
- 51Nod
- 51Nod
- 51Nod
- 51Nod
- 51Nod
- 51Nod
- 51Nod
- 51Nod
- 51Nod
- 51Nod
- 51Nod
- 51Nod
- 51Nod
- 7.23 练习题 C: 迷宫问题
- 题目: 编写程序计算两个整数的二进制中有几个二进制不同
- STL之空间配置器
- Java基础[6]-4-内部类
- Move 指令寻址方式
- 51Nod-1493-数据关联
- 蓝桥杯 算法训练 Cowboys
- Some Problems of FATFS
- 高质量c/c++编程学习之四:函数设计
- 7.23 练习题 H: 木棒
- jupyter notebook 换字体换颜色换主题
- 轮播图swiper的使用
- 【查找】二分法查找
- Elasticsearch全文检索系统实现深入详解