Luogu P2460 [SDOI2007] 科比的比赛 题解
题意:给定
考虑状压 DP,设
转移
边界
答案
其中
最大得分容易与乘积同时转移。
时间复杂度
考虑贪心,将矩阵每一行按
所以排序后将每一行可能被选的位置提出来做一次 DP,至多有
#include <algorithm> #include <iomanip> #include <iostream> using namespace std; typedef long double ld; const ld eps = 1e-10; int n, m; int w[100005]; int s[100005]; ld a[12][100005]; int b[12][100005]; int id[100005], len; ld c[12][100005]; ld dp[2][1050]; int f[2][1050]; static inline void solve() { cin >> n >> m; int lim = 1 << n; for (int i = 1; i <= m; ++i) cin >> w[i]; for (int i = 1; i <= n; ++i) { for (int j = 1; j <= m; ++j) { cin >> a[i][j]; b[i][j] = j; } sort(b[i] + 1, b[i] + m + 1, [i](const int x, const int y) { return (abs(a[i][x] - a[i][y]) < eps) ? (w[x] > w[y]) : (a[i][x] - a[i][y] > eps); }); for (int j = 1; j <= n && j <= m; ++j) id[++len] = b[i][j]; } sort(id + 1, id + len + 1); len = (int)(unique(id + 1, id + len + 1) - id - 1); for (int i = 1; i <= len; ++i) { for (int j = 1; j <= n; ++j) c[j][i] = a[j][id[i]]; s[i] = w[id[i]]; } dp[0][0] = 1; for (int i = 1; i <= len; ++i) { for (int j = 0; j < lim; ++j) { dp[i & 1][j] = dp[(i + 1) & 1][j]; f[i & 1][j] = f[(i + 1) & 1][j]; for (int k = 1; k <= n; ++k) { if (j & (1 << (k - 1))) { ld val = dp[(i + 1) & 1][j ^ (1 << (k - 1))] * c[k][i]; if (val < eps) continue; if (val - dp[i & 1][j] > eps) { dp[i & 1][j] = val; f[i & 1][j] = f[(i + 1) & 1][j ^ (1 << (k - 1))] + s[i]; } else if (abs(val - dp[i & 1][j]) < eps) f[i & 1][j] = max(f[i & 1][j], f[(i + 1) & 1][j ^ (1 << (k - 1))] + s[i]); } } } } cout << fixed << setprecision(12) << dp[len & 1][lim - 1] << endl; cout << f[len & 1][lim - 1] << endl; } signed main() { #ifndef ONLINE_JUDGE freopen("P2460.in", "r", stdin); #endif ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); solve(); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现