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

[入门赛 #49] GPA 计算?题解

题目传送门

思路

很明显,每次暴力往上跳最坏情况下是O ( n 2 ) O(n^2)O(n2)的,显然不可取。

那么我们怎么快速统计结点i ii到根节点1 11的路径之间的素数点权最大值呢?我们可以开一个最大值数组ans来存储结果,然后从根节点开始递归,遍历当前节点的儿子,儿子的ans值先继承当前节点的ans值,如果当前节点的点权是素数的话,那么儿子节点的ans值还要与当前点权进行比较取最大值。这样我们就只用一遍 dfs 就完成了,复杂度是O ( n ) O(n)O(n)

这样子就完了吗?还没有。v i v_ivi最大可以达到10 7 10^7107,每次O ( n ) O(\sqrt{n})O(n)判断素数明显会炸,所以我们要预先跑一遍欧拉筛然后再判断就可以避开 TLE 了。

好了废话不多说上代码。

AC 代码

#include<bits/stdc++.h>usingnamespacestd;#definefile_in(s)freopen(s".in","r",stdin);#definefile_out(s)freopen(s".out","w",stdout);#definefile(s)file_in(s)file_out(s)usingll=longlong;usingull=unsignedlonglong;template<typenameT,typenameCompare=less<T>>usingheap=priority_queue<T,vector<T>,Compare>;constintINF=0x3f3f3f3f;constll INFLL=0x3f3f3f3f3f3f3f3fLL;constintMOD=1e9+7;constdoubleEPS=1e-8;constintN=5e5+5,M=1e7+5;intn,cnt=0,a[N],ans[N],pri[M];bitset<M>p;vector<int>vec[N];voideuler_sieve(){// 欧拉筛p.reset();p[0]=p[1]=true;for(inti=2;i<=M-5;i++){if(!p[i])pri[++cnt]=i;for(intj=1;j<=cnt&&i*pri[j]<=M-5;j++){p[i*pri[j]]=true;if(i%pri[j]==0)break;}}}voiddfs(intu,intf){for(intv:vec[u]){// 遍历儿子if(v==f)continue;// 如果是父亲就跳过ans[v]=ans[u];// 继承 ans[u]if(!p[a[u]])ans[v]=max(ans[v],a[u]);// 如果 a[u] 是素数,就与 ans[v] 比较取最大值dfs(v,u);// 递归儿子}}signedmain(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);euler_sieve();// 千万不要忘记漏写这一行cin>>n;for(inti=1;i<=n;i++)cin>>a[i];for(inti=1,u,v;i<n;i++){cin>>u>>v;vec[u].push_back(v);vec[v].push_back(u);}dfs(1,0);// 开始递归for(inti=1;i<=n;i++)cout<<(!ans[i]?-1:ans[i])<<" ";// 输出结果return0;}

完结撒花 ✿✿ヽ(°▽°)ノ✿

http://www.jsqmd.com/news/1177528/

相关文章:

  • 2026最新南通本地漏水检测公司本地精选权威推荐:正规防水补漏公司优选口碑TOP5:卫生间/厨房/阳台/飘窗/地下室渗漏水维修师傅上门 - 即刻修防水
  • OpenCV图像二值化在矩形识别中的应用与泰山派实战
  • AI换脸革命:无需训练的深度伪造神器roop-unleashed深度体验指南
  • 强力辅助Seraphine:英雄联盟智能决策助手,让每一局都赢在起跑线
  • 2026年杭州自建房花园设计施工公司怎么选? - 品牌排行榜
  • 2026年当下,如何联系优质中式快餐加盟平台?深度剖析曼玲粥 - 品牌鉴赏官2026
  • AI驱动的C++跨平台迁移:从语义理解到自动化代码重构
  • 还在为论文开题头秃?这5个AI论文写作工具让你效率翻倍!
  • Keras模型Flask部署实战:轻量级API服务化指南
  • 亨得利官方名表服务中心|服务热线及完整地址权威信息声明(2026年7月最新) - 亨得利官方博客
  • 数据开发 vs 数据分析:从3个真实项目看技能栈与协作边界
  • 5分钟在Mac上运行Windows应用:Whisky完全指南 [特殊字符]
  • 洛雪音乐播放失效?3步快速恢复六音音源完整教程
  • 3步解决QQ音乐加密格式转换难题:QMCDecode让音乐重获自由
  • 亲身到店探访杭州亨得利官方名表服务中心|维修地址及售后热线(2026年7月更新) - 亨得利官方
  • Reloaded-II:让游戏焕然一新的模组管理神器
  • 成为更好的自己
  • 9款AI论文工具:一键生成毕业论文、期刊论文、开题报告与文献综述
  • Windows服务器安全守护神:Wail2Ban自动封锁工具终极指南
  • 天融信防火墙策略配置对比:区域隔离、NAT与应用过滤的5个关键差异点
  • 亲身到店探访杭州亨得利官方名表服务中心|详细地址与售后电话(2026年7月更新) - 亨得利官方
  • 2026年7月最新温州美度官方售后客户服务电话及线下网点地址 - 亨得利钟表维修中心
  • 高压与低压系统互联的光耦隔离技术解析
  • Sunshine游戏串流:5步打造你的专属家庭云游戏服务器
  • 2026年7月最新武汉泰格豪雅官方售后客服服务电话及地址网点大全 - 亨得利官方服务中心
  • 【PostgreSQL-16】搭建主从复制实现读写分离与故障转移
  • 柬埔寨商标注册指南:找到最值得信赖的服务机构
  • TB67H480FNG与PIC18LF45K40电机控制方案详解
  • 从蜗牛到闪电:我的网盘下载革命之旅
  • SAM 2 图像分割实战:自动 Mask、框提示和点提示完整演示