WHU 1537 Stones I
2024-09-07 23:39:21
题目见: http://acm.whu.edu.cn/land/problem/detail?problem_id=1537
这个题相当无语,学长给的解法是:枚举取的个数k,然后对每个k贪心,取其中的最大值。
我想思路应该是这样:结果与选取的顺序无关,只和最终选取的数量有关。
所以,就枚举最终选取的数量k,在这种情况下,每个物品的价值就是固定的。
所以,在这种情况下,最优策略就一定是选取价值最大的前k个。
代码:
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <functional> using namespace std; const int MAXN = ; int a[MAXN], b[MAXN], c[MAXN];
int n; int main() {
#ifdef Phantom01
freopen("WHU1537.txt", "r", stdin);
#endif // Phantom01 while (scanf("%d", &n)!=EOF) {
if (==n) break; for (int i = ; i < n; i++)
scanf("%d%d", &a[i], &b[i]);
int ans = ;
for (int k = ; k <= n; k++) {
for (int i = ; i < n; i++)
c[i] = a[i] - k*b[i];
sort(c, c+n, greater<int>());
int tmp = ;
for (int i = ; i < k; i++)
tmp += c[i];
ans = max(ans, tmp);
}
printf("%d\n", ans);
} return ;
}
最新文章
- 如何使用RobotFramework编写好的测试用例
- nodejs 安装
- ORACLE 10g 数据库体系结构图
- 网站哀悼变灰代码集合 兼容所有浏览器的CSS变暗代码
- ssm整合
- DragRigidbody2D
- vs2010工程迁移问题,x64到Win32
- POJ 1961 2406 (KMP,最小循环节,循环周期)
- 在Java中直接调用js代码
- MYSQL 5.7 主从复制 -----GTID说明与限制 原创
- css考核点整理(一)-浮动的理解和清除浮动的几种方式
- Thread的run()与start()的区别
- Mule ESB-Content-Based Routing Tutorial(2)
- JAXP进行DOM和SAX解析
- KNN算法的实现
- JavaEE进阶集锦(持续更新中)
- Android录制音频的三种方式
- springboot下多线程开发注意事项
- Codeforces 948D Perfect Security(字典树)
- [ IOS ] 视图控制对象ViewController的生命周期