自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

转载 洛谷 3768简单的数学题(莫比乌斯反演+杜教筛)

题目链接\(Description\)求\[\sum_{i-1}^n\sum_{j=1}^nijgcd(i,j)\mod p\]\(n<=10^{10}\)\(Solution\)\[\sum_{i-1}^n\sum_{j=1}^nijgcd(i,j)\]\[=\sum_{d=1}^nd^3\sum_{i=1}^{n/d}\sum_{j=1}^{n/d}ij[gcd(...

2019-03-18 16:38:00 169

转载 LOJ#6229. 这是一道简单的数学题(莫比乌斯反演+杜教筛)

题目链接\(Description\)求\[\sum_{i=1}^n\sum_{j=1}^i\frac{lcm(i,j)}{gcd(i,j)}\]答案对\(10^9+7\)取模。\(n<=10^9\)\(Solution\)以前做的反演题都是\(j\)枚举到\(n\),但是现在\(j\)只枚举到\(i\)就非常难受,考虑怎么求\(\sum_{i=1}^n\sum_{...

2019-03-15 10:34:00 225

转载 BZOJ 4555:[TJOI2016&HEOI2016]求和(第二类斯特林数+NTT)

题目链接\(Description\)求\[\sum_{i=0}^n\sum_{j=0}^iS(i,j)2^jj!\]对998244353取模后的结果。\(n<=10^5\)\(Solution\)\(S(i,j)\)在这里就非常碍事,怎么把它写成一个多项式的形式呢?第二类斯特林数还有一种容斥的写法\[S(n,m)=\frac{1}{m!}\sum_{i=0}^...

2019-02-24 10:36:00 119

转载 BZOJ 4816[SDOI2017]数字表格(莫比乌斯反演)

题目链接\(Description\)用\(f_i\)表示\(fibonacci\)数列第\(i\)项,求\(\prod_{i=1}^{n}\prod_{j=1}^{m}f[gcd(i,j)]\)。\(T<=10^3,n,m≤10^6\)\(Solution\)再来推式子(默认\(n<m\))\[\prod_{i=1}^{n}\prod_{j=1}^mf[gcd...

2019-01-29 15:54:00 124

转载 CF 900D Unusual Sequences

题目链接\(Description\)给定\(x,y\),求有多少个数列满足\(gcd(a_i)=x且\sum a_i=y\)。答案对\(10^9+7\)取模。\(1≤x,y≤10^9\)\(Solution\)\(y\)如果不是\(x\)的倍数,答案为\(0\)然后呢令\(y/=x\),问题就变成了求有多少个数列满足\(gcd(a_i)=1且\sum ai=y'\)如...

2019-01-26 08:08:00 143

转载 CF 852E Casinos and travel

题目链接\(Desccription\)给定一棵树,John从任意一个点开始,每次走向一个未到达过的点。每个点都可以有或没有赌场,每经过一个赌场心情都会反转,旅行开始前心情很好。问有多少种方案使得旅行结束后心情很好。\(n≤10^5\)\(Solution\)把题目抽象一下:每个点随机一个\(0/1\)的权值,随机选择一个点作为根,有多少种方案使得根节点到所有叶节点路径上...

2019-01-25 11:25:00 96

转载 BZOJ 2957: 楼房重建

题目描述/*思路非常巧妙的一道题 不难看出线段树维护的是区间内每个点与原点连线的斜率的最大值 考虑合并区间时怎么合并答案 左区间一定会被看到,右区间能被看到的一定大于左区间的最大值 所以可以查询右区间中大于左区间最大值的数的个数来向上合并 每次修改的复杂度为log^2n */#include<complex>#include<...

2018-12-12 14:41:00 94

转载 BZOJ 1511: [POI2006]OKR-Periods of Words

题目描述/*问题即求某一前缀A=XYZX的最小X的长度,可根据KMP中的nxt求出 但直接做会超时 考虑已经求过的某一串A是另一个串B的前缀,那么在求B的对答案的贡献时会重复一次求A的过程 所以可以在求完A之后更新A的nxt为求出X的位置,这样求B时就会直接跳到X的位置 */#include<complex>#include<cstd...

2018-10-30 22:27:00 106

转载 BZOJ 1801: [Ahoi2009]中国象棋

题目描述//每行每列最多放两个,可以讨论第i-1行到第i行的每一种情况 #include<complex>#include<cstdio>using namespace std;const int mod=9999973;const int N=101;int n,m;long long f[N][N][N];//f[i][...

2018-10-21 22:16:00 70

转载 BZOJ 1802: [Ahoi2009]checker

题目描述若有两个红格相邻   第一问的答案为0,所有位置上的棋子都可以通过在这两个格子上放棋子得到   第二设f[i]表示想让第i个格子上有棋子需要放的棋子数 若没有,第一问答案为偶数格子上白格的个数,第二问为偶数格子上红格的个数#include<complex>#include<cstdio>#include<cstring&gt...

2018-10-17 17:43:00 108

转载 Codeforces 526C.Om Nom and Candies

题目描述一个只有两个物品的背包问题,但是范围都是1e9,需要考虑根号或者log的复杂度。如果这两个物品中的某一个花费超过了根号C,那么我们可以直接枚举这件物品的数量,另一件物品的数量可以计算得出。若没有  假设 v1/c1>v2/c2 也就是v1*c2>v2*c1  假设第一件物品有c2件,也就是耗费了c1*c2的空间得到了v1*c2的价值,若用这c1*c...

2018-07-01 14:56:00 241

转载 洛谷 P4316绿豆蛙的归宿

题目描述记f[i]表示经过i号点的概率。那么点v从点u到达的概率=经过点u的概率/点u的出度。由于v可以由多个点走到,所以f[v]+=f[u]/out[u]。计算f的过程可以在拓扑中完成,同时可以记录走过这条边的期望,相加就是答案。#include<complex>#include<cstdio>using namespace std;...

2018-06-08 19:23:00 81

转载 Codeforces 280C. Game on Tree

题目描述初看每一个点被选它自己而被染色到的概率都是1/n,但仔细想想就会发现,某一个点对答案的贡献只与这个点有多少个祖先有关。因为如果这个点会被选到,当且仅当它的所有祖先都没有被选到(题目中说会将选到的点所在的整棵子树都染成黑色),所有每个点被选而被染色的概率为1/deep[i]。又因为每次选的代价为一,所以每个点对答案的贡献就是1/deep[i]。#include&...

2018-06-08 18:43:00 114

转载 洛谷 P2421 [NOI2002]荒岛野人

题目描述又是一道扩欧的题。要求一个最小的m使得Ci+Pi*x≡Cj+Pj*x mod m(i!=j) 在x在第i个人和第j个人的有生之年无解。也就是 (Pi-Pj)*x+m*y=Cj-Ci 在min(Li,Lj)上无解。题目限制了保证有解且m<=1e6,那么可以考虑枚举m,在暴力地对每个人进行判断。理论最差复杂度为1e6*n^2^log,但实际上远达不到这种情...

2018-06-07 20:37:00 76

转载 POJ 2115 C Looooops

题目描述题目要求就是求满足A+C*x≡B mod2^k,移向得C*x≡B-A mod 2^k,这也就变成了求解同余方程的问题,即求满足C*x+2^k*y=B-A的x和y。类似于 青蛙的约会 那道题,令a=C,b=2^k,r=Gcd(a,b),扩展欧几里得算法求的是满足ax+by=gcd(a,b)的解,所以最后的答案为x*(c/r)%(b/r)。#include&lt...

2018-05-20 20:11:00 71

转载 POJ 3292 Semi-prime H-numbers

题目描述考虑到H-素数的定义与素数类似,那么能否用一种类似于筛素数的方式筛出所有的H-素数呢?假设i是H-素数,那么i*(4*n+1)一定是H数且不是H-素数。那么就可以筛出所有的H-素数,进而求出所有的H-合成数。#include<complex>#include<cstdio>using namespace std;const ...

2018-05-20 16:17:00 98

转载 [网络流24题]负载平衡问题(费用流)

题目描述要求最后所有仓库的库存相同,那么就可以想到求出这个值,也就是仓库库存量的平均值delta。如果某一个仓库的库存量x大于这个平均值,那么就从源点向这个店连一条流量为x-delta的边,表示这个仓库可以向外搬运的货物数量,费用为0。反之,如果某一个仓库的存货量小于x这个平均值,就从这个店向汇点连一条流量为delta-x的边,表示这个仓库需要运来的货物数量,费用为0。再...

2018-05-13 21:45:00 92

转载 [网络流24题]骑士共存问题

题目描述二分图最大点独立集问题。要求在棋盘上放最多互不攻击的骑士,即在棋盘中拿走最少的骑士,使得剩下的骑士互不攻击。黄格只能攻击红格,红格也只能攻击黄格,所以考虑建立二分图。源点向所有红格连流量为1的边,所有黄格向汇点连流量为一的边,再由红格向它能攻击到的黄格连流量为1的边,有障碍物的点不连边。每找到一条增广路,即从棋盘中拿走一个骑士,所以最后的答案就是总点数-障碍数...

2018-05-12 21:24:00 449

转载 POJ 3281 Dining

题目描述对牛进行拆点源点——食物——牛——饮料——汇点连边边的流量都为1,以保证每种食物、牛以及饮料对答案的贡献为1。#include<complex>#include<cstdio>using namespace std;const int INF=0x3f3f3f3f;const int N=407,M=1e4+7;st...

2018-05-12 18:02:00 65

转载 洛谷 1306斐波那契公约数

题目描述还是看了题解结论:gcd(f[n],f[m])=f[gcd(n,m)]  引理:gcd(f[n],f[n+1])=1  证明:利用辗转相减法:gcd(f[n],f[n+1])=gcd(f[n],f[n+1]-f[n])=gcd(f[n],f[n-1]),一直相减,最后得到gcd(f[n],f[n+1])=gcd(f[1],f[0])=1。证明:  设f[n...

2018-04-10 16:10:00 123

转载 洛谷 P2894 [USACO08FEB]酒店

题目描述用线段树维护三个值:区间最长空位长度,从左端点可以延伸的最长空位长度,从右端点可以延伸的最长空位长度。#include<complex>#include<cstdio>using namespace std;const int N=2e6+7;int n,m;int len[N],Max[N],maxl[N],maxr[N]...

2018-04-10 11:12:00 87

转载 [网络流24题]魔术球问题

题目描述将所有球看做点,在每根柱子上放球就是下边的点向上边的点连边,可以连边的条件是两球编号之和为完全平方数。再把这n跟柱子看做是n条路径,问题也就转换成了用n条路径覆盖所有的点,也就是最小路径覆盖问题。//最小路径覆盖数随着点数的增加不会递减,满足二分的性质,但是二分时要重新构图,所以不如直接顺序枚举答案,这样可以利用上次的残量网络,降低了复杂度。对于新枚举到的球,有两...

2018-04-09 21:51:00 114

转载 [网络流24题]飞行员配对方案问题

题目描述裸的二分图最大匹配,也可以用匈牙利算法解决。#include<complex>#include<cstdio>using namespace std;const int INF=0x3f3f3f3f;const int N=1e3+7;struct node{ int v,f,nxt;}e[N<<1...

2018-04-09 10:07:00 111

转载 [网络流24题]最小路径覆盖问题

题目描述对于一个路径覆盖会有两个性质:1.每个点属于且只属于一条路径;2.在每条路径中,除终点外,每个点只有一条边可以通向路径中的另外一个点。所以可以把每个点拆成两个点,一个是起始点,一个是目标点,建立二分图模型。二分图中的任何一种匹配都对应着一种路径覆盖方案。若匹配数为零,那么路径数=总点数,每增加一个匹配,就会减少一条路径,所...

2018-04-09 09:59:00 100

转载 洛谷 P1503鬼子进村

题目描述可以用平衡树维护被摧毁的点,每次询问就是找这个数的前驱和后继(数据很水暴力都能过)。#include<complex>#include<cstdio>using namespace std;const int N=5e4+7;int n,m,sz,rot;int fat[N],son[N][2],siz[N],key[N];...

2018-04-08 16:58:00 117

转载 BZOJ 3631: [JLOI2014]松鼠的新家

题目描述从出发点开始依次修改路径上的点权值,然后就是+1或-1的问题。#include<complex>#include<cstdio>using namespace std;const int N=3e5+7;struct node{ int v,nxt;}e[N<<1];int n,Enum,tim;...

2018-04-04 17:14:00 71

转载 洛谷 P2922 [USACO08DEC]秘密消息Secret Message

题目描述将所有的信息插到Trie树里,对每一条密码,都去已经建好的Trie树中找一次。若这条密码的长度比所有 是它的前缀的信息 的长度大,那么每次遇到完整的信息就统计一次答案;反之则需统计这条密码是多少条信息的前缀,用一个cnt[i]来记录在Trie树中经过i这个点的信息有多少。比较坑的地方是 会有相同的信息,所以还另需记录每条信息的数量。#include<...

2018-04-03 21:58:00 94

转载 洛谷 P1379 八数码难题

题目描述#include<complex>#include<cstdio>#include<algorithm>using namespace std;const int f[8][2]={{0,0},{0,1},{0,2},{1,2},{2,2},{2,1},{2,0},{1,0}};//各个数字对应的目标位置 ...

2018-04-01 21:14:00 91

转载 洛谷 P2363 马农

题目描述分别枚举两个矩阵?那样n^6太要命了。可以枚举两个矩形的交点 将交点看成原点,可以将整个区域分成四个象限,1与3对应,2与4对应 再枚举相对应的象限计算可以获得的利益,用hash判重 可枚举不同的象限时还要把hash清零,n^2次的memset就超时了。。。那怎么继续优化呢?可以用一个栈记录hash里增加的值,只把这些值清零就好了。#include&l...

2018-03-30 11:04:00 208

转载 BZOJ 2333: [SCOI2011]棘手的操作

题目描述真的是个很棘手的操作。。注意每删除一个点,就需要clear一次。#include<complex>#include<cstdio>using namespace std;const int N=3e5+7;int n,m,rot,add;//add记录所有节点增加的权值 int q[N<<1];inl...

2018-03-29 16:36:00 84

转载 洛谷 P1456Monkey King

题目描述要把打架的两堆猴子合并为一堆,查询的又是最大值,所以很容易想到可并堆。题目要求打完架后战斗力最大的猴子的战斗力要减半,但不能直接在堆中进行这个操作,因为战斗力减半后这只猴子不一定是战斗力最大的猴子了,所以要先把这只猴子从堆中删除,减半后再插入。#include<complex>#include<cstdio>#include<...

2018-03-29 08:12:00 106

转载 洛谷 P1231教辅的组成

题目描述/*s->练习册(1~b)->书(b+1~a+b)->答案(a+b+1~a+b+c)->t 但是可能会有多本练习册指向同一本书,这本书又可能会指向多本答案 这样每本书对答案的贡献就不只是1了,所以考虑对书进行拆点 s->练习册(1~b)->书(b+1~a+b)->(a+b+a~a+a+b)->答案(a+a+b...

2018-03-28 20:10:00 92

转载 #6085. 「美团 CodeM 资格赛」优惠券

题目描述用last[x]表示对x进行的上一次操作的位置,vis[x]表示x是否在大楼内。Splay维护'?'的位置。若x要进楼:1.若x已在楼内,则去找last[x]到i之间是否有'?',若有,则可以把这个'?'当做是上一个x出楼,反之则 出现错误。2.若x不在楼内,标记x在楼内。若x要出楼:1.若x在楼内,标记x不在楼内。2.若x不在楼内,相同的去找la...

2018-03-28 19:14:00 113

转载 #505. 「LibreOJ β Round」ZQC 的游戏

题目描述首先一定是让ZQC吃掉他能吃到的所有的球,这样才能尽可能的满足ZQC的质量是所有玩家中最大的。在满足某一个玩家的质量不会超过ZQC的情况下,让这个玩家吃掉尽可能多的球,让其他玩家吃掉的尽可能少所以由源点向每个玩家连流量为 ZQC的质量-该玩家的质量 的边。再由每个玩家向他能吃到的球连流量为 这个球的质量(或更大) 的边最后由球向汇点连流量为 该球的质量 的边,...

2018-03-23 17:55:00 132

转载 BZOJ 1878: [SDOI2009]HH的项链

题目描述num[i]表示在[l,r]内数字i的个数当区间变为[l±1,r]或,[l,r±1]的时候,num[i]由0变为1或由1变为0时答案才会变化#include<complex>#include<cstdio>#include<algorithm>using namespace std;const int N...

2018-03-15 17:57:00 77

转载 BZOJ 2038: [2009国家集训队]小Z的袜子(hose)

题目描述与 小B的询问 类似 对于一段区间[l,r],任选两个数构成排列的方案数A(r-l+1,2)=(r-l+1)*(r-l) 设num[i]为i在区间[l,r]内重复的次数,那么选出的两个数都是i的方案有num[i]*(num[i]-1)=num[i]2-num[i]种 那么在[l,r]选出相同的数的方案就有            sigma(num[i]2-num[i])=...

2018-03-14 21:10:00 67

转载 洛谷 P2709 小B的询问

题目描述/*显然询问的相邻两个区间左右移动的次数越少越好 那么可以考虑把询问的每个区间抽象成坐标系里的点 让点与点之间的曼哈顿距离最短,但是直接排序还是会超时,所以再加一个分块 */#include<complex>#include<cstdio>#include<algorithm>using namespac...

2018-03-14 17:42:00 70

转载 洛谷 P3979 遥远的国度

题目描述修改某条路径上的值以及询问子树的最小值都最树剖的基础操作,那么如何实现换根呢?考虑一下三种情况:1.rot=询问的子树x,答案就是整棵树的最小值 2.rot在x的子树里,只有rot到x这一条链上的的节点的子树会变 找到x在rot方向上的子节点,答案就是除去这棵子树的最小值 3.rot不在x的子树里,那么rot是谁对x的子树没有影响,答案不变那么就在询问时分类...

2018-03-08 21:52:00 86

转载 洛谷 P1516 青蛙的约会

题目描述两青蛙会相遇的条件[(x-y)+k(m-n)]%l=0 令a=m-n,b=l,c=x-y,所以(c+k*a)%b=0 -> aX+bY=c 方程有解,当且仅当c%Gcd(a,b)=0 令r=Gcd(a,b) 为什么(X*(c/r)%(b/r)+b/r)%(b/r)为最小解? 目标解aX+bY==c 有解的条件是c%r=0,也就是c=K*r 那么就办成了aX+bY=...

2018-03-08 21:45:00 56

转载 洛谷 P2717 寒假作业

题目描述/*求区间i(1<=i<=n)到j(i<=j<=n)的平均值大于k的区间个数 可以先对每个数减去k,再对新得到的数组求前缀和 如果sum[j]-sum[i-1]>=0,说明i到j区间的数的平均值大于等于k 移向得sum[j]>=sum[i-1],因为j>=i,所以j>i-1 也就是对sum求顺序对数了 ...

2018-03-04 21:34:00 155

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除