新闻详情

新闻详情

首页 / 资讯中心 / 详情

P17406 【MX-X31-T2】「FAOI-R14」警察抓小偷

发布时间:2026/9/26 10:41:41来源:尧图网络
P17406 【MX-X31-T2】「FAOI-R14」警察抓小偷
进食后入题目没有保证连通思路题目中每个点都有且只有一条连向其它点的单向边那么整张图是一棵基环树。题目的要求就是每个点有且仅有一条出边所以基环树属于基环内向树。因此所有的警察最终全部会移动到环上。由于小偷可以不移动所以叶子结点上都必须布置警察。由于叶子结点上全都布置了警察所以小偷最终必定会被逼到环上。那么是不是在叶子结点和环上全部布置警察就行了可行但不是最优。很容易发现若环上一开始就布置满警察那么经过足够的步数后必定有叶子结点的警察走到环上并且与环上的警察重叠。这样就造成了浪费。所以环上的每个点我们可以记录一下若一开始就在这里布置一个警察xxx有哪些点布置的警察最终会与警察xxx重叠。那么为什么会有多种情况呢有两种情况。第一种如上图选取两个点中的任意一个都可满足条件。第二种题目中对于wiw_iwi​的规定是0≤wi≤1090\le w_i\le10^90≤wi​≤109存在代价为零的情况。因此在选好一个方案后剩下的代价为 0 的点都可以选或不选。最终的实现先找环然后计算每个非环点会与环上的哪个警察重叠我写的是倍增最后计算答案和方案。code#includebits/stdc.h#defineintlonglong//#define lc p1//#define rc p1|1#defineendlputchar(\n)#definepspputchar( )usingnamespacestd;typedefunsignedlonglongull;typedeflonglongll;constintN1e65;constintmod998244353;intread(){intx0,f1;charcgetchar();while(c0||c9){if(c-)f-1;cgetchar();}while(c0c9)x(x3)(x1)c-0,cgetchar();returnx*f;}voidprint(intx){if(x0)putchar(-),x-x;if(x10){putchar(x0);return;}print(x/10);putchar(x%100);}voidputstr(string s){for(inti0;is.size();i)putchar(s[i]);}intlowbit(intx){returnx-x;}intn,m,k;intT;intw[N];vectorinta[N];intvis[N];vectorinthas[N];inton[N];intd[N];intleaf[N];intdis[N];intnex[21][N];voidxfs(intfa,intx){nex[0][x]fa;if(vis[x])return;vis[x]1;for(inti0;ia[x].size();i){intya[x][i];xfs(x,y);}}intto[N];voidzfs(intx){if(vis[x])return;vis[x]1;for(inti0;ia[x].size();i){intya[x][i];zfs(y);dis[x]min(dis[x],dis[y]1);to[x]to[y];}}intdont[N];signedmain(){//ios::sync_with_stdio(0);Tread();while(T--){nread();for(inti1;in;i)a[i].clear(),has[i].clear(),on[i]1,leaf[i]0,dis[i]1e9,vis[i]0,nex[0][i]0,to[i]0,dont[i]0;for(inti1;in;i)d[i]0;for(inti1;in;i)w[i]read();for(inti1;in;i){intxread();d[x];a[i].push_back(x);}//找环queueintq;for(inti1;in;i)if(d[i]0)q.push(i),on[i]0,leaf[i]1;while(!q.empty()){intxq.front();q.pop();for(inti0;ia[x].size();i){intya[x][i];if(--d[y]0){on[y]0;q.push(y);}}}for(inti1;in;i){if(on[i]){dis[i]0;}}intans0;for(inti1;in;i)if(leaf[i])answ[i];//叶子必选for(inti1;in;i){if(on[i]!vis[i]){xfs(i,i);}}for(intlen1;len20;len){for(inti1;in;i){if(!on[i])continue;to[i]i;nex[len][i]nex[len-1][nex[len-1][i]];}}for(inti1;in;i){if(!vis[i]){zfs(i);}}for(inti1;in;i){//存储会与当前警察重合的警察if(on[i]){has[i].push_back(i);}else{intonlto[i];inttimdis[i];for(intlen20;len0;len--){if((1len)tim){tim-(1len);onlnex[len][onl];}}if(leaf[i])dont[onl]1;//由于叶子必选所以对应的环上点可以不选elsehas[onl].push_back(i);}}inttot1;for(inti1;in;i){if(!on[i])continue;if(dont[i]){for(intj0;jhas[i].size();j){//处理 0 的情况intyhas[i][j];if(w[y]0)(tot*2)%mod;}}else{intmul1;for(intj0;jhas[i].size();j){intyhas[i][j];if(w[y]0)(mul*2)%mod;}if(mul!1){(tot*(mul-1)%mod)%mod;//每个 0 都可以选或不选但是不能全不选}else{mul0;intmn1e18;//由于需要最优所以只能在最小值里面选for(intj0;jhas[i].size();j){intyhas[i][j];mnmin(mn,w[y]);}ansmn;for(intj0;jhas[i].size();j){intyhas[i][j];if(mnw[y]){mul;}}(tot*(mul)%mod)%mod;}}}print(ans),psp,print((tot%modmod)%mod),endl;}}
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

MinGW-w64 构建 vlc-qt 全流程:从编译到打包分发实践 2026/9/26 11:31:14

MinGW-w64 构建 vlc-qt 全流程:从编译到打包分发实践

简介:vlc-qt_build_mingw64_install.zip 是在 Windows 64 位环境下使用 MinGW-w64 8.1.0 工具链构建的 Qt 与 VLC 集成编译包,定位为带图形界面的播放器开发基础组件,版本组合为 Qt5.15.2 与 VLC3.0.14。Qt5.15.2 提供稳定的 GUI 框架&#x…

阅读更多 →
Python实战:从椎骨数据到巨齿鲨体长估算的回归建模与可视化 2026/9/26 11:31:14

Python实战:从椎骨数据到巨齿鲨体长估算的回归建模与可视化

刚看到一条关于巨齿鲨体型重建的新闻时,大多数人的第一反应是“这家伙到底能长多大”,而作为经常和数据打交道的开发者,我第一反应却是另一个问题:这个“体长 20 米”的数字到底是怎么算出来的?是直接测量化石吗&#…

阅读更多 →
GCC 11.4.0 源码包编译完整指南:从解压到版本切换 2026/9/26 11:31:14

GCC 11.4.0 源码包编译完整指南:从解压到版本切换

简介:GCC 11.4.0 是 GNU 编译器套件的一个稳定版本,这份源码压缩包面向 Linux/Unix 下的 C/C 开发者、系统管理员以及想深入了解编译器实现和构建流程的进阶学习者,可用于在无预编译包的环境中自行构建整套工具链,也可用于研究编译…

阅读更多 →
从源码编译安装GCC 11.4.0:tar.gz下载、configure配置与排错指南 2026/9/26 11:31:14

从源码编译安装GCC 11.4.0:tar.gz下载、configure配置与排错指南

简介:GCC 11.4.0 源码压缩包(gcc-11.4.0.tar.gz)是 GNU 编译器套件 11.4 分支的完整源代码,面向需要在多操作系统环境下编译、安装及研究 GCC 的开发者,也可用于学习编译原理、构建工具链或定制编译器行为。资源共 200…

阅读更多 →
Deskcomm CRM落地实战:从客户数据统一到自动化流程优化 2026/9/26 11:30:54

Deskcomm CRM落地实战:从客户数据统一到自动化流程优化

一个听起来像“桌面通信客户管理”的CRM名字,其实暗含了一条很关键的产品思路:把企业和客户之间的每一次接触沉淀成可管理、可追踪、可复用的数据资产。我最早接触DeskcommCRM,是在团队同时维护销售线索、售后工单、客服消息三个系统&#xf…

阅读更多 →
从AlexNet到ViT:PyTorch统一训练模板与模型部署实践 2026/9/26 11:30:47

从AlexNet到ViT:PyTorch统一训练模板与模型部署实践

1. 背景与核心概念如果现在要评选过去十年影响最深远的深度学习模型,卷积神经网络(Convolutional Neural Network,CNN)一定是最有竞争力的候选之一。从 2012 年 AlexNet 在 ImageNet 大赛上一举夺冠开始,CNN 逐步成为图…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉