- 博客(36)
- 收藏
- 关注
原创 2022-2-26 个人排位赛1
2022-2-26 个人排位赛1A An (Almost) Perfect Match没读,不知道B Good Coin Denomination题意给定一个上升序列,问这个序列是否满足每个数都是前一个数的两倍多。第一个输入,多组样例数,每行先输入这个上升序列的个数,再输入上升序列的每个数。输入24 1 5 10 253 1 5 6 输出Denominations: 1 5 10 25Good coin denominations!Denominations: 1 5 6B
2022-02-27 19:44:02
306
原创 Codeforces Round #738 (Div. 2)
Codeforces Round #738 (Div. 2)A. Mocha and Math题意ttt组样例,给定一个长度为nnn的数组,可以对这个数组进行任意次操作,每次操作时选取一个区间[l,r][l,r][l,r],对于所有i∈[0,r−l]i\in[0,r-l]i∈[0,r−l],将这个区间内的al+ia_{l+i}al+i变为al+i&ar−ia_{l+i} \& a_{r-i}al+i&ar−i,最小化这个数组中的最大值,输出这个最大值。1≤t≤100,1
2021-08-16 20:07:50
242
原创 Contest - 2021-07-12 个人排位赛1
A Awkward Digits题意给你一个数n 的二进制表示和三进制表示,二进制表示和三进制表示中都有一个数错误,让你求原来的n是什么。其中 0<=n<=1e90<=n<=1e90<=n<=1e9Solution暴力枚举二进制数中的某一位错误,三进制数中的某一位错误,将其修正后,看看二进制数和三进制数是否相等,若相等,转换为十进制得到答案。(这个方法需要较多的特判)暴力枚举二进制数中的某一位错误,改正后转化为三进制,与原来的三进制数比较,看其是否只有一位不同
2021-07-25 10:59:12
207
原创 光速幂板子
光速幂时间复杂度O(T+sqrt(m))(T是询问次数,m是模数大小)s=sqrt(p) p是模数大小ax≡axs∗s+x%smod ps=sqrt (p)\ p是模数大小\\a^x\equiv a^{\frac{x}{s}*s+x\%s} mod \ ps=sqrt(p) p是模数大小ax≡asx∗s+x%smod p#include<bits/stdc++.h>using namespace std;const int mod = 1
2021-05-29 18:42:05
360
原创 杜教筛(推导方法)
杜教筛求积性函数的前缀和O(n34)O(n^{\frac{3}{4}})O(n43),预处理后的时间复杂度O(n23)O(n^{\frac{2}{3}})O(n32)一般的推导过程(f∗g)(n)=g(d)f(nd)(f*g)(n)=g(d)f(\frac{n}{d})(f∗g)(n)=g(d)f(dn)是两个数论函数的卷积∑i=1n(f∗g)(i)=∑i=1n∑d∣ig(d)f(id)=∑d=1n∑d∣ig(d)f(id)=∑d=1ng(d)∑d∣if(id)=∑d=1ng(d)∑i=1⌊nd
2021-03-18 13:09:13
116
原创 Euklid
Euklid题意:定义一个函数如下:R(a,b)={R(b,a)if a<bR(⌊ab⌋,b)if a>=b>1aif a>=b=1R(a,b)=\begin{cases}R(b,a)\quad if \ a<b\\ R(\lfloor\frac{a}{b}\rfloor,b)\quad if\ a>=b >1\\ a \quad if\ a>=b=1\end{cases}R(a,b)=⎩⎪⎨⎪⎧R(b,a)i
2021-03-16 16:09:31
197
原创 Needle(FFT)
Needle题意:有三条栅栏,相邻之间的栅栏距离为1 unit,每条栅栏上都有若干个点(点的横坐标已知),问有多少中穿过栅栏的方案。Solution:记第一个栅栏上的点为a[i],第二个为b[j],第三个为c[k]根据几何的性质(相似性质)可知,若一个针能穿过三个栅栏,那么a[i]+c[k]=2*b[j],若是暴力枚举,肯定会Tle,所以我们要将其转换为多项式的乘法,利用FFT去求解。∑i=1nu∑j=1nm∑k=1nl[a[i]+c[k]=2∗b[j]]=∑i=1nu∑j=1nm∑k=1nl[
2021-03-16 15:20:19
146
原创 Sjekira(逆向思维+带权并查集)
Sjekira题意:给了你n个点权,n-1条边(题目保证这个图是棵树),问你将这n-1条边都砍掉的花费和最小是多少。砍掉一条边的花费是这条边所连的两个联通块最大的点权之和。Solution:因为要使最后砍完n-1条边之后的花费最小,可以贪心的知道,每次都是先将点权最大的点所连的边先砍掉,这样能够保证点权大的点被用到的次数尽可能的少。因此每次都先砍掉点权最大的点所连的边,然后对这条边的另一个联通块(即与点权最大的点所连的边的另外一个联通块)求一下点权最大,每次都重复这样的操作(删除的边不用再重复删除
2021-03-15 13:41:39
201
原创 补题清单
Contest - 2021-03-10 个人排位赛1A-Marathon IIIB-Piggy BackC-Cow Jog IIID-Learning by ExampleE-CrosswordsF-Marathon IG-Marathon IIH-Cow Jog II-Guard MarkJ-Cow Jog IIContest - 2021-03-11 个人排位赛2A-Cow Routing IB-StampedeC-Cow Routing IID-Meeting Time
2021-03-13 19:56:58
352
原创 最小圆覆盖(板子)
当点的顺序被打乱:时间复杂度:O(N)O(N)O(N)空间复杂度:O(N)O(N)O(N)否则,时间复杂度可能为O(N3)O(N^3)O(N3)#include<bits/stdc++.h>using namespace std;const int N=5e3+10;const double eps=1e-12;double R;int n;struct node{ double x,y;}point[N],O;double getDistance(node p)/
2021-03-09 16:24:52
96
原创 A Very Easy Math Problem(莫比乌斯反演)
A Very Easy Math Problem题意:给定n,x,kn,x,kn,x,k,求解:∑a1=1n∑a2=1n...∑ax=1n(∏j=1xajk)f(gcd(a1,a2,...,ax))∗gcd(a1,a2,...,ax)\sum_{a_1=1}^{n}\sum_{a_2=1}^{n}...\sum_{a_x=1}^{n}(\prod_{j=1}^{x}a_{j}^{k})f(gcd(a_1,a_2,...,a_x))*gcd(a_1,a_2,...,a_x)a1=1∑na2=1
2021-03-03 20:38:40
199
2
原创 phi and phi(莫比乌斯反演+公式)
phi and phi题意:求ans(n)=∑i=1n∑j=1nφ(ij)φ(gcd(i,j))ans(n)=\sum_{i=1}^{n}\sum_{j=1}^{n}\varphi(ij)\varphi(gcd(i,j))ans(n)=∑i=1n∑j=1nφ(ij)φ(gcd(i,j))Solution:ans(n)=∑i=1n∑j=1nφ(ij)φ(gcd(i,j))=∑i=1n∑j=1nφ(i)φ(j)gcd(i,j)=∑k=1n∑i=1n∑j=1nφ(i)φ(j)k[gcd(i,j)=k]
2021-03-02 12:54:16
324
原创 P3327 [SDOI2015]约数个数和 (莫比乌斯反演+公式)
P3327 [SDOI2015]约数个数和题意:设d(x)为x的约数个数,给定n,mn,mn,m,求∑i=1n∑j=1md(ij)\sum_{i=1}^{n}\sum_{j=1}^{m}d(ij)i=1∑nj=1∑md(ij)Solution:首先需知道一个推导结果:d(ij)=∑x∣i∑y∣j[gcd(x,y)=1]d(ij)=\sum_{x|i}\sum_{y|j}[gcd(x,y)=1]d(ij)=x∣i∑y∣j∑[gcd(x,y)=1]然后开始式子的推导:∑i=1n∑
2021-03-01 20:32:40
224
原创 简单题(莫比乌斯反演+公式)
简单题题意:求:∑i=1n∑j=1mgcd(i,j)φ(ij)μ(ij)\sum_{i=1}^n\sum_{j=1}^mgcd(i,j)\varphi(ij)\mu(ij)i=1∑nj=1∑mgcd(i,j)φ(ij)μ(ij)多组数据。为了减小输出大小,你只需输出上式模2322^{32}232的值Solution:首先知道一些函数的特点:φ(ij)=φ(i)φ(j)gcd(i,j)φ(gcd(i,j))μ(ij)=μ(i)μ(j)[gcd(i,j)=1]\varphi(ij)=\
2021-02-28 20:04:54
154
原创 P3172 [CQOI2015]选数(莫比乌斯反演+杜教筛)
P3172 [CQOI2015]选数题意给定区间[L,H],区间内n个数的最大公约数为k的方案书有多少个。即求∑a1=LH∑a2=LH...∑an=LH[gcd(a1,a2,...,an)=k]\sum_{a_1=L}^H\sum_{a_2=L}^H...\sum_{a_n=L}^H[gcd(a_1,a_2,...,a_n)=k]a1=L∑Ha2=L∑H...an=L∑H[gcd(a1,a2,...,an)=k]Solution∑a1=LH∑a2=LH...∑an=LH[gc
2021-02-15 20:11:04
96
原创 小x的奇遇-adventure
小x的奇遇-adventure题意:给定函数f(n),g(n),求Gk(n)G_k(n)Gk(n)f(n)={1,n=1∑i=1n−1[gcd(i,n−i)==1],n>1f(n)=\begin{cases}1,n=1\\\sum_{i=1}^{n-1}[gcd(i,n-i)==1],n>1\end{cases}f(n)={1,n=1∑i=1n−1[gcd(i,n−i)==1],n>1g(n)=∑d∣nf(nd)g(n)=\sum_{d|n}f(\frac{n}{
2021-02-14 23:02:37
528
2
原创 P5431 【模板】乘法逆元2
P5431 【模板】乘法逆元2题意:Solution:这题主要是学一个想法。si=a1∗a2∗...∗ai1si=1a1∗a2∗...∗ai1si−1=1si∗ai1ai=si−1sis_i=a_1*a_2*...*a_i \\\frac{1}{s_i}=\frac{1}{a_1*a_2*...*a_i} \\\frac{1}{s_{i-1}}=\frac{1}{s_i}*a_i \\\frac{1}{a_i}=\frac{s_{i-1}}{s_i}si=a1∗a2∗...∗ai
2021-02-10 22:15:31
415
1
原创 P3811 【模板】乘法逆元
P3811 【模板】乘法逆元O(n)求1~n的逆元#include<bits/stdc++.h>using namespace std;typedef long long ll;int n,p;int inv[3000005];int main(){ scanf("%d%d",&n,&p); inv[1]=1; printf("1\n"); for(int i=2;i<=n;i++) { inv[i]=
2021-02-10 21:59:57
91
原创 P1390 公约数的和(莫比乌斯反演)
P1390 公约数的和题意:给定n,求∑i=1n∑j=i+1ngcd(i,j)\sum_{i=1}^{n}\sum_{j=i+1}^{n}gcd(i,j)i=1∑nj=i+1∑ngcd(i,j)其中gcd(i,j)表示i和j的最大公约数。Solution:法一:∑i=1n∑j=i+1ngcd(i,j)=∑d=1nd∑i=1n∑j=i+1n[gcd(i,j)=d]=∑d=1nd∑i=1n∑j=1n[gcd(i,j)=d]−∑i=1n∑j=ii[gcd(i,j)=d]2=∑d=1nd∑i=
2021-02-10 21:19:41
180
原创 P2522 [HAOI2011]Problem b (莫比乌斯反演)
P2522 [HAOI2011]Problem b题意:n个询问,在a≤x≤b,c≤y≤da\le x\le b, c \le y \le da≤x≤b,c≤y≤d范围内,满足gcd(x,y)=k的数对有多少个。Solution:反演过程法一:∑x=ab∑y=cd[gcd(x,y)=k]=∑x=ab∑y=cd∑k∣gcd(x,y)[gcd(xk,yk)=1]=∑x=akbk∑y=ckdk[gcd(x,y)=1]=∑x=akbk∑y=ckdk∑d1∣gcd(x,y)μ(d1)=∑d1=1min(b
2021-02-09 22:37:33
145
原创 zjnu_12_13
zjnu_12_13A-August题意:求给定曲线所包围的面积solution:求积分问题。但是好像数方格也能过。(x轴以下正好左半边能跟右半边能完整拼成一个矩形,x轴以上可以拼成一个圆)∫arcsin(x)dx=xarcsinx+1−x2+C\int{arcsin(x)dx=xarcsinx+\sqrt{1-x^2}+C}∫arcsin(x)dx=xarcsinx+1−x2+C这边只求右下部分面积,上部分就是半圆的组合,左下和右上面积相同。S=∫02a0−2bπ(arcsin(x−aa
2020-12-13 20:03:27
258
原创 ZJNU-2020-12-11
ZJNU-2020-12-11A-ArrayB-Building BlocksC-Cats题意:构造一个长度为n的数组。任意两只拥有相同高度的猫不能住在相邻的猫舍,并且他们之间的的猫的最小高度不能这两只相同高度的猫。solution:12 1 23 2 3 1 3 2 3这样构造下去。D-Delete Prime题意:给定一个长度为n的数组。每伦将1和素数位置的数取出放到另一个数组中。然后将剩下的下标改变,但数字不变,继续取1和素数位置的数取出的操作。问1 n k,求值为k的
2020-12-12 22:21:12
283
原创 近几年ACM/ICPC区域赛铜牌题(1) [Cloned]
近几年ACM/ICPC区域赛铜牌题(1) [Cloned]A-StringB-Little Tiger vs. Deep MonkeyC-Hard Code题意:给你一个字符串,n,m,输出n行,每行m个字符(字符串分割)。#include<bits/stdc++.h>using namespace std;int t;string s;int n,m;int main(){ cin>>t; while(t--) { c
2020-12-12 21:57:02
1657
1
原创 2016ICPC沈阳站 [Cloned]
2016ICPC沈阳站 [Cloned]A-Thickest Burger题意:给了你两种肉的厚度,问加三片肉的最大厚度是多少(不允许加三片相同的肉)#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int,int>P;int t,a,b;int main(){ scanf("%d",&t); while(t--) {
2020-12-10 19:40:44
190
1
原创 ICPC2016 青岛 [Cloned]
ICPC2016 青岛 [Cloned]A-Relic Discovery#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int,int>P;int n,t;int a,b;int res=0;int main(){ scanf("%d",&t); while(t--) { scanf("%d",&n)
2020-12-10 19:08:57
127
原创 ZJNU-12-06 组队赛
ZJNU-12-06 组队赛A-Simple Calculator题意:给了两个数x,y。现在给你两个按钮,按钮A将x+1,按钮B将x的符号翻转,问最少要多少次操作,使x=y。#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int,int>P;int x,y;int main(){ scanf("%d%d",&x,&y); i
2020-12-08 22:35:15
131
原创 ZJNU-2020-12-05 组队赛
ZJNU-2020-12-05 组队赛A-Shik and Stone题意:给了一个n,m的矩阵,给出从左上到右下的路径,用#表示,这个路径是由上下左右四个方向都可以行走,现在问只向右和下行走能否完全覆盖给定的路径。#include<bits/stdc++.h>using namespace std;const int mod=1e9+7;typedef long long ll;int n,m;char tu[10][10];int vis[10][10];int mai
2020-12-07 23:09:49
308
原创 The 2017 ACM-ICPC Asia Shenyang Regional Contest [Cloned]
The 2017 ACM-ICPC Asia Shenyang Regional Contest [Cloned]A-BBP FormulaB-BridgeC-Empty Convex PolygonsD-Defense of the AncientsE-Five-round Show HandF-Heron and His Triangle题意:给你一个n,让你求出满足t-1,t,t+1边长,并且面积是整数的三角形的最小的tsolution:打表,找规律打表程序#include&l
2020-12-07 16:54:24
208
原创 2019icpc徐州站 [Cloned]
2019icpc徐州站 [Cloned]A-CatB-Cats line upC-< 3 numbers题意:给你一个l,r的区间,问[l,r]区间内因子个数小于3的数的个数与区间长度的比值是否小于三分之一,如果是,输出yes,否则,输出nosolution:先算出l到r内质数的个数,有个板子。然后特判区间包含1的情况,因为1的因子个数也是小于3 的。#include <bits/stdc++.h>using namespace std;typedef long lon
2020-12-05 16:42:12
250
原创 ZJNU-2020-11-29 组队赛
ZJNU-2020-11-29 组队赛A-Sorted ArraysB-Hamiltonish PathC-Ants on a CircleD-Piling UpE-Placing SquaresF-Two Faced CardsG-Alice&BrownH-Alice in linear landI-DamJ-Simple KnapsackK-Ball ColoringL-Many Moves
2020-12-01 20:25:48
190
原创 2018年icpc徐州站 [Cloned]
2018年icpc徐州站 [Cloned]A-Rikka with Minimum Spanning Trees题意:给了一段代码用于生成数据,并且讲解了了如何进行最小生成树计数的过程solution:我们队是用最小生成树计数过的,然鹅大佬说这个数据范围这么大,肯定只能生成一个最小生成树,直接用Kruscal过了#include<bits/stdc++.h>using namespace std;#define INF 0x3f3f3f3ftypedef pair<int
2020-11-29 20:49:49
298
原创 The 2018 ICPC Asia Nanjing Regional Contest [Cloned]
The 2018 ICPC Asia Nanjing Regional Contest [Cloned]A-Adrien and Austin题意:给了你n个石子,编号从1到n,玩家要取最少一个最多k个连续编号的石子,求是先手赢,还是后手赢(不能操作即为输)solution:1、k==1时,判奇偶2、k>1时,n<3时,此时n<=k必定成立,先手必胜,n>=3时,将n个石子从中间取几个,使其两边变成完全一样的两堆,此时先手必胜。#include<bits/stdc
2020-11-29 20:24:35
153
原创 The 2018 ICPC Asia Shenyang Regional Contest [Cloned]
The 2018 ICPC Asia Shenyang Regional Contest [Cloned]
2020-11-28 23:42:13
217
原创 2018ICPC焦作
2018ICPC焦作A-Xu Xiake in Henan Province简单的输入输出模拟#include<bits/stdc++.h>using namespace std;#define INF 0x3f3f3f3ftypedef pair<int,int>P;typedef long long ll;int n;int a,b,c,d;int main(){ scanf("%d",&n); while(n--) {
2020-11-28 20:27:55
489
原创 补题清单
2020-07-06 个人赛一E:Meetings 思维F:Milk Pumping 贪心+dijk+并查集G:Mlik Vists lca/树链剖分/主席树H:Moortal Cowmbat 字符串处理+dpI:Greedy Pie Eaters 区间dp
2020-08-10 20:01:20
863
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人