数论
文章平均质量分 60
a1214034447
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #846 (Div. 2) ABEF
Codeforces Round #846 (Div. 2)原创 2023-02-16 15:17:07 · 101 阅读 · 0 评论 -
Codeforces Round #842 (Div. 2) A-E
Codeforces Round #842 (Div. 2)原创 2023-01-11 10:38:55 · 214 阅读 · 0 评论 -
Codeforces Round #818 (Div. 2) A-E
Codeforces Round #818 (Div. 2)原创 2022-11-04 16:54:51 · 87 阅读 · 0 评论 -
Codeforces Round #601 (Div. 2) 题解
题目链接:A - Changing Volume水题#include<bits/stdc++.h>#define x first#define y second#define inf 0x3f3f3f3fusing namespace std;typedef long long ll;typedef pair<int,int> pa;con...原创 2019-11-30 20:34:22 · 219 阅读 · 0 评论 -
2018-2019 ACM-ICPC Southeastern European Regional Programming Contest (SEERC 2018)
题目链接:https://vjudge.net/contest/339284#overviewA.Numbers待做B.Broken Watchs = input()s = s.split(" ")A,B,C,N = list(map(int,s))n = (N-1) // 2 ret = N*N*N - 3*N*(n)*(n-1) - N - 3*N*(...原创 2019-11-06 22:53:13 · 856 阅读 · 0 评论 -
2019-2020 ACM-ICPC Brazil Subregional Programming Contest 题解
题目链接:http://codeforces.com/gym/102346A.Artwork将相交的圆用并查集合并,最后查询一下是否有一个或者两个在一个并查集里面的圆形成这样的一个封闭#include <bits/stdc++.h>#define x first#define y second#define mid (l+r>>1)#def...原创 2019-10-30 15:17:41 · 2108 阅读 · 0 评论 -
Comet OJ - Contest #13[A-D]
题目链接:https://www.cometoj.com/contest/71/problemsA.「壶中的大银河」水题B.「龙颈之玉 -五色的弹丸-」用一个双向队里维护一下贪吃蛇某个点的前一个位置方向是啥就好了#include<bits/stdc++.h>#define x first#define y second#define inf 0x3f3...原创 2019-10-28 16:18:08 · 212 阅读 · 0 评论 -
Codeforces Round #589 (Div. 2) -- 题解
A. Distinct Digits#include<bits/stdc++.h>#define inf 0x3f3f3f3fusing namespace std;typedef long long ll;const int mx = 1e5 + 10;int top;int a[mx];bool check(int i){ bool b[20]; memse...原创 2019-10-15 20:57:58 · 265 阅读 · 0 评论 -
ZOJ - 4069(2018 青岛现场赛 L) - 指数型生成函数
题目链接:https://vjudge.net/problem/ZOJ-4069 解题思路:1.n个点组成环的不同种类数是(n-1)!/2;n个点组成一条链的不同种类数是n!/2,特别的n==1时种类数为1。用指数型生成函数表示k个点形成链的种类: 1/2(2x+2!*x^2/2!+3!*x^3/3!+4!*x^4/4!+..+n!*x^n/n!) = 1/2(2*x+x^2+x^...原创 2018-12-05 12:46:24 · 770 阅读 · 0 评论 -
Gym - 102056C(2018EC final) - CRT
题目链接:https://vjudge.net/problem/Gym-102056C 解题思路:很明显是在200个字符串中存在一个最前面的位置是4*k,它的值自然是0,之后每隔+4依然是4的倍数,所以它的值也是0,那么在这200个字符串中,我们可以枚举4,9,,25,49,121,169这6个数,利用中国剩余定理(CRT)可以用六个式子解出待定解x,那么如何快速判断x是否是可行解呢?...原创 2019-01-12 20:02:52 · 1239 阅读 · 1 评论 -
Gym - 100451B - 大数+DP
题目链接:https://vjudge.net/problem/Gym-100451B 解题思路:原来的汉诺塔移动公式是(2^n)-1,那么如果我们把每两个大小相等的看成一个,相当于移动一个花费变成了2,在不考虑两个的上下顺序的情况下移动移动次数就是2*((2^n)-1) = 2^(n+1) - 2现在的问题是要考虑相同大小的两块最终顺序问题。用g[i]表示移动前2*i块的最小...原创 2019-01-12 20:42:37 · 812 阅读 · 0 评论 -
hdu 2281 - 佩尔方程
题目链接:https://vjudge.net/problem/HDU-2281 解题思路:原式可以化为x^2 = (n+1)(2*n+1)/6,(4n+3)^2 - 48*x^2 = 1然后就是佩尔方程求解了。x^2 - n*y^2 = 1x[i+1] = x[1]*x[i] + n* y[1]*y[i]y[i+1] = x[1]*y[i] + y[1]*x[i]...原创 2019-02-25 17:26:17 · 357 阅读 · 0 评论 -
Comet OJ - Contest #2 A-E
题目链接:https://cometoj.com/contest/37/problemsA.因自过去而至的残响起舞对于爆炸型增长的数来说,增长到x只需要log级别就ok了,所以直接暴力就好了。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int mx = 1e5 +...原创 2019-04-29 12:34:18 · 269 阅读 · 0 评论 -
hdu 1705[皮克定理]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1705解题思路:叉积求公式+皮克定理(2*S=2*a+b-1)+化二元一次方程根据斜率k求整数解。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int mx = 1...原创 2019-04-30 16:08:10 · 208 阅读 · 0 评论 -
Gym - 101480F[FFT或者推公式]
题目链接:https://vjudge.net/contest/298078#problem/F解题思路:很显然是去考虑每个点的贡献:对于每个(1,i)上的值ti,它的贡献是,为什么是2*n-2-i呢,因为第一步肯定是往上走的。对于每个(i,1)上的值li,它的贡献是,还是因为要先向右走。对于这两种贡献可以直接用O(n)求出,剩下就是考虑每个点(i,j)的c对答案的贡献。...原创 2019-05-06 23:02:27 · 176 阅读 · 0 评论 -
牛客想开了大赛2 题解
题目链接:https://ac.nowcoder.com/acm/contest/907#questionA.【六】平面公式:(n*n+n)/2 + 1,n为直线数目B.【一】n的约数枚举质因子和每个质因子的个数,显然个数肯定从多到少。#include<bits/stdc++.h>typedef long long ll;using namespace ...原创 2019-06-01 17:05:51 · 141 阅读 · 0 评论 -
2019 年百度之星·程序设计大赛 - 初赛三[1-3]
题目链接:http://bestcoder.hdu.edu.cn/contests/contest_show.php?cid=863A.#include <bits/stdc++.h>using namespace std;const int mx = 2e5 + 10;const int mod = 1e9+7;typedef long long ll;i...原创 2019-08-31 15:00:46 · 263 阅读 · 0 评论 -
bzoj 1938 - 类欧几里得+线段树
题目链接:https://darkbzoj.cf/problem/1938 解题思路;对于区间更新:前半部分可以用线段树求等差数列和,后半部分可以用类欧几里得算法求出值类欧几里得然后是要对区间离散化,其中有个问题在于对于区间(l,r)分裂为(l,mid)和(mid+1,r)都是mid-mid+1中还有值,所以对于区间(l,r)实际包含的是(num[r+1]-num[...原创 2018-10-25 18:27:34 · 364 阅读 · 0 评论 -
hdu 5768 - 中国剩余定理 + 容斥
题解思路:利用中国剩余定理解决多个同余问题,这里需要再加一项mn = 7,an = 0,这样才能求出7的倍数的解,然后再需要用到容斥,2^15枚举就行了。1.扩展欧几里得: 我们观察到:欧几里德算法停止的状态是: a= gcd(a,b), b = 0 ,那么,这是否能给我们求解 x y 提供一种思路呢?因为,这时候,只要 a = gcd(a,b)的系数是 1 ,那么只要 b 的系数...原创 2017-10-22 19:51:17 · 248 阅读 · 0 评论 -
hdu 6442 - 二项式定理
题目链接:点击这里 解题思路:另(A+根号B)^n = x+y*根号B,那么(A-根号B)^n = x - y*根号B,两式相减得:2*y*根号B,再除以2等于y*根号B所以q只会是1,第二个就是y,最后一个就是化成最简的B。其实可以更简单的理解这道题,根据二项式定= (A+根号B)^n其实我们要的也就是每一项都要有根号B的和,也就是奇数项和。所以直接用快速幂求(A+根...原创 2018-08-26 16:57:13 · 635 阅读 · 0 评论 -
给定两个整数 l 和 r ,对于所有满足1 ≤ l ≤ x ≤ r ≤ 10^9 的 x ,把 x 的所有约数全部写下来。对于每个写下来的数,只保留最高位的那个数码。求1~9每个数码出现的次数。
题解:以1为例 枚举1-1,10-19,100-199,....每次从右界开始求出商k,根据公式求出此点左边最近的一点使得商为k+1,若d=1,则左边点不存在k+1,ans可以加上k*d的距离,然后跳过这段距离。代码:#include#include#include#include#includeusing namespace std;typedef long long原创 2017-06-18 13:00:02 · 4880 阅读 · 0 评论 -
hdu 6129-推理
题目链接:点击打开链接题解思路:依题意模拟一下画出一个这样的三角形你会发现,例如以n=4,m = 1为例12 13 2 14 3 2 1斜着看以最外层为第一层,当然第一层都是一,那么第二层就是C(m,1),第三层就是C(m+1,2),以此类推。那么我们又有公式C(m,n) = m/n*C(m-1,n-1),所以每次记住上个状态内含有二的几次方,顺便把n和m也一起求,原创 2017-08-17 11:24:07 · 275 阅读 · 0 评论 -
hdu 5902 - 数学
题目链接:点击打开链接题解思路:天真的我以为只要一次两两gcd就是答案了,然而这明显是错的,例如:18*12,12*42,42*18这三个数要是一次两两gcd的话是不会得到6的。所以要用gcd完得到的数再去和数组的数去gcd然后看有没有新的数出现。代码:#includeusing namespace std;typedef long long ll;const i原创 2017-11-12 18:42:30 · 296 阅读 · 0 评论 -
hdu 3398
题解思路:好久没做数学题了,表示很生疏,木有手感……看大牛们的解题报告完成的……orz …顺便膜拜一下……这题的意思是要求满足如下要求字符串的个数,要求是由m 个 0 , n 个 1 组成,而且对于该字符串的任意前缀满足 1 的个数不小于 0 的个数。可以这么考虑,设一个直角坐标系,刚开始的时候在原点,假设如果字符串第 i个是 0 的话,那么就向右移动一个单位,如果是原创 2017-10-26 19:32:44 · 229 阅读 · 0 评论 -
Wannafly挑战赛5 子序列
题目链接:点击打开链接解题思路:若T字符串第一次出现在1-i中,那么i-n的字符就可以随便取了,1-i没有被T字符串中字母占据的每个字母只能有25种取法,即在T中字母出现之前不能出现这个字母。那么求排列组合我们在求一个逆元就可以了。#include#include#include#includeusing namespace std;typedef long lo原创 2017-12-09 18:29:26 · 276 阅读 · 0 评论 -
CF #470 B
解题思路:已知Xi,那么想要使得Xi-1尽量小,p的取值必然是Xi的最大质因数,为啥呢,设当前选取的Xi的质因子是p1,那么Xi-1的取值范围就必然是Xi-p1+1 ~ Xi,所以p1越大可取值越小,所以只要算Xi的所以质因子,就可以判断Xi-1的最小取值了。时间复杂度为O(nsqrt(n))#include<bits/stdc++.h>using namespace std;co...原创 2018-03-16 21:18:25 · 257 阅读 · 0 评论 -
hdu 6134 - 容斥+数学
题目链接:点击打开链接题解思路:F[i]表示累加j∈(1-i)[向上取整的i/j],f[i]则表示累加的[向下取整的[i/j],[i/j]表示向上取整,(i/j)表示向下取整,那么你会发现[i/j] = ((i-1)/j) + 1,那么F[i] = f[i-1] + i;f[i] = F[i] -i+(i的因子个数)。那么我们最后在应用容斥可得,容斥用莫比乌斯就行了,例如将公约数是2的删去,那么假...原创 2017-08-17 19:05:27 · 560 阅读 · 0 评论 -
hdu 6127-数学
题目链接:点击打开链接题解思路:很简单,每次选取一个点,让原点与此点连接然后再使他偏离一点点,那么这个线就将点分为左右两边,ans就可以更新 ans = max(ans,v*max(l,r)+l*r);),v是此点的值,l,r分别表示两部分各自的和,先将点分为四个象限,各个象限按斜率从小到大排序,比如当枚举到第一象限时,两部分的其中一个部分应该是第二象限+此点在第一象限斜率递增部分的点+第三象限递...原创 2017-08-15 19:16:18 · 520 阅读 · 0 评论 -
CF#460 div2 E - 费马小+逆元
解题思路:根据费马小定理可以将a^n变为a^(n%(p-1)),那么n丶范围就变成了0-(p-2),那么原式就可以化为(i+k(p-1))a^i,k为非负整数,i就是取余后的数,那么问题就变成当k取什么值时,这个式子对p取模会为b。我们不妨首先去找最小的k是多少,设a^i的逆元c,t = b*c%p,那么i+k(p-1) == t + jp,k和j都是非负整数,当i==t时,k=0;当i>t...原创 2018-03-04 16:30:21 · 190 阅读 · 0 评论 -
hdu 5812 - 数论
题目链接:点击打开链接解题思路:dis(x,y) == g(x/gcd(x,y)) + g(y/gcd(x,y)),g(x)就是x最多分解出多少个质数的乘积数,那么我们枚举x个约数个数,然后在集合中找出一个数y使得它是这个约数的倍数,且g(y)尽量小,这个用一个multiset就可以解决问题了。#include<bits/stdc++.h>using namespace std;c...原创 2018-03-05 22:47:18 · 158 阅读 · 0 评论 -
UVA - 11752 数论
解题思路:任意的一个次方数(既可以表示为p^k的数,k,p>1整数,)都可以化成底数是一个非次方数,则指数做出相应改变即可。那么一个数是否是Super Power Numbers就看他是不是一个次方数,让他的底数变成非次方数,然后看其相应指数是非质数就可以了。因为最小非质数(除了1)就是4了,那么p的取值其他最大就是1e5就够了,我们可以通过找出1e5之内的质数,然后再根据要求求得Super...原创 2018-04-12 22:17:27 · 163 阅读 · 0 评论 -
CF 975E - 求质心+角度(数学)
解题思路:质心:一般的质心公式是:X = (x1+x2+x3+..+xn)/n,Y = (y1+y2+y3+...+yn)/n,但是这得是平均的多边形精度才是正确的.求任意多边形质心步骤1.将多边形划分为n-2个三角形根据上面的公式求得每个三角形的质心2.根据叉积求每个三角形的面积3.质心:X = (x1*m1+x2*m2+x3*m3+...+xn-2*mn-2)/...原创 2018-05-11 23:40:26 · 613 阅读 · 0 评论 -
CF - 975D 数学推导
解题思路:如果两个点在某一个时刻相遇过那么就有一个时刻k使得x1+k*Vx1 = x2 + k*Vx2 ①y1+k*Vy1 = y2 + k*Vy2 ②又有y = ax+b,代入②中得 ax1+k*Vy1 = ax2+k*Vy2 ③a*① - ③ 得 a*Vx1 - Vy1 = a*Vx2 - Vy2所以满足上面条件的两个点肯定可以相遇,另外需要注意的是当Vx1=...原创 2018-05-12 12:21:26 · 257 阅读 · 0 评论 -
Codeforces 982E - 扩展欧几里得
解题思路:考虑当质点移动轨迹的直线斜率为1的时候,有轨迹方程 y = x + c,显然把原先起点x1,y1代入就可以求出c的值.将质点的反弹等价于直线轨迹(由对称性质可得)。由x - y = -c得,要使得质点可以从顶角出去就等价于质点的直线轨迹会经过一点(a*n,b*m),代入方程得a*n - b*m = -c,要使方程有解gcd(n,m) | c, c = k*gcd(n,m),根据扩展欧几里...原创 2018-06-01 17:43:19 · 772 阅读 · 0 评论 -
牛客网暑期ACM多校第三场G - 数论
题目链接:点击这里 解题思路:处理这个问题之前我们先来考虑更简单的问题:在长度为n的连续块上有m种染色颜料,而且距离小于等于k的块颜色不能相同的染色数是多少?首先我们知道如果m<k,那么肯定无解。那么染色方案数为:m*(m-1)*(m-2)*(m-3)*...*(m-k+1)*(m-k+1)*(m-k+1)....到第k块时它就会受到前面k-1块的限制,必须两两不...原创 2018-08-04 22:34:03 · 212 阅读 · 0 评论 -
hdu 6333 - 数论+莫队
题目链接:点击这里解题思路:另S(n,m) = c(n,0)+c(n,1)+c(n,2)+...+c(n,m)那么S(n,m) = S(n,m-1) + c(n,m)又c(n+1,1) + c(n+1,2)+...+c(n+1,m) = S(n,m)+c(n,1)+c(n,2)+c(n,3) +...c(n,m-1)->由c(n+1,k) = c(n,k) +c(n,k...原创 2018-08-05 11:39:14 · 258 阅读 · 0 评论 -
【51Nod 1184】第N个质数
Description第1个质数是2,第3个质数是5,给出一个数N,求第N个质数。Solution很明显这个要二分答案。 现在的主要问题就是求f[i]表示i里面有多少个质数。 这里可以用个非正式的洲阁筛。 设 f[i]表示i以内有多少个质数 p[i]表示第i个质数 g[i][j]表示前i个数不被p[1...j]整除的数有多少个 那么先来看看f,首转载 2017-05-29 15:02:37 · 920 阅读 · 0 评论