CYEZ 模拟赛 9
A
a ⊥ b ⇒ a − b ⊥ a b (1) a \perp b \Rightarrow a-b \perp ab \tag {1} a⊥b⇒a−b⊥ab(1)
证明: gcd ( a , b ) = gcd ( b , a − b ) \gcd(a,b) = \gcd(b, a-b) gcd(a,b)=gcd(b,a−b),故 a − b ⊥ b a - b \perp b a−b⊥b,同理 a − b ⊥ b a-b \perp b a−b⊥b,故 a − b ⊥ a b a-b \perp ab a−b⊥ab。
题目要求 a + b ∣ a b a+b \mid ab a+b∣ab,记 g = gcd ( a , b ) , a = x g , b = y g g = \gcd(a,b),a=xg, b = yg g=gcd(a,b),a=xg,b=yg。
x g + y g ∣ x y g 2 xg+yg \mid xyg^2 xg+yg∣xyg2,得 x + y ∣ x y g x+y \mid xyg x+y∣xyg。
由于 x ⊥ y x \perp y x⊥y,由 ( 1 ) (1) (1) 得 x + y ⊥ x y x + y \perp xy x+y⊥xy,得 x + y ∣ g x+y \mid g x+y∣g。
枚举 i = x + y i = x+y i=x+y,此时,根据 ( 1 ) (1) (1) 可得 x , y x,y x,y 的对数即为 φ ( i ) \varphi (i) φ(i),而 ( x + y ) g ≤ n (x+y)g \le n (x+y)g≤n 且 x + y ∣ g x+y \mid g x+y∣g,可能取值有 ⌊ n i 2 ⌋ \lfloor \frac{n}{i^2}\rfloor ⌊i2n⌋ 个。
x + y x+y x+y 的上界容易确定,为 n \sqrt n n。故答案为 ∑ i = 1 n φ ( i ) × ⌊ n i 2 ⌋ \sum_{i=1}^{\sqrt {n}} \varphi (i) \times \lfloor \frac{n}{i^2}\rfloor ∑i=1nφ(i)×⌊i2n⌋。
对于 φ \varphi φ 函数,考虑线筛时同时处理 φ \varphi φ。
#include<bits/stdc++.h>
#define int long long
using namespace std;const int N = 1e7 + 5;int n, p[N], phi[N], P[N], tot;bool v[N];signed main()
{ios::sync_with_stdio(0); cin.tie(0);cin >> n;int m = sqrt(n), ans = 0;for(int i=2; i<=m; i++){if(!v[i]){phi[i] = i-1;P[++tot] = i;}for(int j=1; i*P[j]<=m and j<=tot; j++){v[i*P[j]] = 1;if(i % P[j] == 0) {phi[i * P[j]] = phi[i] * P[j]; break;}else phi[i * P[j]] = phi[i] * (P[j] - 1);}ans += phi[i] * ((n / i) / i);}cout << ans;
}
B
简单 LIS 题。
f i = max j < i , a j < a i f j + 1 f_i = \max_{j<i,a_j<a_i} f_j + 1 fi=j<i,aj<aimaxfj+1
容易用 BIT 优化。
#include<bits/stdc++.h>
#define pii pair <int, int>
#define int long long
using namespace std;const int mod = 123456789;const int N = 1e5 + 5;void chmax(int &A, int &B, int a, int b)
{if(a > A) A = a, B = b;else if(a == A) B += b, B %= mod;
}int n, type, a[N], f[N], g[N];int F[N], G[N];
int lowbit(int x){return x&(-x);}
void modify(int x, int val1, int val2)
{for(;x<=1e5; x+=lowbit(x)) chmax(F[x], G[x], val1, val2);
}
pii query(int x)
{int res1 = 0, res2 = 0; for(;x>0; x-=lowbit(x)) chmax(res1, res2, F[x], G[x]); return {res1, res2};
}signed main()
{ios::sync_with_stdio(0); cin.tie(0);cin >> n >> type;for(int i=1; i<=n; i++)cin >> a[i];int ansf = 0, ansg = 0;for(int i=1; i<=n; i++){f[i] = 1, g[i] = 1;auto res = query(a[i] - 1);chmax(f[i], g[i], res.first + 1, res.second);modify(a[i], f[i], g[i]);chmax(ansf, ansg, f[i], g[i]);}cout << ansf << "\n";if(type) cout << ansg;
}
C
记 b i / w i b_i/w_i bi/wi 为第 i i i 层的黑色 / 白色节点个数, s b i / s w i sb_i/sw_i sbi/swi 为前 i i i 层黑色 / 白色节点个数(均指白色节点作为根时)。在本题中,我们认为根节点深度为 1 1 1。
考虑分别处理 lca 为白色节点和黑色节点的点对:
对于 lca 为白点的点对,两者为祖先 / 后代的关系。距离为 i i i 的该类型点对数量为 s w n − i × w i + 1 sw_{n-i} \times w_{i+1} swn−i×wi+1,含义是 s w n − i sw_{n-i} swn−i 个节点可能作为祖先,考虑到子树本质相同的性质,对于每个祖先,有 w i + 1 w_{i+1} wi+1 个节点与其距离为 i i i。
对于 lca 为黑点的点对,两点一定分别在 lca 的黑白子树中,设白 / 黑子树内两点到 lca 距离分别为 i , j i,j i,j,则可能的点对个数为 w i × w j + 1 w_i \times w_{j+1} wi×wj+1,可能作为祖先的节点个数为 s b n − max ( i , j ) sb_{n-\max(i,j)} sbn−max(i,j)。
#include<bits/stdc++.h>
#define int long long
using namespace std;const int mod = 123456789;
const int N = 5005;int n, w[N], b[N], sw[N], sb[N], ans[N<<1];signed main()
{cin >> n;w[1] = 1, b[2] = 1, w[3] = 1, b[3] = 1;for(int i=4; i<=n; i++)w[i] = (w[i-1] + w[i-2]) % mod,b[i] = (b[i-1] + b[i-2]) % mod;for(int i=1; i<=n; i++)sb[i] = (sb[i-1] + b[i]) % mod,sw[i] = (sw[i-1] + w[i]) % mod;for(int i=1; i<=n; i++)ans[i] = sw[n-i] * w[i+1] % mod;for(int i=1; i<=n; i++)for(int j=1; j<=n; j++)ans[i+j] += (sb[n-max(i,j)] * w[i] % mod) * w[j+1] % mod, ans[i+j] %= mod;for(int i=1; i<=2*n; i++) cout << ans[i] << " ";
}
总结
预估 100 + 100 + 0 100+100+0 100+100+0,实际 90 + 100 + 0 90+100+0 90+100+0。场上三题大概都看了眼,发现 T2 比较简单,场上优先写了这题,比较自信,没有写拍。然后开 T1,T1 暴露了我数论接触不多的缺陷,先写了个暴力然后找规律推式子。推完了发现不会筛法求欧拉函数,也不知道一些高深的公式,就推了个奇奇怪怪的基于埃筛的 O ( n log log n ) O(\sqrt n \log \log \sqrt n) O(nloglogn) 方法。写完代码之后验了几个小数据没什么问题。T3 剩的时间不是很多,想的不是很全面,没有想到根据 lca 去讨论,写了个奇奇怪怪的平方 dp,由于时间不多且分讨巨多没有实现。
相关文章:
CYEZ 模拟赛 9
A a ⊥ b ⇒ a − b ⊥ a b (1) a \perp b \Rightarrow a-b \perp ab \tag {1} a⊥b⇒a−b⊥ab(1) 证明: gcd ( a , b ) gcd ( b , a − b ) \gcd(a,b) \gcd(b, a-b) gcd(a,b)gcd(b,a−b),故 a − b ⊥ b a - b \perp b a−b⊥b,同…...
typescript: Builder Pattern
/*** file: CarBuilderts.ts* TypeScript 实体类 Model* Builder Pattern* 生成器是一种创建型设计模式, 使你能够分步骤创建复杂对象。* https://stackoverflow.com/questions/12827266/get-and-set-in-typescript* https://github.com/Microsoft/TypeScript/wiki/…...
WPS/word 表格跨行如何续表、和表的名称
1:具体操作: 将光标定位在跨页部分的第一行任意位置,按下快捷键ctrlshiftenter,就可以在跨页的表格上方插入空行(在空行可以写,表1-3 xxxx(续)) 在空行中输入…...
Python的NumPy库(一)基础用法
NumPy库并不是Python的标准库,但其在机器学习、大数据等很多领域有非常广泛的应用,NumPy本身就有比较多的内容,全部的学习可能涉及许多的内容,但我们在这里仅学习常见的使用,这些内容对于我们日常使用NumPy是足够的。 …...
uniapp app 导出excel 表格
直接复制运行 <template><view><button click"tableToExcel">导出一个表来看</button><view>{{ successTip }}</view></view> </template><script>export default {data() {return {successTip: }},metho…...
【RabbitMQ】常用消息模型详解
文章目录 AMQP协议的回顾RabbitMQ支持的消息模型第一种模型(直连)开发生产者开发消费者生产者、消费者开发优化API参数细节 第二种模型(work quene)开发生产者开发消费者消息自动确认机制 第三种模型(fanout)开发生产者开发消费者 第四种模型(Routing)开发生产者开发消费者 第五…...
图像拼接后丢失数据,转tiff报错rasterfile failed: an unknown
图像拼接后丢失数据 不仅是数据丢失了,还有个未知原因报错 部分数据存在值不存在的情况 原因 处理遥感数据很容易,磁盘爆满了 解决方案 清理一些无用数据,准备买个2T的外接硬盘用着了。 然后重新做处理...
Nginx之日志模块解读
目录 基本介绍 配置指令 access_log(访问日志) error_log( 错误日志) 基本介绍 Nginx日志主要分为两种:access_log(访问日志)和error_log(错误日志)。Nginx日志主要记录以下信息: 记录Nginx服务启动…...
latex方程组编写,一种可以保证方程编号自适应的方法
问题描述: 在利用latex编写方程组时,可以有很多种方法,但不总是编辑好的公式能够显示出编号,故提出一种有效的方程组编写方法 方法: \begin{equation}X_{ t1}\left \{ \begin{matrix}\frac{x_{i}}{a} \quad\quad 0&l…...
深度学习基础 2D卷积(1)
什么是2D卷积 2D参数量怎么计算 以pytorch为例子,2D卷积在设置的时候具有以下参数,具有输入通道的多少(这个决定了卷积核的通道数量),滤波器数量,这个是有多少个滤波器,越多提取的特征就越有用…...
OpenCV DNN C++ 使用 YOLO 模型推理
OpenCV DNN C 使用 YOLO 模型推理 引言 YOLO(You Only Look Once)是一种流行的目标检测算法,因其速度快和准确度高而被广泛应用。OpenCV 的 DNN(Deep Neural Networks)模块为我们提供了一个简单易用的 API࿰…...
第八章 Linux文件系统权限
目录 8.1 文件的一般权限 1.修改文件或目录的权限---chmod命令 2.对于文件和目录,r,w,x有不同的作用: 3.修改文件或目录的所属主和组---chown,chgrp 8.2 文件和目录的特殊权限 三种通过字符描述文件权限 8.3 ACL 权限 1.A…...
XXL-JOB源码梳理——一文理清XXL-JOB实现方案
分布式定时任务调度系统 流程分析 一个分布式定时任务,需要具备有以下几点功能: 核心功能:定时调度、任务管理、可观测日志高可用:集群、分片、失败处理高性能:分布式锁扩展功能:可视化运维、多语言、任…...
java做个qq机器人
前置的条件 机器人是基于mirai框架实现的。根据官方的文档,建议使用openjdk11。 我这里使用的编辑工具是idea2023 在idea中新建一个maven项目,虽然可以使用gradle进行构建,不过我这里由于网络问题没有跑通。 pom.xml <dependency>&l…...
前端 | AjaxAxios模块
文章目录 1. Ajax1.1 Ajax介绍1.2 Ajax作用1.3 同步异步1.4 原生Ajax 2. Axios2.1 Axios下载2.2 Axios基本使用2.3 Axios方法 1. Ajax 1.1 Ajax介绍 Ajax: 全称(Asynchronous JavaScript And XML),异步的JavaScript和XML。 1.2 Ajax作用 …...
高效的ProtoBuf
一、背景 Google ProtoBuf介绍 这篇文章我们讲了怎么使用ProtoBuf进行序列化,但ProtoBuf怎么做到最高效的,它的数据又是如何压缩的,下面先看一个例子,然后再讲ProtoBuf压缩机制。 二、案例 网上有各种序列化方式性能对比&#…...
删除SQL记录
删除记录的方式汇总: 根据条件删除:DELETE FROM tb_name [WHERE options] [ [ ORDER BY fields ] LIMIT n ] 全部删除(表清空,包含自增计数器重置):TRUNCATE tb_namedelete和truncate的区别: d…...
数据结构--》探索数据结构中的字符串结构与算法
本文将带你深入了解串的基本概念、表示方法以及串操作的常见算法。通过深入理解串的相关概念和操作,我们将能够更好地应用它们来解决算法问题。 无论你是初学者还是进阶者,本文将为你提供简单易懂、实用可行的知识点,帮助你更好地掌握串在数据…...
云安全之等级保护详解
等级保护概念 网络安全等级保护,是对信息系统分等级实行安全保护,对信息系统中使用的安全产品实行按等级管理,对信息系统中发生的信息安全事件分等级进行响应、处置。 网络安全等级保护的核心内容是:国家制定统一的政策、标准&a…...
VUE状态持久化,储存动态路由
1. vuex persistPlugin.js 文件 const routerKey "ROUTER_KEY";export default (store) > {// 刷新页面时,存储改变的数据window.addEventListener("beforeunload", () > {localStorage.setItem(routerKey, JSON.stringify(store.stat…...
微信小程序代驾系统源码(含未编译前端,二开无忧) v2.5
简介: 如今有越来越多的人在网上做代驾,打造一个代驾平台,既可以让司机增加一笔额外的收入,也解决了车主酒后不能开发的问题,代驾系统基于微信小程序开发的代驾系统支持一键下单叫代驾,支持代驾人员保证金…...
1797_GNU pdf阅读器evince
全部学习汇总: GreyZhang/g_GNU: After some years I found that I do need some free air, so dive into GNU again! (github.com) 近段时间经历了很多事情,终于想找一点技术上的自由气氛。或许,没有什么比GNU的一些软件探索更适合填充这样的…...
网络-跨域解决
文章目录 前言一、跨域是什么?二、跨域的解决1.JSONP2.前端代理dev环境3.后端设置请求头CORS4.运维nginx代理 总结 前言 本文主要介绍跨域问题介绍并提供了四种解决办法。 一、跨域是什么? 准确的来说是浏览器存在跨域问题,浏览器为了安全考…...
git提交代码的流程
1.拉取代码 当你进入了一家公司就需要拉去公司的代码进行开发,此时你的项目小组长会给你个地址拉代码, git clone 公司项目的地址 此时如果不使用了这个方式拉去代码,拉去的是master分支上的代码,但是很多数的情况下,公司的项目可能会在其它的分支上,因此到公…...
【SpringBoot】配置文件详解
配置文件详解 一. 配置文件作用二. 配置文件的格式1. properties 配置文件说明①. properties 基本语法②. 读取配置⽂件③. properties 缺点 2. yml 配置⽂件说明①. yml 基本语法②. yml 使用进阶 3. properties VS yml 三. 设置不同环境的配置⽂件 一. 配置文件作用 整个项…...
一文讲懂-五险一金
假设在“北京”:这里的数值并不代表任何真实的城市或地区,只是为了说明计算方法。 工资: 月工资为 6000 元。养老保险: 单位比例: 20% 个人比例: 8%医疗保险: 单位比例: 10% 个人比例: 2%失业保险: 单位比例: 2% 个人比例: 0.5%工伤保险: 单位比例: 0.5…...
判断三条边是否构成三角形(Python实现)
组成三角形的三条边a,b,c需满足条件: ab>c ac>b bc>a 已知:三角形任意三条边的长度之和大于第三条边。 解题:定义3个变量a、b、c,让用户输入任意三个数字赋值给三个变量。判断三个变量中是否任意两个之和大于第三个数值。 判断条件之…...
The directory ‘*‘ or its parent directory is not owned by the current user
python安装编译时出现如下错误 The directory /home/admin/.cache/pip/http or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may …...
leetcode做题笔记162. 寻找峰值
峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。 你可以假设 nums[-1] nums[n] -∞ 。 你必须实现时间复杂度为 O(…...
nginx负载转发源请求http/https:X-Forwarded-Proto及nginx中的转发报头
今天在排查服务器的问题时最后定位到服务器因为经过了运维这一层的处理,转发过来的请求不管用户请求的是https还是http,我们的proxy服务器收到的都是80端口上的http。于是联系相关部门了解有没有现成的可用的这样一个字段来获得这个值。公司用的也是标准…...
网站建设技术线路选择/郑州网络推广软件
在常规报表设计中,有这样的需求。 基础数据表中只有某几个月的数据,但是实际显示时却要显示包含全部12个月份的报表。 同理,该方法适用于任何需要数据补全的情况。 这个依靠SQL语句可以实现,在这里我使用Access进行示例࿰…...
互联网行业排行榜/seo优化技术厂家
安装 Oracle VM VitrualBoxOracle VM VirtualBox Extension PackU盘启动 VBoxManage internalcommands createrawvmdk -filename D:\usb.vmdk -rawdisk \\.\PhysicalDrive#转载于:https://www.cnblogs.com/magiclor/p/9496835.html...
网站制作书籍推荐/百度下载正版
剑指Offer:重建二叉树【7】 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二…...
网站实例/洛阳seo博客
javap是jdk自带的反解析工具。它的作用就是根据class字节码文件,反解析出当前类对应的code区(汇编指令)、本地变量表、异常表和代码行偏移量映射表、常量池等等信息。 当然这些信息中,有些信息(如本地变量表、指令和代…...
海南网站建设推荐/网页制作网站制作
戳蓝字 “Office随身学” 关注我们哦 ~- 序言 - 在介绍如何自定义快速访问工具栏中的命令前,我们先来皮一下 —— 愉快的调戏一下快速访问工具栏的显示位置。 - 下拉菜单按钮 - 点击快速访问工具栏的下拉菜单按钮,选择下拉菜单中的“在功能区下方显示”…...
做网站客户改来改去/近日发生的重大新闻
传送门 可以去看看litble巨巨关于第一类斯特林数的总结 设\(f(i,j)\)为\(i\)个数的排列中有\(j\)个数是前缀最大数的方案数,枚举最小的数的位置,则有递推式\(f(i,j)f(i-1,j-1)(i-1)\times f(i-1,j)\) 这个就是第一类斯特林数 第一类斯特林数中\(S_1(n,m)…...