G. Xor-MST(异或最小生成树)

G. Xor-MST思路异或最小生成树,这里采用了一种分治的方法来贪心求解最值:首先我们对所有的点权值从小到大排个序,从高位开始在中间找到一个这个位置上的0,10,10,1分界点分成两个集合,然后再通过递归的去求解两个集合。在递归的时候,对两个分开的集合,我们通过trietrietrie树去贪心的在两个集合连上一条边,把这条边加入我们的答案。为什么这样是对的:显然我们分成两个集合我们可以抵消掉高位的一大堆一样的东西,这个时候,我们可以保证我们的贪心策略是正确的。为什么我们要合并两个集合:假设_xor-mst
分类: 其他 发布时间: 08-07 10:52 阅读次数: 0

B Graph(异或最小生成树)

Graph思路图是联通的,并且加边的时候要保证环一定是异或值为0,所以我们可以保证从一个点到另一个点的路径异或值是不变的,这个时候就简单了,不就是一个异或最小生成树了嘛。我们只要预处理一下,任选一个点作为根节点去得到从这个点到其他点的路径异或值,然后再做一遍异或最小生成树即可。代码/* Author : lifehappy*/#pragma GCC optimize(2)#pragma GCC optimize(3)#include <bits/stdc++.h>#d_异或最小生成树
分类: 其他 发布时间: 08-07 10:52 阅读次数: 0

各种逆元推导

逆元求解一(费马小定理)ppp是一个质数,并且a%p≠0a \\% p \\not= 0a%p​=0,则有ap−1≡1(modp)a ^ {p - 1} \\equiv 1 \\pmod pap−1≡1(modp),ap−2≡a−1a ^ {p - 2} \\equiv a ^ {-1}ap−2≡a−1,即可得到逆元。int quic_pow(int a, int n, int mod) { int ans = 1; while(n) { if(n & 1) ans_逆元 推导
分类: 其他 发布时间: 08-07 10:52 阅读次数: 0

2020杭电多校(二) New Equipments(最小费用最大流)

New Equipments思路数据已经有提示了b∗b<=4∗a∗cb * b <= 4 * a * cb∗b<=4∗a∗c,这意味着,每一个a,b,ca, b, ca,b,c构成的二元一次方程只与xxx坐标最多相交一次,所以我们对每一个a∗i∗i+b∗i+c=ya * i * i + b * i + c = ya∗i∗i+b∗i+c=y,在xxx坐标上对应的iii,只有唯一最值,因此我们只要对每一个方程,在它的对称轴两侧选点即可。问题是如何来维护这个最大值呢,显然的每一个方程只能对_多校2
分类: 其他 发布时间: 08-07 10:52 阅读次数: 0

中国剩余定理及其拓展

中国剩余定理实质就是解nnn次互质的方程,然后分别乘以他们的取模剩余量,然后相加得到答案,这里就不展开叙述。typedef long long ll;const int N = 1e3 + 10;int a[N], b[N], n;void exgcd(ll a, ll b, ll &x, ll &y) { if(!b) { x = 1; y = 0; return ; } exgcd(b, a % b, x, y); ll temp = x; x = y;
分类: 其他 发布时间: 08-07 10:52 阅读次数: 0

BSGS及其拓展

BSGS介绍这是一个求解ax≡b(modp)a ^ {x} \\equiv b \\pmod pax≡b(modp),的方法。并且ppp是质数,a,pa, pa,p互质,费马小定理可知,这个式子有周期性,我们一般取m=sqrt(p)m = sqrt(p)m=sqrt(p),假设x=i∗m+j,0<=i,j<=mx = i * m + j, 0 <= i, j <= mx=i∗m+j,0<=i,j<=m,则有ai∗m+j≡b(modp)a ^ {i * m + j} \\
分类: 其他 发布时间: 08-07 10:52 阅读次数: 0

2019牛客暑期多校训练营(第五场)C generator 2 (BSGS)

2019牛客暑期多校训练营(第五场)C generator 2思路x0=x0x_0 = x_0x0​=x0​x1=a∗x0∗bx_1 = a * x_0 * bx1​=a∗x0​∗bx2=a∗x1+b=a2∗x0+a∗b+bx_2 = a * x_1 + b = a ^{2} * x_0 + a * b + bx2​=a∗x1​+b=a2∗x0​+a∗b+b容易发现后项是一个等比数列求和xn=anx0+b(1−an)1−ax_n = a ^ {n} x_0 + \\frac {b (1 - a
分类: 其他 发布时间: 08-07 10:52 阅读次数: 0

P2303 [SDOI2012] Longge 的问题

P2303 [SDOI2012] Longge 的问题思路我们显然可以枚举每一对数的gcdgcdgcd进行求解,进而我们有如下推导:=>∑i=1ngcd(i,n)=>\\sum _{i = 1} ^ {n} gcd(i, n)=>i=1∑n​gcd(i,n)=>∑d∣nd∑i=1n(gcd(i,d)==d)=>\\sum _{d \\mid{n}} d \\sum _{i = 1} ^ {n} (gcd(i, d) == d)=>d∣n∑​di=1∑n​(gcd(i,d)
分类: 其他 发布时间: 08-07 10:52 阅读次数: 0

Xor Path

Xor Path思路先是看错题目,以为是所有的路径异或值的和,然后好像用了个假的print函数,一直wa,,,既然是异或,那么当一个点出现的次数是偶数次的时候它会被自己异或成零,也就是队整体的答案没有贡献度,所以我们只要统计有多少条路经过了这个点就行了。我们得到一个节点的每一个儿子的节点数量,然后再剩下不是当前节点中选择一个节点,两个建立一条边,计算得到当前节点的儿子连儿子构成的最短路对这个点的贡献度,然后再加上这个点与其儿子链接的贡献度即可,如果是奇数则异或上我们的答案,否则这个点将会对答案没有贡献
分类: 其他 发布时间: 08-07 10:52 阅读次数: 0

SP5971 LCMSUM - LCM Sum

SP5971 LCMSUM - LCM Sum思路∑i=1nlcm(i,n)\\sum_{i = 1}^{n}lcm(i, n)i=1∑n​lcm(i,n)=>∑i=1ningcd(i,n)=> \\sum_{i = 1}^{n}\\frac{i n}{gcd(i, n)}=>i=1∑n​gcd(i,n)in​=>n∑i=1nigcd(i,n)=> n\\sum_{i = 1}^{n}\\frac{i}{gcd(i, n)}=>ni=1∑n​gcd(i,n)i​我们按照
分类: 其他 发布时间: 08-07 10:52 阅读次数: 0

欧拉函数的性质及其证明

欧拉函数ppp是素数,则有ϕ(p)=p−1\\phi(p) = p - 1ϕ(p)=p−1证明:显然。ppp是素数,n=pkn = p ^ kn=pk,则ϕ(n)=pk−pk−1\\phi(n) = p ^ k - p ^ {k - 1}ϕ(n)=pk−pk−1证明:[1,n][1, n][1,n]内,ppp的约数有p,2p,3p,4p……(pk−1−1)pp, 2p, 3p, 4p……(p^{k - 1} - 1)pp,2p,3p,4p……(pk−1−1)p个,所以ϕ(n)=pk−1−(pk_欧拉函数的性质证明
分类: 其他 发布时间: 08-07 10:52 阅读次数: 0

小A的最短路

小A的最短路思路树上问题求两个点的最短距离,显然能用lcalcalca来进行lognlog_nlogn​的查询,引入了两个无边权的点,所以我们的路劲就可以规划成三种x−>y,x−>u−>v−>y,x−>v−>u>−yx -> y, x -> u -> v -> y, x -> v -> u >- yx−>y,x−>u−>v−>y,x−>v−>u>−y,只要在这三个当中取一个最小值
分类: 其他 发布时间: 08-07 10:52 阅读次数: 0

HDU 2588 GCD(欧拉函数)

GCD思路题目要求,对于给定的n,mn, mn,m要求有多少数∑i=1ngcd(i,n)>=m\\sum _{i = 1} ^{n} gcd(i, n) >= m∑i=1n​gcd(i,n)>=m我们可以对这个式子进行化简,通过枚举d=gcd(i,n)d = gcd(i, n)d=gcd(i,n)有∑d∣n∑i=1ngcd(i,d)==d\\sum _{d \\mid n} \\sum _{i = 1} ^{n} gcd(i, d) == dd∣n∑​i=1∑n​gcd(i,d)==d=
分类: 其他 发布时间: 08-07 10:52 阅读次数: 0

HDU 4983 Goffi and GCD(欧拉函数)

Goffi and GCD思路题目要求∑i=1n∑j=1ngcd(n−i,n)gcd(n−j,n)==nk\\sum_{i = 1} ^{n} \\sum _{j = 1} ^{n} gcd(n - i, n)gcd(n - j, n) == n ^ {k}∑i=1n​∑j=1n​gcd(n−i,n)gcd(n−j,n)==nk显然有gcd(n−i,n)<=ngcd(n - i, n) <= ngcd(n−i,n)<=n对于k>=3k >= 3k>=3直接可以特判000
分类: 其他 发布时间: 08-07 10:52 阅读次数: 0

51nod 1188 最大公约数之和 V2(欧拉函数)

1188 最大公约数之和 V2思路用欧拉函数可以化简式子如下∑i=1n∑j=1i−1gcd(i,j)\\sum_{i = 1} ^{n} \\sum _{j = 1} ^{i - 1} gcd(i, j)i=1∑n​j=1∑i−1​gcd(i,j)=∑i=1n∑j=1igcd⁡(i,j)−(n+1)(n)2= \\sum_{i = 1} ^{n} \\sum_{j = 1} ^{i} \\gcd(i, j) - \\frac{(n + 1)(n)}{2}=i=1∑n​j=1∑i​gcd(i,j)−2(n+1)(
分类: 其他 发布时间: 08-07 10:52 阅读次数: 0

牛客小白月赛12:月月给华华出题(欧拉函数)

月月给华华出题思路∑i=1nigcd(i,n)\\sum_{i = 1} ^{n} \\frac{i}{gcd(i, n)}i=1∑n​gcd(i,n)i​=∑d∣n∑i=1nid(gcd(i,d)==d)= \\sum _{d \\mid n} \\sum_{i = 1} ^{n} \\frac{i}{d} (gcd(i, d) == d)=d∣n∑​i=1∑n​di​(gcd(i,d)==d)=∑d∣n∑i=1ndi(gcd(i,d)==1)= \\sum_{d\\mid n} \\sum_{i = 1} ^{\\
分类: 其他 发布时间: 08-07 10:52 阅读次数: 0

购物(DP)

购物思路最优值问题,我们考虑dpdpdp,dp[i][j]dp[i][j]dp[i][j]表示前iii天已经购买了jjj个糖果的花费最小值,显然dp[i][j]dp[i][j]dp[i][j]可以从dp[i−1][k]dp[i - 1][k]dp[i−1][k]转移过来,具体转移过程看代码注释部分吧。对于答案我们显然是在第nnn天刚好购买了nnn个糖果,这样是最优的,对于每一天购买糖果,我们一定是优先选择花费更小的,这样才能保证最优值.代码/* Author : lifehappy*/#p
分类: 其他 发布时间: 08-07 10:52 阅读次数: 0

mobius初步

求 ∑i=1n∑j=1m(gcd(i,j)==1)\\sum_{i = 1} ^{n} \\sum_{j = 1} ^{m} (gcd(i, j) == 1)∑i=1n​∑j=1m​(gcd(i,j)==1)我们引入一个知识∑d∣nμ(d)=(n==1)\\sum_{d \\mid n} \\mu(d) = (n == 1)∑d∣n​μ(d)=(n==1)所以gcd(i,j)=∑d∣gcd(i,j)μ(d)gcd(i, j) = \\sum_{d \\mid gcd(i, j)} \\mu(d)gcd(i,j)=∑..
分类: 其他 发布时间: 08-07 10:52 阅读次数: 0

P2260 [清华集训2012]模积和,P2834 能力测验(二维除法分块)

P2260 [清华集训2012]模积和推导过程我们假定n<=mn <= mn<=m∑i=1n∑j=1m(nmod  i)(mmod  j),i≠j\\sum_{i = 1} ^{n} \\sum_{j = 1} ^{m} (n\\mod i)(m \\mod j), i \\not= ji=1∑n​j=1∑m​(nmodi)(mmodj),i​=j=∑i=1n∑j=1m(nmod  i)(mmod  j)−∑k=1n(nmod  k)(mmod  k) = \\sum_{i = 1} ^{
分类: 其他 发布时间: 08-07 10:52 阅读次数: 0

P1447 [NOI2010]能量采集(mobius反演)

P1447 [NOI2010]能量采集式子化简显然题目就是要我们求∑i=1n∑j=1m2gcd(i,j)−1\\sum_{i = 1} ^{n} \\sum_{j = 1} ^{m} 2gcd(i, j) - 1∑i=1n​∑j=1m​2gcd(i,j)−1=2∑i=1n∑j=1mgcd(i,j)−nm = 2\\sum_{i = 1} ^{n} \\sum_{j = 1} ^{m} gcd(i, j) - nm=2i=1∑n​j=1∑m​gcd(i,j)−nm转化为我们要求∑i=1n∑j=1mgcd(i,
分类: 其他 发布时间: 08-07 10:52 阅读次数: 0