自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 洛谷试炼场P1120(搜索Ex)

题目:详见https://www.luogu.org/problemnew/show/P1120解题思路:深搜其实和枚举类似,但是加上剪枝,能让运算时间大大减小#include<bits/stdc++.h>using namespace std;int cnt,s[100],use[100],ct;bool cmp(int x,int y){ return x&gt...

2019-04-24 11:04:39 140

原创 HDU1512(左偏树,模板)

题意:有n只猴子,每只猴子一开始有个力量值,并且互相不认识,现有每次有两只猴子要决斗,如果认识,就不打了,否则的话,这两只都会从它们所认识的猴子中派出一只力量值最大的猴子出来,并且这只猴子的力量值会减半,在打过之后,这两只猴子所在的集体就都认识了。解题思路:左偏树裸题练习#include<bits/stdc++.h>#define N 100009using names...

2019-04-17 14:33:44 153

原创 P3377(左偏树,模板)

题意:如题,一开始有N个小根堆,每个堆包含且仅包含一个数。接下来需要支持两种操作:操作1: 1 x y 将第x个数和第y个数所在的小根堆合并(若第x或第y个数已经被删除或第x和第y个数在用一个堆内,则无视此操作)操作2: 2 x 输出第x个数所在的堆最小数,并将其删除(若第x个数已经被删除,则输出-1并无视删除操作)解题思路:裸的左偏树左偏树学习:https://blog.cs...

2019-04-16 12:49:47 351

原创 poj1740(博弈论,对称博弈)

题目:有若干堆石子,每一次需要从一堆石子中拿走一些,然后如果愿意的话,再从这堆石子中拿一些分给其它任意堆。不能操作的人负。解析:实际上如果n为偶数,我们就可以把ta们两两配对转换成只有两堆石子的情况按照石子数从小到大排序,两两配对成一组,组与组之间互不影响如果可以完美配对(配对后每一组都有两堆石子数相等),后手必胜如果不可以完美配对,先手可以将最多的变成和最少的相等然后...

2019-04-16 00:16:33 248

原创 HDU1848(SG,学习,模板)

题意:今天,又一个关于Fibonacci的题目出现了,它是一个小游戏,定义如下:1、这是一个二人游戏;2、一共有3堆石子,数量分别是m, n, p个;3、两人轮流走;4、每走一步可以选择任意一堆石子,然后取走f个;5、f只能是菲波那契数列中的元素(即每次只能取1,2,3,5,8…等数量);6、最先取光所有石子的人为胜者;假设双方都使用最优策略,请判断先手的...

2019-04-15 23:52:34 133

原创 hdu1527(威佐夫博弈,模型学习)

威佐夫博弈:有两堆各若干个物品,两个人轮流从任意一堆中取出至少一个或者同时从两堆中取出同样多的物品,规定每次至少取一个,至多不限,最后取光者胜利。结论:首先黄金比例:r=1.618 = (sqrt(5.0) + 1) / 2,则给定两组石头堆(n,m),假设n>m,则当(n-m)*r==m时,先手输。否则后手输#include<cstdio>#include<c...

2019-04-15 20:40:27 213

原创 HDU1846(巴什博奕,证明)

题意:两个顶尖聪明的人在玩游戏,有nn个石子,每人可以随便拿1−m1−m个石子,不能拿的人为败者,问谁会胜利解析:我们从最简单的情景开始分析当石子有1−m1−m个时,毫无疑问,先手必胜当石子有m+1m+1个时,先手无论拿几个,后手都可以拿干净,先手必败当石子有m+2−2mm+2−2m时,先手可以拿走几个,剩下m+1m+1个,先手必胜我们不难发现,面临m+1m+1个石子的人一...

2019-04-15 19:49:38 149

转载 斐波那契博弈

转自https://blog.csdn.net/dgq8211/article/details/7602807有一堆个数为n(n>=2)的石子,游戏双方轮流取石子,规则如下:1)先手不能在第一次把所有的石子取完,至少取1颗;2)之后每次可以取的石子数至少为1,至多为对手刚取的石子数的2倍。约定取走最后一个石子的人为赢家,求必败态。结论:当n为Fibonacci数的时候,先...

2019-04-15 19:29:46 106

原创 莫比乌斯反演题目总结

目前我碰到的莫比乌斯适用样例如下所示:1.与GCD一起出现,x 给定范围[1,b] ,y给定范围[1,d] 让你求有多少对这样的 (x,y)满足gcd(x,y)==k解法:设一下 F(d)为 有多少对(x,y)满足gcd(x,y)== d 的倍数 。 f(d)为有多少对(x,y)满足gcd(x,y)== d 。而F(d)特别...

2019-04-15 18:53:09 156

原创 HDU4746(莫比乌斯反演,分块加速)

题意:给出n, m, p,求有多少对a, b满足gcd(a, b)的素因子个数<=p,(其中1<=a<=n, 1<=b<=m)分析:设A(d):gcd(a, b)=d的有多少种 设B(j): gcd(a, b)是j的倍数的有多少种,易知B(j) = (n/j)*(m/j) 则由容斥原理得:(注:不同行的μ是不相同的,μ为莫比乌斯函数)...

2019-04-15 18:37:52 180

原创 hdu2509 Be the Winner (反尼姆博弈,好题)

题目大意:有n堆苹果,每堆Mi个。两人轮流取,每次可以从一堆苹果中取任意连续个苹果,最后取光者为输。Fra先下,问是否可以获胜。证明:需要特别说明一下:S2一定有办法转化为T2。自己稍微试试就明白了#include<bits/stdc++.h>using namespace std;const int N=109;int a[N];int main()...

2019-04-12 19:58:18 324

原创 HDU1695(莫比乌斯反演,线性筛初始化,模板)

题意:给你 a , b , c , d , k 五个值 (题目说明了 你可以认为 a=c=1) x 属于 [1,b] ,y属于[1,d] 让你求有多少对这样的 (x,y)满足gcd(x,y)==k。给你的时间是 3000 MS。 0 < a <= b <= 100,000, 0 < c <= d <= 100,000, 0 <= k <= 1...

2019-04-12 00:44:57 124

原创 莫比乌斯函数学习

莫比乌斯反演 假设f非常容易求得,但是g很难求,那么我们是不是可以通过f来求g呢?可以使用公式:推导详见https://blog.csdn.net/outer_form/article/details/50588307莫比乌斯函数的性质若d=1,则μ(d)=1 若d=p1∗p2∗p3∗p4∗..∗pn (p的次数都是1,且都是互异的质数) 那么μ(...

2019-04-11 19:40:58 132

原创 组合数求计算总结(模板)

一.一般粗暴法用普通的组合公式来算当求C(n,m)%MOD时容易超范围,因为这种方法计算有除法,不能边做边MOD.优点:复杂度O(n),缺点只能求n,m极小的情况。#include<bits/stdc++.h>#define ll long longusing namespace std;const ll MOD = 1e9 + 7;ll cal(i...

2019-04-11 09:16:03 1066

原创 三种求逆元总结(模板)

逆元定义:方程ax≡1(mod p),的解称为a关于模p的逆,当gcd(a,p)==1(即a,p互质)时,方程有唯一解,否则无解。一.扩展欧几里得求解证明如下:a*x + b*y = 1如果ab互质,才有解这个解的x就是a关于b的逆元y就是b关于a的逆元为什么呢?两边同时求余ba*x % b + b*y % b = 1 % ba*x % b = 1 % b...

2019-04-10 22:37:17 2061

原创 POJ1006(中国剩余定律)

题意:已知(n+d)%23=p; (n+d)%28=e; (n+d)%33=i ,求n 。解题思路:模板题tp=((tp-d)%M+M)%M;讲一下意义吧。(tp-d)%M距离d最近的差,再加上一个M,因为(x=x0+k*M)#include<cstdio>#include<cstring>#include<iostream>#define ...

2019-04-09 19:55:34 626

原创 P4777(扩展中国剩余定律,模板)

题意:https://www.luogu.org/problemnew/solution/P4777解题思路:关于扩展中国剩余定理推导,看我其他的博客。#include<bits/stdc++.h>#define N 100009#define ll long longusing namespace std;ll a[N],b[N];int n;/*该方程 用于以...

2019-04-09 16:51:54 246

原创 中国剩余定律学习

详见博客https://blog.csdn.net/niiick/article/details/80229217上面博客中介绍的是所有mi互质时才成立的情况。但是碰到mi并两两互质怎么办?出现了扩展中国剩余定理(EXCRT)推导原理详见https://www.cnblogs.com/Miracevin/p/9254795.htm从以下推导中我们要注意一些细节:1.a1...

2019-04-09 14:52:20 118

原创 P3868(中国剩余定律入门)

以上是中国剩余定律的适用问题(专门用于解线性同余方程)题意描述:见https://www.luogu.org/problemnew/show/P3868解题思路:参考https://www.luogu.org/problemnew/solution/P3868我觉得要注意的地方有...

2019-04-09 11:25:54 128

原创 扩展欧几里得细节补充

一.百度百科的定义: 对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然 存在整数对 x,y ,使得 gcd(a,b)=ax+by。 这说明两点 1.贝祖等式中,a,b必须都要大于0 2.a,b中允许有一个为0二.当a,b中有一个为负数的处理办法三.应用摘自博客https://blog.csd...

2019-04-09 09:38:00 126

原创 关于ACM中很重要的两个优化(读入挂和防溢栈)

还在因为 怕 g++ 提交时间很慢,但是用C++ 交又怕栈溢出???我们都知道,如果代码里有 递归函数 频繁调用, 用 C++ 提交代码, 很可能就会 出现Runtime Error (ACCESS_VIOLATION)但是用G++提交,如果数据量很多的话,又会出现Time Limit Exceeded如果做类似于树链剖分这种需要很多层DF...

2019-04-06 18:55:10 427

原创 POJ2763(树链剖分,边权,模板)

题意:给定一个树形图,某人原来在 s 点,每条边(路)有通过的时间花费,有两种操作:1. 查询某人到 u 点花费的时间 2. 更新某条路的时间花费。解题思路:前面树链剖分练得一直是点权,但一遇边权懵逼了。下里面的代码是从点权改过来的。其实边权和点权是差不多的。大致意思就是,取每条边连个点中,处于下位的(更深)点来记录这条边的值。有一些查询时的细节和点权稍有不同,详见代码注释。#inclu...

2019-04-06 18:46:30 200

原创 HDU5044(树链剖分)

先标记一下好题,回来再写

2019-04-06 12:45:44 98

原创 HDU6162(树上倍增,模板)

解题思路:一开始我想用树链剖分,但是感觉最坏的情况也有O(n^2)(如果出题者有意要卡你,也肯定过不了),其实用树上倍增最高复杂度也是O(n^2),如果这棵树是一条链。反正都有被卡的可能性,干脆就打一下树上倍增的模板吧。#include<cstdio>#include<string>#include<vector>#include<algori...

2019-04-06 12:05:32 281

原创 P3384(树链剖分,入门,模板)

题目描述题目详见:https://www.luogu.org/problemnew/show/P3384如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作:操作1: 格式: 1 x y z 表示将树从x到y结点最短路径上所有节点的值都加上z操作2: 格式: 2 x y 表示求树从x到y结点最短路径上所有节点的值之和操作3: 格式: 3 x z...

2019-04-04 16:20:33 194

原创 HDU5381(莫队算法+ST维护)

解题思路:写了两个小时才写出来,代码能力还有待加强。这道题一开始使用ST表进行维护,用于查询区间范围内的gcd值。但是莫队算法移动一格还有很多区间gcd累加的,要是一个个加必定超时。但是我们可以看出在一定范围内有不少区间的gcd值是一样的,不必一个个数,所以用二分搜索的方式查找,复杂度为O(logn)。我一开始没有事先记录下vl和vr(相同节点),而是要用的时候再查询,这样,复杂度就变成O(log...

2019-04-03 23:24:22 241

原创 HDU6194(后缀数组)

题意:告诉你一个字符串和k , 求这个字符串中有多少不同的子串恰好出现了k 次。解题思路:先用后缀数组进行算出height,然后用ST表维护,然后用区间长为k进行查询,找出最小的height,目的是为了找出k都有的字符串长度,然后区间往左右分别扩展一个单位,目的是看看左右的重复情况,左右的最大值,代表超出K的范围。要注意K=1时是一种特殊情况,具体看代码理解,已经注释。#include&...

2019-04-02 21:57:45 207

原创 HDU3518(后缀数组)

题目:大致题意:给出一个字符串,求该字符串的子串能在该串中出现2次以上且不重叠的子串有几种解题思路:不给原字符串末尾加一个比谁都小的数一直报错,我也是真的不太搞得懂。思路就是不断枚举长度,如果height[j]>=i,那就说明sa[j]和sa[j-1]之间的公共子串的长度高于所规定的的i长度,一定能够找出来长度为i的公共子串。#include<cstdio>#incl...

2019-04-02 17:26:27 185

原创 HDU1403(后缀数组,模板,入门)

解题思路:后缀数组的写法一开始看有些匪夷所思,花了我半天时间才解析完,理解内涵。关于height,详见我的另一篇后缀数组分组中的博客。也推荐几篇:https://blog.csdn.net/w4149/article/details/72972180(代码解析)https://www.cnblogs.com/shanchuan04/p/5324009.html(原理讲解)https...

2019-04-02 00:50:51 217

转载 后缀数组height证明

转载自:https://blog.csdn.net/AcTarjan/article/details/82777390最长公共前缀(Longest Common Prefix)题目描述:给定一个字符串,求该字符串后缀a和后缀b的最长公共前缀定义height[i]=k:表示后缀Sa[i]和后缀Sa[i-1]的最长公共前缀的长度为k定义LCP(a,b):表示后缀a和后缀b的最长公共前缀的...

2019-04-01 23:39:38 400

可形变卷积的CUDA实现及编译

CUDA实现的可行变卷积

2021-03-31

空空如也

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

TA关注的人

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