JZOJ 4299. 【NOIP2015模拟11.2晚】舳舻牌
题目
思路
倒序
设 表示 先手,当前 报出的值为 , 报出的值为 , 取诱惑值大于等于 的, 能拿到的最大收益
表示 先手,当前 报出的值为 , 报出的值为 , 取诱惑值大于等于 的, 能拿到的最大收益(和 同理)
那么我们考虑转移
和 的意思差不多,就是改成全取的总收益
转移同理
但其中有个很重要的细节:每次转移必须选数
所以我们要记录 表示和 差不多,但它存的是诱惑值范围内数的个数
当本次转移的 等于上次转移用的 时,直接继承
一看,what out?! 的!!
不可接受
但我们发现转移时总有一维是固定
我们可以开个数组算完 后更新最优值
这样就可以做到 转移
注意先离散化,求 时用二维前缀和
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long LL; const int N = 1005; int n; LL f[N][N] , g[N][N] , a[N] , b[N] , c[N] , val[N] , sum[N][N] , cnt[N][N]; int main() { freopen("poker.in" , "r" , stdin); freopen("poker.out" , "w" , stdout); scanf("%d" , &n); for(register int i = 1; i <= n; i++) scanf("%lld" , &val[i]); for(register int i = 1; i <= n; i++) scanf("%lld%lld" , &a[i] , &b[i]); for(register int i = 1; i <= n; i++) c[i] = a[i]; sort(c + 1 , c + n + 1); int m = unique(c + 1 , c + n + 1) - c - 1; for(register int i = 1; i <= n; i++) a[i] = lower_bound(c + 1 , c + m + 1 , a[i]) - c; for(register int i = 1; i <= n; i++) c[i] = b[i]; sort(c + 1 , c + n + 1); m = unique(c + 1 , c + n + 1) - c - 1; for(register int i = 1; i <= n; i++) b[i] = lower_bound(c + 1 , c + m + 1 , b[i]) - c; for(register int i = 1; i <= n; i++) ++cnt[a[i]][b[i]] , sum[a[i]][b[i]] += val[i]; for(register int i = n; i; i--) for(register int j = n; j; j--) { sum[i][j] += sum[i + 1][j] + sum[i][j + 1] - sum[i + 1][j + 1]; cnt[i][j] += cnt[i + 1][j] + cnt[i][j + 1] - cnt[i + 1][j + 1]; } for(register int i = n; i; i--) for(register int j = n; j; j--) { f[i][j] = (cnt[i][j] == cnt[i + 1][j] ? f[i + 1][j] : sum[i][j] - a[j]); g[i][j] = (cnt[i][j] == cnt[i][j + 1] ? g[i][j + 1] : sum[i][j] - b[i]); a[j] = min(a[j] , g[i][j]) , b[i] = min(b[i] , f[i][j]); } printf("%lld" , f[1][1]); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具