当前位置:网站首页>牛客多校4 A.Task Computing 思维
牛客多校4 A.Task Computing 思维
2022-08-01 22:16:00 【Strezia】
题意
n ( n ≤ 1 e 5 ) n(n\leq 1e5) n(n≤1e5) 个物品,每个物品有 w i , p i w_i, p_i wi,pi ,现从中取出 m ( m ≤ 20 ) m(m\leq 20) m(m≤20) 件,最大化
思路
这种题一般都是通过比较交换相邻两项后对答案的贡献,得出一种排序方法,排序之后计算即可。
假设现在选了 k k k 件物品,这个式子其实就是 S u m = w 1 + w 2 ∗ ( p 1 ) + w 3 ∗ ( p 1 p 2 ) + . . . + w k ∗ ( p 1 p 2 . . . p k − 1 ) Sum = w_1 + w_2*(p_1) + w_3*(p_1p_2)+...+w_k*(p_1p_2...p_{k-1}) Sum=w1+w2∗(p1)+w3∗(p1p2)+...+wk∗(p1p2...pk−1) 。考虑如果再选一件 ( w 0 , p 0 ) (w_0,p_0) (w0,p0) 放在最前面,则 S u m = w 0 + p o ∗ S u m Sum = w_0+p_o*Sum Sum=w0+po∗Sum 。推导如图。之后排序即可。
代码
struct Node {
double w, p;
bool operator < (const Node &x) const {
return w * (1 - x.p) > x.w * (1 - p);
}
}node[maxn];
int n, m;
double f[maxn][25]; //i-n中选j个最大值
void solve() {
cin >> n >> m;
for(int i = 1; i <= n; i++) {
cin >> node[i].w;
}
for(int i = 1; i <= n; i++) {
cin >> node[i].p;
node[i].p /= 10000;
}
sort(node + 1, node + n + 1);
for(int i = 1; i <= n; i++) {
for(int j = 0; j <= m; j++) f[i][j] = -INF;
}
f[n + 1][0] = 0;
for(int i = n; i >= 1; i--) {
for(int j = 0; j <= m; j++) {
f[i][j] = f[i+1][j];
if(j)
f[i][j] = max(f[i+1][j], f[i+1][j-1] * node[i].p + node[i].w);
}
}
cout << f[1][m] << endl;
}
边栏推荐
猜你喜欢
JS prototype hasOwnProperty in Add method Prototype end point Inherit Override parent class method
03. GO language variable definition, function
SAP ABAP OData 服务如何支持删除(Delete)操作试读版
高等代数_证明_矩阵的任意特征值的代数重数大于等于其几何重数
Go 微服务开发框架DMicro的设计思路
Prufer sequence
Kubernetes Scheduler全解析
小程序毕设作品之微信体育馆预约小程序毕业设计成品(2)小程序功能
如何防范 DAO 中的治理攻击?
Use Jenkins for continuous integration, this knowledge point must be mastered
随机推荐
自建 Prometheus 采集腾讯云容器服务监控数据最佳实践
leetcode 204. Count Primes 计数质数 (Easy)
Small program -- subcontracting
kubernetes CoreDNS全解析
小程序中的多表联合查询
9. SAP ABAP OData 服务如何支持删除(Delete)操作
统计单词数
Postman batch test interface detailed tutorial
Implementation principle of VGUgarbage collector (garbage collector)
SQL29 Calculate the average next day retention rate of users
2022 版 MySQL 巅峰教程,收藏好,慢慢看
小程序容器+自定义插件,可实现混合App快速开发
毕业十年,财富自由:那些比拼命努力更重要的事,从来没人会教你
漫长的投资生涯
Flutter基础学习(一)Dart语言入门
Wechat Gymnasium Reservation Mini Program Graduation Design Finished Work Mini Program Graduation Design Finished Product (2) Mini Program Function
Getting Started Database Days4
SOM Network 1: Principles Explained
一种灵活的智能合约协作方式
Postman 批量测试接口详细教程