题意 给你 \(n\) 和 \(k\) ,问能否用 \(k\) 的所有 \(>1\) 的因子凑出 \(n\) .多组数据,但保证不同的 \(k\) 不超过 50 个. \(n\leq 10^{18}, k\leq 10^{15}\) 分析 记 \(k\) 的质因子数量为 \(m\) . 如果 \(k=1\) 一定不行. 如果 \(m=1\) 直接判断是否可以整除. 如果 \(m=2\) 就是求 \(ax+by=n\) 是否存在非负整数解. 根据 \(ax \equiv n\ (mod\ b)\)…
Codeforces 题面传送门 & 洛谷题面传送门 感谢此题教会我一个东西叫做同余最短路(大雾 首先这个不同 \(k\) 的个数 \(\le 50\) 这个条件显然是让我们对每个 \(k\) 进行一遍预处理并快速求出答案.怎么预处理呢?首先考虑一个非常 trivial 的性质,那就是所有 \(k\) 的非质数因子显然可以表示成质因子的和对吧,所以一个数能够表示成 \(k\) 的若干个质因子的和,当且仅当它能够表示成 \(k\) 的若干个质因子的和.因此考虑先对 \(k\) 进行一遍质因数分解-…
CF986F Oppa Funcan Style Remastered 不错的图论转化题! 题目首先转化成:能否用若干个k的非1因数的和=n 其次,因数太多,由于只是可行性,不妨直接都用质因子来填充! 即:是否存在ai,使得∑ai*pi=n 经典套路:同余系最短路! 最小质因子p0,n一定是若干p0和其他的数凑出来的 dis[i]表示,%p0=i的数用pi来凑出来,最小是多少.最短路即可. 如果dis[n%p0]<=n,那么一定可以! 把询问离线,按照k依次处理. 一些特殊情况: k=1,全都是…
容易看出是用质因数凑n 首先01个因数的情况可以特判,2个的情况就是ap1+bp2=n,b=n/p2(mod p1),这里的b是最小的特解,求出来看bp2<=n则有解,否则无解 然后剩下的情况最小的质因数p1一定<=1e5,考虑在%p1的意义下做,考虑转成图论,点分别是%p1=x,然后对每个x连边(x+pi)%p1,边权为pi,跑最短路 如果dis[n%p1]<=n就合法,因为这表示可以用和小于n的若干数凑出和n在p1下同余的数,剩下部分用p1填即可 #include<iostre…
「CF986F」 Oppa Funcan Style Remastered Link 首先发现分解成若干个 \(k\) 的因数很蠢,事实上每个因数都是由某个质因子的若干倍组成的,所以可以将问题转换为分解成若干个 \(k\) 的质因子之和. 此时质因子个数最多也就 \(12\) 个. 然后就不会了. 注意到题目可以转化为判断 \(\sum_{i=1}^kp_ix_i=n\) 是否有非负整数解. 且若 \(\sum_{i=1}^kp_ix_i=m\) 有解,则 \(\sum_{i=1}^kp_ix_…
[题目链接] https://codeforces.com/contest/986/problem/F [算法] 不难发现 , 每个人都在且仅在一个简单环中 , 设这些环长的长度分别为 A1, A2 , A3 ... Alen, 那么有 : 1. A1 + A2 + A3 + .. + Alen = n 2. A1 , A2 , .. Alen为k的因子且大于或等于2 显然 , 每一个k的因数都可以分成若干个k的质因子之和 , 因此我们可以将问题转化为求是否存在 : B1P1 + B2P2 +…
Codeforces 题面传送门 & 洛谷题面传送门 首先思考一个非常简单的性质:记 \(d=\gcd(n,m)\),那么每次在一起吃完饭的男女孩编号必定与 \(d\) 同余,而根据斐蜀定理可以得到另一方面的结论:对于每一个 \(\bmod d\) 的剩余类,如果其中至少有一个男孩/女孩是快乐的,那所有与这样的男孩/女孩编号 \(\bmod d\) 同余的男孩/女孩最终都会变得快乐. 这样 \(-1\) 的情况就很好判断了:只要检查每个 \(\bmod d\) 的剩余类都至少有一个男孩/女孩是快…
还有3天,今天考试又崩了.状态还没有调整过来... 第一题:小L的二叉树 勤奋又善于思考的小L接触了信息学竞赛,开始的学习十分顺利.但是,小L对数据结构的掌握实在十分渣渣.所以,小L当时卡在了二叉树. 在计算机科学中,二叉树是每个结点最多有两个子结点的有序树.通常子结点被称作“左孩子”和“右孩子”.二叉树被用作二叉搜索树和二叉堆.随后他又和他人讨论起了二叉搜索树.什么是二叉搜索树呢?二叉搜索树首先是一棵二叉树.设key[p]表示结点p上的数值.对于其中的每个结点p,若其存在左孩子lch,则key…
Lazy Running Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 1384    Accepted Submission(s): 597 Problem Description In HDU, you have to run along the campus for 24 times, or you will fail in…
题目大意:已知B的范围,求a1x1+a2x2+...+anxn==B存在非负正整数解的B的数量,N<=12,ai<=1e5,B<=1e12 同余最短路裸题 思想大概是这样的,我们选定一个最小的$ai$,让其他的数用最小的代价去拼凑取余a1之后的数,这其实可以看成求最短路的过程 想象图中有amin个点(0~amin-1),$k$和$k+ai$之间连了一条长度为ai的边,通过跑最短路的方式,尽可能得去拼凑出取余amin以后的余数的最小花费 绝对不写spfa #include <queu…