尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

周六训练-1018

周六训练-1018
📅 发布时间:2026/6/20 3:59:55

C Cut

我的质因数分解不是在杨老师这里学的,所以我写挂了,杨老师好闪拜谢杨老师

#include <iostream>
#define int long longusing namespace std;const int MaxN = 1e5 + 10;int f[MaxN][20], mn[MaxN][20], nxt[MaxN], pri[MaxN], a[MaxN], p[MaxN], tot, n, q;
bool vis[MaxN];int qmn(int x, int len, int res = 1e9) {for (int i = 19; i >= 0; i--) {if (len & (1 << i)) {res = min(res, mn[x][i]), x += (1 << i);}}return res;
}int GO(int x, int len) {for (int i = 19; i >= 0; i--) {if (len & (1 << i)) {x = f[x][i];}}return x;
}signed main() {ios::sync_with_stdio(0), cin.tie(0);cin >> n >> q;for (int i = 1; i <= n; i++) {cin >> a[i];}for (int i = 1; i < MaxN; i++) {nxt[i] = n + 1;}for (int i = n; i >= 1; i--) {p[i] = n + 1;for (int j = 2; j * j <= a[i]; j++) {if (a[i] % j == 0) {p[i] = min(p[i], nxt[j]), nxt[j] = i;while (a[i] % j == 0) {a[i] /= j; }}}if (a[i] > 1) p[i] = min(p[i], nxt[a[i]]), nxt[a[i]] = i;mn[i][0] = p[i];}for (int i = 1; i <= 19; i++) {for (int j = 1; j + (1 << i) - 1 <= n; j++) {mn[j][i] = min(mn[j][i - 1], mn[j + (1 << (i - 1))][i - 1]);}}for (int i = 1; i <= n; i++) {f[i][0] = qmn(i, p[i] - 1 - i + 1);}f[n + 1][0] = n + 1;for (int i = 1; i <= 19; i++) {for (int j = 1; j <= n + 1; j++) {f[j][i] = f[f[j][i - 1]][i - 1];}}for (int u, v, l, r; q; q--) {cin >> u >> v, l = 0, r = MaxN - 1;while (l < r) {int mid = l + r >> 1;GO(u, mid) > v ? r = mid : l = mid + 1; }cout << l << '\n';}return 0;
}

D Distinctive Roots in a Tree

我被误导了,我以为是用相等的颜色就将路径标记,但是由于这个会有多个相等的所以不能做。

我们从整体到个体来思考,我们考虑单个点,他如果儿子的某一个子树内有和它相同的,那么这个子树外面的都要标记为不可能。

如果当前点子树外有和它相同的,那么子树内的都要标记为不可能。

#include <iostream>
#include <vector>
#include <map>using namespace std;const int MaxN = 2e5 + 10;int dfn[MaxN], sz[MaxN], sum[MaxN], d[MaxN], id, a[MaxN], n;
vector<int> g[MaxN];
map<int, int> cnt, tot;void DFS(int x, int fa = 0) {dfn[x] = ++id;int pre = cnt[a[x]];cnt[a[x]]++, sz[x] = 1;for (int i : g[x]) {if (i == fa) continue;int tmp = cnt[a[x]];DFS(i, x); sz[x] += sz[i];if (tmp != cnt[a[x]]) {d[1]++, d[dfn[i]]--, d[dfn[i] + sz[i]]++;}}if (cnt[a[x]] - pre < tot[a[x]]) {d[dfn[x]]++, d[dfn[x] + sz[x]]--;}
}int main() {cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i], tot[a[i]]++;}for (int i = 1, u, v; i < n; i++) {cin >> u >> v;g[u].push_back(v), g[v].push_back(u);}DFS(1);for (int i = 1; i <= n; i++) {d[i] += d[i - 1];d[0] += !d[i];}cout << d[0] << '\n';return 0;
}

相关新闻

  • (第五次)随机森林和xGboost
  • swtich的应用
  • P14253 旅行(trip)题解 - 符星珞

最新新闻

  • 嵌入式GUI图像优化:从位图转换到性能调优的完整指南
  • 2026年6月抢先情报:北京欧米茄全国联保服务网点全解析:机芯保养的最佳周期是多久? - 亨得利官方售后
  • 终极罗技鼠标宏配置指南:3分钟实现绝地求生精准压枪
  • 等离子果蔬清洗机十大品牌实测排名与选购指南 - 资讯速览
  • 2026 年珠海市厨卫屋顶地下室防水修缮三家横向测评:吉修匠 99.8 分五星榜首 - 吉修匠
  • 2026年泰安黄金回收避坑指南:这4家店通过7项硬核考核 - 生活测评君

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号