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

2026/1/17-Atcoder Beginner Contest 441 T1~4

前言

比赛的时候只写了A~E后面结束后补,比赛链接:Atcoder 441
致力于把题目用通俗的语言翻译出来,让新人也能看懂


A

只要X Y范围在 (P,Q) 和 (P+99,Q+99)范围之间就成立

B

只要分成两个集合A,B
字符串中每一个字符都去匹配一下集合A,B就行了

C

题目人话:

有 N 个杯子,每个杯子里装了 Ai 毫升液体(比如杯子 1 装 10 毫升,杯子 2 装 8 毫升);
这 N 个杯子里,恰好有 K 个装的是清酒(剩下的都是水);
你不知道哪 K 个是清酒,只能盲选一些杯子(至少选 1 个);
要求:不管清酒藏在哪些杯子里,你选的这些杯子里的清酒总量,都至少有 X 毫升;
你的目标:找到满足要求的最少杯子数量;如果怎么选都做不到,就输出 - 1。

写题分析:

一,最坏情况

我们拿取杯子一定要按最坏情况来算,即清酒尽可能多的藏在没选的杯子里,且选中的杯子里的清酒都是容量小的那些,这样喝到的清酒才最少。

二,贪心策略

对于上面发生最坏情况,接下来是我们来选杯子,所以我们选杯子一定要从大往小选,即把杯子按照容量从大到小排序,接下来分三个大白话公式,假设选择m个杯子:

1,没选的杯子=总杯子N-选的数量m;
2,没选的杯子里的清酒=最多藏 min(K, 没选的杯子数) 杯
3,所以 选的杯子里的清酒 = K - 没选的杯子藏的清酒数

选的杯子中最小的那些杯数就是清酒的,累加这个容量和为sum;清酒杯数小于0则sum=0

三,枚举选择的杯数,前缀和优化

我们从小到大枚举杯子数量 m ,通过前缀和快速计算出喝到的清酒容量 sum ,再与 X 毫升判断;因为m从小到大,一找到就break。

代码:

点击查看代码
#include <bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)
#define int long long
#define eb emplace_back
#define all(x) (x).begin(), (x).end()
void solve()
{int n, k, x;cin >> n >> k >> x;vector<int> cup(n);for (int i = 0; i < n; i++){cin >> cup[i];}sort(all(cup), greater<int>());vector<int> pre(n + 1, 0);for (int i = 0; i < n; i++){pre[i + 1] = pre[i] + cup[i];}int ans = -1;for (int m = 1; m <= n; m++){int s = min(k, n - m);int t = k - s;int wor = 0;if (t > 0)//杯子小于0的一律达斯{wor = pre[m] - pre[m - t];}if (wor >= x)//小于x毫升的也达斯{ans = m;break;}}cout << ans << "\n";
}signed main()
{IOS;solve();return 0;
}

D

题目人话

地图上有 N 个地点(顶点),编号 1、2、…、N;
地点之间有 M 条 “单向路”(边),比如从地点 1 到地点 2 的路,走一次要花 20 “路费”(代价 C);
每个地点最多只有 4 条往外走的路(出度≤4);

从地点 1 出发,走恰好 L 步(每走一条路算 1 步,重复走同一条路也算步数);
要求走这 L 步的总路费,必须在 S 到 T 之间(比如 80≤总路费≤100);
找出所有满足条件的 “终点”(走到 L 步时停在哪个地点);
最后把这些终点按从小到大的顺序输出,没有就输出空行。

解题分析

1,观察题目

注意数据范围:1≤L≤10,走10步每一步最多4种选择,一共有410=1048576 ,所以可以用暴力枚举的方法来写。

2,实现分析

1,我们可以用dfs来完成这个题目,遇到满足直接加入dfs写法
2,我们还可以用动态规划的递推思想来完成这个题,设dp[k][u]=从点1出发,恰好走k步,到达地点u的所有路费方案的集合。递推方程为 dp[k-1][u]中沿着u的出边走一步的所有路费方案所构成集合 = dp[k]

代码

点击查看代码
#include <bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)
#define int long long
#define pb push_back
#define eb emplace_back
#define all(x) (x).begin(), (x).end()using ll = long long;
using pii = pair<int, int>;
using pil = pair<int, long long>;
const int INF = 0x3f3f3f3f;
const int MAXN = 2e5 + 10;vector<vector<pii>> g(MAXN);vector<unordered_map<int, unordered_set<ll>>> dp;void solve()
{int n, m, L, S, T;cin >> n >> m >> L >> S >> T;for (int i = 0; i < m; i++){int u, v, c;cin >> u >> v >> c;g[u].eb(v, c);}dp.resize(L + 1);dp[0][1].insert(0);for (int k = 0; k < L; k++){for (auto &[u, sum_set] : dp[k]){for (auto &[v, c] : g[u]){for (ll s : sum_set){ll new_sum = s + c;if (new_sum > T)continue;dp[k + 1][v].insert(new_sum);}}}}vector<int> ans;for (auto &[v, sum_set] : dp[L]){for (ll s : sum_set){if (s >= S && s <= T){ans.pb(v);break;}}}sort(all(ans));for (int i = 0; i < ans.size(); i++){if (i > 0)cout << " ";cout << ans[i];}cout << "\n";
}signed main()
{IOS;int T;T = 1;while (T--){solve();}return 0;
}
http://www.jsqmd.com/news/269743/

相关文章:

  • 群友靶机lara复现 - 场
  • 小程序毕设选题推荐:基于django+微信小程序的健康生活系统个人健康生活平台小程序【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 信件分析(2)
  • 探索人脸识别追踪:从图像采集到电机驱动的奇妙旅程
  • ​​​​​​​推荐10个数据备份与恢复工具?先搞懂这3种备份方式,再选才不踩坑!
  • 手把手教你降AI不伤文:保姆级操作让论文既通过检测又保持专业
  • FPGA 实现多路高精度 AD1246 高速数据采集与接收设计
  • ACPI!gReadyQueue中的plistCtxtQ和ACPI!GetOpRegionScopeWorker函数中的赋值*state->PciObj = state->Parent
  • 2026年8款免费降AI率工具实测推荐,毕业党必看
  • 微分方程一维抛物热传导方程数值解法全解析
  • 《实时渲染》第2章-图形渲染管线-2.2应用程序阶段
  • 深度解析2026论文优化方案:从DeepSeek到学术猹,谁是NLP降重的最优解? - 品牌观察员小捷
  • Comsol 中浆液扩散模型:注浆过程的数字化洞察
  • 2026降AI工具红黑榜:实测8款后我只推荐这3个
  • 打造学生信息管理系统:从构思到实现
  • 2026中专生考大数据与财务管理专业学习指南
  • 知网AIGC检测不通过?2026最新降AI攻略来了
  • 小程序毕设项目推荐-基于django+微信小程序的考研信息查询系统考研院校推荐系统 考研分数线发布查询【附源码+文档,调试定制服务】
  • ArcGIS大师之路500技---062调整面要素到指定面积
  • 知网AIGC检测不通过?学长亲测的避坑指南
  • 交变磁场下含感应材料沥青路面温度:奇妙的物理与技术融合
  • Xilinx FPGA实现延时链
  • 聊聊神奇的连续拉丝机自动控制程序
  • 探索直流有感无刷电机驱动器:功能与特色深度剖析
  • 整车性能仿真:Cruise与Matlab联合的五年经验分享
  • SAP 发布restful if_http_extension~handle_request demo
  • 完整教程:C语言文件操作函数解析
  • 基于C51单片机的智能鱼缸系统探索
  • 小程序毕设项目推荐-基于微信小程序的健康生活助手系统基于django+微信小程序的健康生活系统【附源码+文档,调试定制服务】
  • 昆仑通态直接控制变频器程序及通讯那些事儿