欢迎来到endl的博客hhh☀☾☽♡♥

浏览器标题切换
把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

随笔分类 -  奇技淫巧

摘要:中国剩余定理 问题:求解同余方程组 其中m1,m2,m3...mk 为两两互质的整数,求x的最小非负整数解. 代码: 习题: 洛谷 P3868 [TJOI2009]猜数字【中国剩余定理】 例题: 曹冲养猪(信息学奥赛一本通 1634) 【题目描述】 自从曹冲搞定了大象以后,曹操就开始琢磨让儿子干些事 阅读全文
posted @ 2019-08-24 13:22 endl\n 阅读(947) 评论(0) 推荐(1)
摘要:同余基本概念 剩余系 欧拉函数 欧拉函数φ(n)表示1~n中所有与n互质的数。比如1~8中与8互质的数有1,3,5,7,所以φ(8)=4。 公式1:如果p是素数,有φ(p)=p-1。 公式2(积性):如果(a,b)=1,有φ(a*b)=φ(a)*φ(b), >以下是公式二的证明过程 设模a的一个简系 阅读全文
posted @ 2019-08-23 22:58 endl\n 阅读(4397) 评论(3) 推荐(3)
摘要:题目描述 Hanks 博士是BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫Hankson。现在,刚刚放学回家的Hankson 正在思考一个有趣的问题。今天在课堂上,老师讲解了如何求两个正整数c1 和c2 的最大公约数和最小公倍数。现在Hankson 认为自己已经熟练地掌握了这些知 阅读全文
posted @ 2019-08-22 23:31 endl\n 阅读(729) 评论(0) 推荐(0)
摘要:题目描述 相比 wildleopard 的家,他的弟弟 mildleopard 比较穷。他的房子是狭窄的而且在他的房间里面仅有一个灯泡。每天晚上,他徘徊在自己狭小的房子里,思考如何赚更多的钱。有一天,他发现他的影子的长度随着他在灯泡和墙壁之间走到时发生着变化。一个突然的想法出现在脑海里,他想知道他的 阅读全文
posted @ 2019-08-22 13:24 endl\n 阅读(581) 评论(0) 推荐(1)
摘要:【题目描述】 给出两个正整数 A,B,求它们的最大公约数。 【输入】 输入共两行,第一行一个正整数 A,第二行一个正整数 B。 【输出】 在第一行输出一个整数,表示 A,B 的最大公约数。 【输入样例】 【输出样例】 【提示】 数据范围与提示: 对于 60% 的数据,1≤A,B≤1018; 对于 1 阅读全文
posted @ 2019-08-22 10:04 endl\n 阅读(1346) 评论(0) 推荐(0)
摘要:题目描述 一个点每过一个单位时间就会向四个方向扩散一个距离,如图。 两个点a、b连通,记作e(a,b),当且仅当a、b的扩散区域有公共部分。连通块的定义是块内的任意两个点u、v都必定存在路径e(u,a0),e(a0,a1),…,e(ak,v)。给定平面上的n给点,问最早什么时刻它们形成一个连通块。 阅读全文
posted @ 2019-08-22 08:34 endl\n 阅读(1001) 评论(0) 推荐(2)
摘要:整数惟一分解定理的推论 1、求N的正约数集合 因为约数总是成对出现的(除了完全平方数)。因此只需扫描1~sqrt(N)之间的数就能得到N的正约数集合。 2、求1~N的每个数的正约数集合 3、约数个数 算术基本定理中,根据拆分后的素因子的指数,我们可以求出每个 N 的约数的个数。 根据这个式子,我们可 阅读全文
posted @ 2019-08-21 23:08 endl\n 阅读(2213) 评论(0) 推荐(1)
摘要:题目描述 对于任何正整数x,其约数的个数记作g(x)。例如g(1)=1、g(6)=4。 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数。例如,整数1,2,4,6等都是反质数。 现在给定一个数N,你能求出不超过N的最大的反质数么? 输入格式 一个数N(1<=N<=2,000,00 阅读全文
posted @ 2019-08-21 10:15 endl\n 阅读(902) 评论(0) 推荐(1)
摘要:【题目描述】 原题来自:HNOI 2008 监狱有连续编号为 1 到 n 的 n 个房间,每个房间关押一个犯人。有 m 种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人信仰的宗教相同,就可能发生越狱。求有多少种状态可能发生越狱。 【输入】 输入两个整数 m 和 n。 【输出】 可能越狱的状态数, 阅读全文
posted @ 2019-08-19 22:56 endl\n 阅读(433) 评论(0) 推荐(0)
摘要:【题目描述】 原题来自:HackerRank Equations 求不定方程: 1/x + 1/y = 1/n! 的正整数解 (x,y)的数目。 【输入】 一个整数 n。 【输出】 一个整数,表示有多少对 (x,y) 满足题意。答案对 109+7 取模。 【输入样例】 【输出样例】 【提示】 样例说 阅读全文
posted @ 2019-08-19 17:00 endl\n 阅读(610) 评论(0) 推荐(0)
摘要:整数惟一分解定理 素数筛法 给定n,求出1~n之间所有的质数。 一、Eratosthenes筛法 (☒此处本应有一幅动图,然鹅我并不知道该如何显示动图(。-ω-)-ω-)-ω-) Eratosthenes筛法思想 二、欧拉筛法(线性筛) 埃氏筛法中以n=30为例,30这个数被筛了3次,分别是: 2* 阅读全文
posted @ 2019-08-19 15:40 endl\n 阅读(2762) 评论(0) 推荐(0)
摘要:题目描述 S国有N个城市,编号从1到N。城市间用N-1条双向道路连接,满足从一个城市出发可以到达其它所有城市。每个城市信仰不同的宗教,如飞天面条神教、隐形独角兽教、绝地教都是常见的信仰。 为了方便,我们用不同的正整数代表各种宗教, S国的居民常常旅行。旅行时他们总会走最短路,并且为了避免麻烦,只在信 阅读全文
posted @ 2019-08-19 10:53 endl\n 阅读(409) 评论(0) 推荐(0)
摘要:Description 给定一棵有n个节点的无根树和m个操作,操作有2类: 1、将节点a到节点b路径上所有点都染成颜色c; 2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成:“11”、“222”和“1”。 请你写一个程序依次完成这m个操作。 Inp 阅读全文
posted @ 2019-08-19 10:29 endl\n 阅读(543) 评论(0) 推荐(0)
摘要:一、轻重边剖分的过程 使用两次dfs来实现。剖分过程中要计算如下7个值: father[x]:x在树中的父亲 size[x]:x的子树结点数(子树大小) dep[x]:x在树中的深度 son[x]:x的重儿子,即为重边 top[x]:x所在重路径的顶部结点(深度最小) seg[x]:x在线段树中的位 阅读全文
posted @ 2019-08-17 19:49 endl\n 阅读(447) 评论(2) 推荐(1)
摘要:题目描述 原题来自:BeiJing 2010 组队赛给定一张 N 个点 M 条边的无向图,求无向图的严格次小生成树。设最小生成树的边权之和为 sum,严格次小生成树就是指边权之和大于 sum 的生成树中最小的一个。 输入格式 第一行包含两个整数 N 和 M,表示无向图的点数与边数;接下来 MM 行, 阅读全文
posted @ 2019-08-17 10:29 endl\n 阅读(394) 评论(0) 推荐(1)
摘要:【题目描述】 >我的妈丫,ybt网站的题目粘贴过来修改格式真是太麻烦了,搬运什么的我不干了啦(滑稽 咳咳,那我就简要地讲下这道题的大意吧(当然你也可以略过我的胡言乱语,直接通过时空隧道进入原题吧↓↓↓ 时空隧道1->ybt 时空隧道2->luogu) 这道题咧其实本质上就是大家小时候都玩过 应该玩过 阅读全文
posted @ 2019-08-16 23:35 endl\n 阅读(861) 评论(0) 推荐(0)
摘要:【题目描述】 原题来自:Contest Hunter Round #56 在 Adera 的异时空中有一张地图。这张地图上有 NN 个点,有 N−1N−1 条双向边把它们连通起来。起初地图上没有任何异象石,在接下来的 MM 个时刻中,每个时刻会发生以下三种类型的事件之一: 地图的某个点上出现了异象石 阅读全文
posted @ 2019-08-14 19:07 endl\n 阅读(1193) 评论(0) 推荐(1)
摘要:倍增求LCA (1)树上倍增法 预处理 设f[x,k]表示x的2^k辈祖先,即从x向根节点走2^k步到达的节点。特别地,若该节点不存在,则令f[x,k]=0。f[x,0]就是x的父节点。可以得出f[x][k]=f[f[x][k-1]][k-1]。 我们可以对树进行遍历,由此得到f[x,0],再计算f 阅读全文
posted @ 2019-08-13 22:38 endl\n 阅读(1290) 评论(3) 推荐(2)
摘要:【题目描述】 原题来自:POJ 3417 Dark 是一张无向图,图中有 NN 个节点和两类边,一类边被称为主要边,而另一类被称为附加边。Dark 有 N–1N–1 条主要边,并且 Dark 的任意两个节点之间都存在一条只由主要边构成的路径。另外,Dark 还有 MM 条附加边。 你的任务是把 Da 阅读全文
posted @ 2019-08-13 22:36 endl\n 阅读(1100) 评论(0) 推荐(0)
摘要:线段树上每个节点维护了它所对应的区间的最小值。我们可以用简单的递归来得到这棵初始线段树,即用build(k,l,r)来表示当前要构建区间[l,r]的线段树,k表示区间[l,r]所对应的标号,若l=r则我们可以直接构建一个叶节点,它的区间最小值就是al;否则我们新建一个节点,它的两个子节点可以通过bu 阅读全文
posted @ 2019-08-13 22:12 endl\n 阅读(569) 评论(0) 推荐(0)