CF2023D Many Games 题解
赛时被创四了。
思路#
考虑我们什么时候合并会比原来优。
例如,我们现在要合并
那么有:
转换一下:
由于
所以:
消掉系数。
这个不等式可以推出
这告诉我们当
那么去掉
这种情况下,我们可以做一个背包。
复杂度是
接着,我们可以发现,有很多二元组是没有用的。
具体来说,对于
而这一堆前缀的总和也没有很多,大约是
因此我们可以在加入一个二元组的时候判断一下是否对背包产生了贡献,如果没有,那么之后相同的
Code#
/*
! 前途似海,来日方长。
! Created: 2024/10/20 18:08:39
*/
#include <bits/stdc++.h>
using namespace std;
#define x first
#define y second
// #define int long long
#define mp(x, y) make_pair(x, y)
#define eb(...) emplace_back(__VA_ARGS__)
#define fro(i, x, y) for (int i = (x); i <= (y); i++)
#define pre(i, x, y) for (int i = (x); i >= (y); i--)
inline void JYFILE19();
using i64 = long long;
using pii = pair<int, int>;
bool ST;
const int N = 1e6 + 10;
const int mod = 998244353;
int n, m, vs[N];
double sm;
double ns;
double f[N];
struct Node {
int p, w;
inline bool operator<(const Node&tmp) const { return w > tmp.w; }
} d[N];
signed main() {
JYFILE19();
cin >> n;
fro(i, 1, n) cin >> d[i].p >> d[i].w;
sort(d + 1, d + n + 1);
f[0] = 1;
fro(i, 1, n) {
if (d[i].p == 100) sm += d[i].w;
else {
if (vs[d[i].p]) continue;
int h = d[i].p * d[i].w / (100 - d[i].p);
double r = d[i].p / 100.;
bool flag = 0;
pre(j, h, 0)
if (f[j + d[i].w] < f[j] * r)
f[j + d[i].w] = f[j] * r, flag = 1;
if (flag == 0) {
vs[d[i].p] = 1;
}
}
}
fro(i, 0, 400000) ns = max(ns, (i + sm) * f[i]);
printf("%.9lf\n", ns);
return 0;
}
bool ED;
inline void JYFILE19() {
// freopen(".in", "r", stdin);
// freopen(".out", "w", stdout);
srand(random_device{}());
ios::sync_with_stdio(0), cin.tie(0);
double MIB = fabs((&ED - &ST) / 1048576.), LIM = 32;
cerr << "MEMORY: " << MIB << endl, assert(MIB <= LIM);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)