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

题解:P11448 「ALFR Round 3」D 核裂变

我们可以发现,只要一个原子在某一秒被触发,那么后面都会一直被触发。因为我们只在 \(m\) 个原子上投放中子,所以可以先把不可能被触发的原子从中删去,并删去它与其它原子相连的边。因为一个原子只要被触发,不管被多少中子激发,都只会发送恒定的一个中子。所以在一定时间后每秒释放的能量是恒定的。所以我们可以用一个数组记录这个原子每秒释放的能量,在它被访问到的时候,也就是每秒释放的能量变化的时候统计这个原子从上一次统计到现在变化之前,释放的总能量。在搜索完后,对每个原子加上现在到未来第 \(k\) 秒所释放的能量。若在第 \(k\) 秒时,还没有到达恒定值,即还没有搜索完,就直接停止搜索,然后输出答案即可。

接下来是代码环节:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int MOD = 998244353;
int n, k, m, a[500005], w[500005], num[500005], cnt, ans[500005], ad[500005], la[500005];
vector<pair<int, int>> v[500005];
bool mark[500005], flag[500005];
signed main() {ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin >> n >> k >> m;for (int i = 1; i <= m; i ++) {cin >> w[i];mark[w[i]] = true;}for (int i = 1; i <= n; i ++) {cin >> a[i];for (int j = 1; j <= a[i]; j ++) {int x;cin >> x;v[i].push_back({x, ++cnt});num[x] ++;}}queue<int> q;for (int i = 1; i <= n; i ++) {if (num[i] == 0 && !mark[i]) {q.push(i);}}while (!q.empty()) {int u = q.front();q.pop();for (auto i : v[u]) {num[i.first] --;if (num[i.first] == 0 && !mark[i.first]) {q.push(i.first);}flag[i.second] = true;}}queue<pair<int, int>> qq;for (int i = 1; i <= m; i ++) {qq.push({w[i], 1});}while (!qq.empty()) {int u = qq.front().first, tim = qq.front().second;if (tim > k) {break;}if (ad[u] == 0) {ad[u] = a[u];} else {ans[u] += (tim - la[u]) * ad[u] % MOD;}ad[u] ++;la[u] = tim;qq.pop();for (auto i : v[u]) {if (!flag[i.second]) {flag[i.second] = true;qq.push({i.first, tim + 1});}}}for (int i = 1; i <= n; i ++) {ans[i] += (k - la[i] + 1) % MOD * ad[i] % MOD;cout << ans[i] << " ";}return 0;
}
http://www.jsqmd.com/news/744295/

相关文章:

  • 如何通过免费风扇控制软件实现Windows系统散热与静音的完美平衡
  • Windows脚本转换为Linux脚本
  • 题解:P11640 Graph
  • 新手也能搞定的红日靶场vulnstack1实战:从外网打点到内网横向移动(附完整命令)
  • Python点云处理总报错?3步定位坐标系错位、法向量翻转、体素滤波溢出(附可复用调试Checklist)
  • BrowserOS:基于Chromium内核的开源AI浏览器操作系统深度解析
  • 如何5分钟突破1Fichier下载限制:终极下载加速工具完全指南
  • DDrawCompat:让经典DirectX游戏在现代Windows系统上流畅运行的终极解决方案
  • 题解:CF1635E Cars
  • 2026年收藏10款主流论文降AI工具(含免费降AI率版) - 降AI实验室
  • 从零构建记忆增强系统:基于间隔重复与知识图谱的实践
  • 如何在 Taotoken 平台查看与管理您的 token 使用量与账单明细
  • PTA天梯赛L1-064:手把手教你用C++写一个‘估值一亿’的AI对话程序(附完整代码)
  • LinkSwift网盘直链下载助手:告别下载限速的八大网盘全能解决方案
  • 5步搞定音乐元数据混乱:163MusicLyrics智能整理全攻略
  • C++ SFML实现像素小猫光标追踪:从精灵动画到游戏循环实践
  • 【工业级Python轻量化落地白皮书】:覆盖PyTorch/TensorFlow/Keras三大框架,含实测吞吐量、精度衰减率与内存占用对比表(2024Q2最新基准)
  • 观察大模型API在高峰时段的响应成功率变化
  • 六西格玛证书可以挂靠吗? - 众智商学院官方
  • 题解:P11642 【MX-X8-T1】「TAOI-3」幸运草
  • ClawLock插件系统开发指南:从架构解析到实战应用
  • Verilog调试实战:用force和release快速定位FPGA仿真中的‘幽灵信号’
  • AppleRa1n终极指南:3分钟学会iOS设备激活锁绕过
  • 接口自测-1777696985
  • 告别局域网限制:手把手教你用KKPrinter源码搭建跨网段远程打印服务(Win10/11实测)
  • 使用Taotoken调用Codex模型的实际延迟与稳定性体验分享
  • 本地部署内部即时聊天IM软件选型:企业容易忽略的5个判断误区 - 小天互连即时通讯
  • 开源威胁情报自动化响应框架:从原理到实战部署指南
  • YOLOv11 改进 - 即插即用 中小目标检测飙升:Hyper 超图赋能YOLO:轻量级设计实现跨层级信息交互,增强复杂场景感知
  • Go语言微信机器人开发实战:从事件驱动架构到智能对话集成