你可以把它喂给AI让AI猜猜我在干什么

news/2025/10/24 21:15:38/文章来源:https://www.cnblogs.com/lymsHz17/p/19164237
// code by 樓影沫瞬_Hz17
#include <bits/stdc++.h>
using namespace std;#define getc() getchar_unlocked()
#define putc(a) putchar_unlocked(a)
#define en_ putc('\n')
#define e_ putc(' ')// #define int long long
using pii = pair<int, int>;template<class T> inline T in() { T n = 0; char p = getc();while(p < '-') p = getc();bool f = p == '-' ? p = getc() : 0;do n = n * 10 + (p ^ 48), p = getc();while(isdigit(p));return f ? -n : n;
}
template<class T> inline T in(T &a) { return a = in<T>(); }
template<class T, class ... Args> inline void in(T &t, Args&... args) { in(t), in(args...); }template<class T> inline void out(T n) {if(n < 0) putc('-'), n = -n;if(n > 9) out(n / 10);putc(n % 10 + '0');
}template<class T1, class T2> T1 max(T1 a, T2 b) { return a > b ? a : a = b;}
template<class T1, class T2> T1 min(T1 a, T2 b) { return a < b ? a : a = b;}constexpr int N = 2e5 + 10, B = 450, T = N / B + 100;int n, Q;#define lb(x) (x & -x)int sum[100][N];inline int qed(int l, int r, int t) { return sum[t][r] - sum[t][l - 1]; }int fa[N], dfn[N], sz[N], wc[N], top[N], dep[N];vector<int> e[N];inline void dfs(int u, int f) {fa[u] = f, dep[u] = dep[f] + 1, sz[u] = 1;for(int v : e[u])if(v != f) {dfs(v, u);sz[u] += sz[v];wc[u] = sz[wc[u]] > sz[v] ? wc[u] : v;}
}bool vis[N];
int pri[5000], cnp;inline void line() {for(int i = 2; i <= 10000; i ++) {if(!vis[i]) pri[++ cnp] = i;for(int j = 1; pri[j] * i <= 10000 and j <= cnp; j ++) {vis[i * pri[j]] = 1;if(i % pri[j] == 0) break;}} 
}inline pair<vector<int>, vector<int> > divide(int x) {vector<int> res1, res2;for(int i = 1; i <= cnp; i ++) {if(x == 1) break;if(x % pri[i] == 0) {while(x % pri[i] == 0) {if(i <= 90) res1.push_back(i);else res2.push_back(pri[i]);x /= pri[i];}}}if(x != 1) res2.push_back(x);return {res1, res2};
}int rr[N * 2], st[N], ed[N], cntn, cnto;inline void dfs2(int u, int tp) {top[u] = tp, dfn[u] = ++ cntn; st[u] = ++ cnto, rr[cnto] = u;if(wc[u]) dfs2(wc[u], tp);for(int v : e[u]) if(v != fa[u] and v != wc[u]) dfs2(v, v);ed[u] = ++ cnto, rr[cnto] = u;
}inline int lca(int u, int v) {while(top[u] != top[v]) {if(dep[top[u]] < dep[top[v]]) swap(u, v);u = fa[top[u]];}return dep[u] > dep[v] ? v : u;
}inline int query(int u, int v) {int res[100] = {};while(top[u] != top[v]) {if(dep[top[u]] < dep[top[v]]) swap(u, v);for(int i = 1; i <= 90; i ++) res[i] += qed(dfn[top[u]], dfn[u], i);u = fa[top[u]];}if(dfn[u] < dfn[v]) swap(u, v);int RES = 0;for(int i = 1; i <= 90; i ++) res[i] += qed(dfn[v], dfn[u], i), RES = max(res[i], RES);return RES;
}struct QUE {int l, r, lca, id;
} q[N];
int cnt[N], cntcnt[N], pos[N];
int tim[N];vector<int> num[N];int a[N], ans[N];
int flg[N], mx;inline void add(int i) {for(int v : num[i]) {cntcnt[cnt[v]] --;cnt[v] ++;cntcnt[cnt[v]] ++;mx = max(cnt[v], mx);}
}inline void red(int i) {for(int v : num[i]) {cntcnt[cnt[v]] --;if(cntcnt[cnt[v]] == 0 and mx == cnt[v]) mx --;cnt[v] --;cntcnt[cnt[v]] ++;}
}signed main() {#ifndef ONLINE_JUDGEfreopen("in.ru", "r", stdin);freopen("out.ru", "w", stdout);#endifin(n, Q);line();for(int i = 1; i <= n; i ++) in(a[i]);for(int i = 1, u, v; i < n; i ++) {in(u, v);e[u].push_back(v);e[v].push_back(u);}dfs(1, 1);dfs2(1, 1);vector<int> tmp;for(int i = 1; i <= n; i ++) {auto v = divide(a[i]);tmp = v.first, num[i] = v.second;for(int v : tmp) {sum[v][dfn[i]] ++;}}for(int i = 1; i <= 90; i ++) {for(int j = 1; j <= n; j ++) sum[i][j] += sum[i][j - 1];}vector<int> Hash;for(int i = 1; i <= n; i ++) for(int v : num[i]) Hash.push_back(v);sort(Hash.begin(), Hash.end());Hash.erase(unique(Hash.begin(), Hash.end()), Hash.end());for(int i = 1; i <= n; i ++) for(int&v : num[i]) v = lower_bound(Hash.begin(), Hash.end(), v) - Hash.begin() + 1;for(int i = 1, u, v; i <= Q; i ++) {in(u, v);ans[i] = query(u, v);if(st[u] > st[v]) swap(u, v);int l = lca(u, v);if(l == u) q[i] = {st[u], st[v], 0, i};else q[i] = {ed[u], st[v], l, i};}// partI may okfor(int i = 1; i <= n; i ++) pos[i] = (i - 1) / B + 1;sort(q + 1, q + 1 + Q, [](const QUE&a, const QUE&b) {return pos[a.l] == pos[b.l] ? pos[a.l] & 1 ? a.r < b.r : a.r > b.r : pos[a.l] < pos[b.l];});	for(int l = 1, r = 0, i = 1; i <= Q; i ++) {while(l < q[i].l) {flg[rr[l]] --;if(flg[rr[l]] == 1) add(rr[l]);if(flg[rr[l]] == 0) red(rr[l]);l ++;}while(l > q[i].l) {l --;flg[rr[l]] ++;if(flg[rr[l]] == 1) add(rr[l]);if(flg[rr[l]] == 2) red(rr[l]);}while(r < q[i].r) {r ++;flg[rr[r]] ++;if(flg[rr[r]] == 1) add(rr[r]);if(flg[rr[r]] == 2) red(rr[r]);}while(r > q[i].r) {flg[rr[r]] --;if(flg[rr[r]] == 1) add(rr[r]);if(flg[rr[r]] == 0) red(rr[r]);r --;}if(q[i].lca) add(q[i].lca);ans[q[i].id] = max(ans[q[i].id], mx);if(q[i].lca) red(q[i].lca);}// partII may OKfor(int i = 1; i <= Q; i ++) {out(ans[i]); en_;}
}   
// 星間~ 干渉~ 融解~ 輪迴~ 邂逅~ 再生~ ララバイ~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/945670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nginx反向代理和负载均衡 - 实践

nginx反向代理和负载均衡 - 实践2025-10-24 21:10 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !import…

ABP - 审计日志 [AuditedAttribute、IAuditingManager、EntityAuditingHelper]

审计日志核心辅助类:AuditedAttribute:标记类/方法记录审计日志。 IAuditingManager:手动管理审计日志。 EntityAuditingHelper:实体审计辅助(自动填充创建/修改时间)。审计日志(Auditing)核心类示例与讲解 AB…

【深入浅出Nodejs】异步非阻塞IO

概览:本文介绍了阻塞I/O、非阻塞I/O、多路复用I/O和异步I/O 四种模型,在实际的操作系统和计算机中I/O本质总是阻塞的,通过返回fd状态和轮询的方式来使I/O在应用层不阻塞,然后通过多路复用的方式更高效实现这种不阻…

【Java-JMM】Happens-before原则

一、什么是 Happens-before 原则 Happens-before 原则是 Java 内存模型(JMM)的核心概念,用于定义多线程环境下操作之间的内存可见性关系。 核心理解:如果操作 A happens-before 操作 B,那么 A 的执行结果对 B 可见…

P6072 『MdOI R1』Path

给定一颗无根树 \(|T|\)。 求两条点不相交的路径,使得两条路径上边权的异或和加起来最大。 \[|T| \le 3\times 10^4 \] 这是一个经典 trick: 对于求两条点不相交路径,我们可以枚举点 \(x\),使得其中一条在 \(x\) 的…

P1601题解

题意 就是A+B,相信大家都能理解,对于Python来说很简单,对C++崽就不友好了 解析 下面提供一种解法(代码中的BitInt500这个类,别问我那个什么int128函数,不顶事): 1.创建数组 2.从字符串构造大型整数 3.大整数加法…

10-23 好题选讲总结

10-23 好题选讲总结 P13779 「o.OI R2」试机题 - 洛谷 注意特殊的数据范围。 \(K=2\) 就是黑白染色,然后检查黑白点数是否相等,\(K=3\) 可以 \(O(n^2)\) DP 设 \(f_{i,j,0/1}\) 表示子树内选了 \(j\) 个与 \(i\) 颜色…

关于驻马店市 2025 中小学信息学竞赛的记录(入门级)(未完)

全网好像都没有关于这个神秘竞赛的内容。 包括它的神秘举办方:驻马店市计算机学会。ZCF? 因此我决定写一篇记录,同时公布关于这个比赛的 几乎 所有信息。————题记By CasKPART 1. 赛前通知 本人是驻马店第*初级中…

关于Markdown的使用

因为在使用Markdown来编写博客,这里将会给出一些Markdown的笔记来方便后续使用。 标题采用#来表示几级标题,例如#为一级,##为二级。 这是一个一级标题 这是一个二级标题 字体采用*或者_来表示,一个表示斜体,两个表…

自定义Spring Cloud LoadBalancer实践

Spring Cloud负载均衡概述 在不同的Spring Cloud版本中,采用了不同的负载均衡组件。 具体来说,在Spring Cloud 2020.0版本之前,默认负载均衡器为Netflix推出的Ribbon,自Spring Cloud 2020.0版本起,Ribbon已经被标…

游记——驻马店市2025中小学信息学竞赛(未完)

全网好像都没有关于这个神秘竞赛的内容。 包括它的神秘举办方:驻马店市计算机学会。ZCF? 因此我决定写一篇游记,同时公布关于这个比赛的 几乎 所有信息。————题记By CasKPART 1. 赛前通知 以下是比赛前老师发给…

SAP折旧模拟超过1000条资产dump问题及解决

通过如下Tcode做资产折旧模拟时,发现如果超出100条资产系统会dump. S_ALR_87012936 - 折旧模拟 AR18N - 折旧模拟(新)解决办法: note:3396352 - Performance issues in Asset reporting or archiving, 可以配置单…

ABP - SqlSugar [SqlSugarModule、ISqlSugarClient、SqlSugarRepository]

SqlSugar ORM 集成 核心辅助类:SqlSugarModule:SqlSugar集成模块(需手动引入社区包)。 ISqlSugarClient:SqlSugar核心客户端。 SqlSugarRepository<T>:基于SqlSugar的仓储实现。你关注到了ABP与SqlSugar O…

Odoo18.0 对接 京东快递

京东快递 本章我们来看一下如何使用我们欧姆网络科技的京东快递插件来完成Odoo与京东快递的对接。 前期准备 首先我们要先在京东快递的开放平台注册一个商家[自研商家],并完成认证签约。入驻之后我们需要拿到如下参数…

Matplotlib常见画图工具

View PostMatplotlib常见画图工具一、Matplotlib核心基础 在开始绘图前,需掌握以下基础框架,几乎所有图表都基于此扩展:点击查看代码 # 1. 导入库 import matplotlib.pyplot as plt import numpy as np # 用于生成…

[python] 代码性能分析工具line_profiler使用指北

代码分析能够评估各部分代码的时间消耗,即进行时间复杂度分析。通过这一过程,我们可以识别影响整体运行效率的关键部分,从而更高效地利用底层计算资源。此外,代码分析也可用于评估内存使用情况,即空间复杂度,以优…

react的diff算法

这个算法用来比较虚拟dom和真实dom,从而最小化真实dom的更新 本质上是对两颗Fiber树的对比 (在Vue中是对旧VDOM树与新VDOM树的对比) 在不剪枝的情况下,时间复杂度接近O(n^3)基于最长公共子序列 (LCS) 的朴素计算为…

LLM学习记录DAY11

📘今日学习总结 tokenization分词算法 BPE分词(Byte-Pair Encoding)BPE 算法从一组基本符号(例如字母和边界字符)开始,迭代地寻找语料库中的两个相邻词元,并将它们替换为新的词元,这一过程被称为合并。 合并的…

ABP - 当前用户 [ICurrentUser、CurrentUser]

当前用户(Current User) 核心辅助类:ICurrentUser:获取当前登录用户信息(ID、用户名、角色等)。 CurrentUser:静态快捷访问(需在请求上下文内)。在ABP框架中,ICurrentUser和CurrentUser用于获取当前登录用户…

轮次检测模型 VoTurn-80M 开源,多模态融合架构;OpenAI 收购桌面助手 Sky:实时识别屏幕自然语言交互丨日报

开发者朋友们大家好:这里是 「RTE 开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的技术」、「有亮点的产品」、「有思考的文章」、「有态度…