当前位置: 首页 > news >正文

2025-11-29

CF

Problem - 1759E - Codeforces(dp好题)

这个问题是找最优方案下,吸收的最大人数
所以,首先排序,从小到大
然后对于每一个点(0~n-1),都计算其不使用或使用药水时的值
贪心思想,如果一旦满足大于a[i],就马上更新dp[x][y]
所以,dp也是从x=2,y=1开始枚举
还有就是注意一下dp数组的大小,还有dp要开LL

#include <bits/stdc++.h>
using namespace std;
#define LL long long
const LL mod = 998244353;
const int N=2e5+10;
LL dp[3][2];//注意范围
int a[N];void solve()
{memset(dp, 0, sizeof dp);int n, h;cin >> n >> h;for (int i = 0; i < n;i++){cin >> a[i];}sort(a, a + n);dp[2][1] = h;int ans = 0;for (int i = 0; i < n;i++){for (int x = 2; x >= 0; x--){for (int y = 1; y >= 0; y--){if (x){dp[x - 1][y] = max(dp[x - 1][y], dp[x][y] * 2);}if (y){dp[x][y - 1] = max(dp[x][y - 1], dp[x][y] * 3);}if (dp[x][y] > a[i]){dp[x][y] += a[i] / 2;ans = i + 1;//直接更新}}}}cout << ans << endl;
}int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T;cin >> T;while (T--){solve();}
}

Problem - 1476C - Codeforces(dp)

读题很重要
三个数组c[i],a[i],b[i]
c[i]是i链的顶点
a[i]是i链的第一个顶点连的i-1链的第a[i]个顶点,要看作i-1链的点
b[i] 是i链最后一个顶点连的i-1链的第b[i]个顶点,也要看作i-1链的点

#include <bits/stdc++.h>
using namespace std;
#define LL long long
const LL mod = 998244353;
const int N=1e5+10;
LL f[N];
LL a[N], b[N],c[N];void solve()
{int n;cin >> n;for (int i = 0; i < n;i++){cin >> c[i];}for (int i = 0; i < n; i++){cin >> a[i];}for (int i = 0; i < n; i++){cin >> b[i];}f[0] = abs(b[1]-a[1]);LL ans = 0;for (int i = 1; i < n;i++){if(a[i]==b[i])f[i] = c[i] - 1 + 2;else{f[i] = max(f[i - 1] - abs(b[i] - a[i]) + 2 + c[i] - 1, abs(b[i] - a[i]) + 2 + c[i] - 1);}ans = max(ans, f[i]);}cout << ans << endl;
}int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T;cin >> T;while (T--){solve();}
}

Problem - 1105C - Codeforces(dp好题)(1500)

这里要注意求cnt[1]cnt[2],即除以3n后余数i为1和2的数量
\(cnt[i]=(r+n-i)/n-(l-1+n-i)/n\)
比如求r=5时余数为2的数量,易知是5 2,数量为2
如果5-2=3,会使数量少算5本身,所以要加上n

#include <bits/stdc++.h>
using namespace std;
#define LL long long
const LL mod = 1e9+7;
const int N=2e5+10;
LL cnt[3], dp[N][3];int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n, l, r;cin >> n >> l >> r;cnt[0] = r / 3 - (l - 1) / 3;cnt[1] = (r + 2) / 3 - (l + 1) / 3;cnt[2] = (r + 1) / 3 - l / 3;dp[1][0] = cnt[0], dp[1][1] = cnt[1], dp[1][2] = cnt[2];for (int i = 2; i <= n; i++){dp[i][0] = (dp[i - 1][0] * cnt[0] + dp[i - 1][1] * cnt[2] + dp[i - 1][2] * cnt[1]) % mod;dp[i][1] = (dp[i - 1][0] * cnt[1] + dp[i - 1][1] * cnt[0] + dp[i - 1][2] * cnt[2]) % mod;dp[i][2] = (dp[i - 1][0] * cnt[2] + dp[i - 1][1] * cnt[1] + dp[i - 1][2] * cnt[0]) % mod;}cout << dp[n][0] << endl;
}
http://www.zskr.cn/news/65498.html

相关文章:

  • 【论术】: 响应式布局——flex:1与calc的区别
  • Day6-20251129
  • #20232408 2025-2026-1 《网络与系统攻防技术》实验七实验报告 - 20232408
  • 百科代做公司推荐,2025年12月权威发布百度百科/快懂百科代做公司信息
  • 2025 年衢州摄影培训人像摄影培训哪家好——路人贾摄影讲堂(衢州分公司)排名第一
  • 2025 年台州摄影培训人像摄影培训推荐榜:路人贾摄影讲堂(台州分公司)实战教学、行业十杰创办
  • 敏捷冲刺随笔-3
  • 从组合爆炸到优雅分派:复杂策略系统的工程化构建
  • 实用指南:RAM和ROM的定义和区别总结!!!
  • 2025 年湖州摄影培训人像摄影培训哪家好——路人贾摄影讲堂(湖州分公司)排名第一
  • 2025 年宁波摄影培训人像摄影培训哪家好——路人贾摄影讲堂(宁波分公司)排名第一
  • Mac对于网络空间安全专业适用性踩坑点
  • 完整教程:[RabbitMQ] 最新版本深度解析:4.0+ 新特性、性能飞跃与生产实践(2025 年更新)
  • [NOIP2025] 糖果店 / candy 题解
  • Rikkahub+硅基流动API-key实现移动端Android-AI女友项目
  • 某中心与高校拓展机器人技术学术合作
  • 【图像卷积基础】卷积过程卷积实现通道扩充与压缩池化Pooling原理和可视化 - 详解
  • 2024csp-s游记
  • 如何选择好的 GEO 服务商?2025年12月优质 GEO 服务商推荐
  • db link
  • 2025年六角管片螺栓,螺纹管片螺栓,热镀锌管片螺栓厂家推荐:综合实力与工程适配性测评
  • 2025年高铁T型螺栓,铝型材T型螺栓,管廊T型螺栓厂家推荐:安装便捷性与兼容性测评
  • 2025年欧标T型螺栓,地铁专用T型螺栓,高铁T型螺栓品牌榜:资质认证与工程适配解析
  • 113.Java深入学习之JVM一
  • 2025年工业脚轮,设备脚轮,轻型脚轮厂家推荐:聚焦安装适配性,全场景选型攻略
  • 2025年静音脚轮,设备脚轮,周转车脚轮厂家推荐:核心性能解析,适配场景全攻略
  • 复杂业务逻辑的数据筛选:多维表格条件嵌套能力的技术解析
  • 2025年减震脚轮,设备脚轮,工业脚轮厂家推荐榜:聚焦承重静音,品质红榜盘点
  • 2025 年加工厂家最新推荐,车铣复合、精密细长轴、进口津上机、精密零部件、机械零件非标定制加工,技术实力与市场口碑深度解析
  • 2025年南京高职单招集训,单招培训,泰达单招集训机构推荐:职教权威盘点与升学保障红榜