自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(239)
  • 收藏
  • 关注

转载 严格证明扩展欧几里得算法的正确性

严格证明扩展欧几里得算法的正确性引理一:\(m\mid x_i, i\in[1, k]\),则\(m\mid a_1x_1+\dots + a_kx_k, a_i\in Z\)​ 证明:设\(mb_i=x_i\),则\(a_1x_1+\dots+a_kx_k=a_1mb_1+\dots+a_kmb_k=m(a_1b_1+\dots+a_kb_k),m \mid m(a_1b_1+\d...

2019-07-19 18:58:00 380

转载 Cocos2d-x学习小结 配置篇

Cocos2d-x学习小结 配置篇学习工具:Cocos2d-x用户手册,《Cocos2d-x游戏开发之旅》首先官网下载cocos2d-x源码,安装vs2019。如果没有安装python2,官网下载安装python2.7.(开发工具都装完后需要重启。注销是没有用的。)解压cocos2d-x文件夹,运行setup.py(配置cocos2d-x的环境变量)用cocos命令cocos2d...

2019-07-18 08:05:00 219

转载 Cocos2d-x学习小结 开始篇

Cocos2d-x学习小结 开始篇想要学习Cocos2d-x,是因为在高中物理课上找不到某些物理定律的证明,例如欧姆定律。为此,我翻阅了稍高等级的物理教材,其中关于欧姆定律\(R=\frac{U}{I}\)的证明大体如下把金属导体中的质子视作相对静止构成点阵的刚体,把电子视作可以在质子周围自由穿梭,不时与质子进行完全弹性碰撞的刚体。当导体中没有电场时,导体内部的电子并不是静止不...

2019-07-17 18:41:00 212

转载 爬山

震惊!dp还能这样用#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn=55, maxm=305, INF=0x3f3f3f3f;int n, m;struct Edge{ int to, nxt, v...

2018-10-10 16:14:00 181

转载 公约数

公约数问n个数的所有子集的gcd和。\(1 \le n \le 1000000\)首先想的是一个二维dp【可怜】正解是对于一个公约数x,统计出gcd正好是它的子集个数f[x]。可以用容斥来搞。具体来说,gcd正好是x的子集个数就是\(2^{x的倍数的个数}-f[kx]\)#include <cstdio>#include <cmath>using...

2018-10-06 15:55:00 102

转载 魔法弹(线性基)

魔法弹(线性基)给出n个m位数,问它们张成的异或集合的大小。关于线性基,这篇博文讲的太好了:所谓线性基,就是线性代数里面的概念。一组线性无关的向量便可以作为一组基底,张起一个线性的向量空间,这个基地又称之为线性基。这个线性基的基底进行线性运算,可以表示向量空间内的所有向量,也即所有向量可以拆成基底的线性组合。在ACM领域,线性基主要用来处理有关异或和的极值问题。根据异或按照...

2018-10-05 15:46:00 73

转载 玩♂游戏

玩♂游戏给出一张除了1和n的点度数都为2的图。每次两人轮流拿一个边权。当从1不能到n时上一个拿的人输。问先手是否必胜。首先,多条链的情况一定会转换成一条链的情况。由于没人会去拿1,当边权和为偶数时,链有奇数条边先手赢,否则后手赢。因此,边权和为偶数时,先手希望奇数链多。后手希望偶数链多。反之则反。统计奇数链的最小值和,偶数链的最小值和,比较即可。#include <cs...

2018-09-29 13:09:00 135

转载 管道维修

管道维修n*m个格子,每个格子有\(p_{ij}\)的概率堵上。如果一个格子堵上了,那么清理它需要一步。只有当一个格子与外部相联通且被疏通时,你可以去清理它周围的格子。问每一个格子被清理完的期望步数。颠覆了我对期望题的认知……原来此题非期望dp,而是直接从期望的定义出发。\(n^3\)预处理即可。#include <cstdio>#include <algo...

2018-09-25 15:59:00 112

转载 STR[#6]

photo小明在旅游的路上看到了一条美丽的河,河上有许多船只,有的船只向左航行,有的船只向右航行。小明希望拍下这一美丽的风景,并且把尽可能多的船只都完整地拍到一张照片中。小明位于河的边上,并且可以在河边的任意位置进行拍照,照相机的视野恰好为\(90\)度角,只能以垂直于河边的方向进行拍照。河上的船只全都可看作是平行于河边的一条线段,有的正在向左移动,有的正在向右移动,但移动速度恰好...

2018-09-17 16:33:00 183

转载 整数

一点经验:压位以后,在2^x进制上的操作和在2进制上的操作,结果都是一样的!转载于:https://www.cnblogs.com/MyNameIsPc/p/9646335.html

2018-09-14 14:21:00 76

转载 我的vimrc

set nocompatibleset numberfiletype offset history=1000colorscheme jellybeanssyntax onset autoindent"set smartindentset tabstop=4set shiftwidth=4set showmatchset noexpandtabset guiopti...

2018-09-13 09:11:00 81

转载 二分

二分忽然发现自己并写不对二分……先贴个知乎链接。正如最高位答主所言——“有多少种写法都不重要,重要的是要会写一种对的。”怎么写一种对的二分查找呢?首先,我们要保证程序不会死循环。因此,当我们分开区间时,要保证区间被正好分成两半。例如,如果当前区间长度为2,就必须把区间分成两个长度为1的子区间。其次我们要知道如果mid处的值能取到,应该跳到左边还是右边的区间中。转载于:ht...

2018-09-12 18:58:00 79

转载 保护

保护给出一棵树,若干条树上路径。若干次询问某一点到根的路径上,被覆盖次数大于等于k的点的最浅深度。把lca标记打到x点和y点的深度线段树上,那么从下往上线段树合并即可。当然,用主席树从上往下合并也可。#include <cstdio>#include <vector>using namespace std;const int maxn=2e5+5...

2018-09-12 16:03:00 93

转载 数数字

数数字问\([L,R]\)内,数位之积在\([L1,R1]\)中的数的个数。这显然是个数位dp……可是当我写完以后,我发现自己并d不出来。如果用以前写数位之和的写法,先预处理出18个1~9相乘的状态,发现只有50000-个状态。因此,可以用\(f[i][j][0/1]\)表示dp到第i位,数位之积的对应编号为j,是/否触顶时的方案数。这个状态是没有问题的,但是我的初始值出了问题...

2018-09-11 14:27:00 90

转载 旅行

旅行给定一个长度为n的序列\(a1,a2,\dots,an\)。定义序列的代价为\(\sum_{i=1}^{n-1}|a_i−a_{i+1}|\)。你现在可以任意次交换相邻的两个数,但是除了第一次交换以外,每次交换的两个数的位置都应该在前一次交换的两个数的位置的右边。比如说,第一次交换了\((a2,a3)\)这两个数,第二次就不能交换\((a1,a2)\)或者\((a2,a3)\...

2018-09-10 18:43:00 123

转载 すすめ!

すすめ!数轴的原点上有一只青蛙。青蛙要跳到数轴上\(\ge D\)的位置去,但很不幸数轴上有\(n\)个区间是禁区,不能进入。青蛙会选择一个长度\(L\),从原点开始每次向右跳长度为\(L\)的一段。一路上青蛙会停的位置是0,L,2L,⋯,直到跳到了\(\ge D\)的位置。任意一个位置都不能在禁区中。请求出\(L\)的最小值,注意\(L\)可以是实数。遇到这种看似不可解的问...

2018-09-10 11:14:00 84

转载 统计

统计给定长度为\(n\)的序列\(a\),记\(A=\{a_1,a_2,\dots,a_n\}\),你需要计算下面表达式的值:\[\sum_{\substack{S \subseteq A \\ |S| = k}} \left| \max_{x \in S} x - \min_{y \in S} y \right|\]排序后组合数一下即可。注意,当\(p<n\)时阶乘计...

2018-09-10 10:24:00 85

转载 Kid的某些跳刺套路

需要按二段方向键的跳跃:中途松开方向键的跳跃:中途按下方向键的跳跃:意想不到的小跳(如果上方有墙,小跳比大跳磕头跳的更远)(kid站的是最后的位置):意想不到的小跳*2:意想不到的小跳*3(如果上方有墙,小跳比大跳磕头跳的更远):此类三个刺的情况,不能尝试找空隙跳,必须硬从刺上面怼过去:有些时候单跳比双跳有用……可以直接贴墙过!三格大刺:在边缘二段...

2018-09-08 11:25:00 101

转载 生成函数

生成函数先贴上两位大佬的博客:https://www.cnblogs.com/RabbitHu/p/9178645.html,https://www.cnblogs.com/moomcake/p/9385828.html。它们可以解答两个问题:生成函数里的x有什么用——没什么用,去掉也行。用生成函数的好处在哪里——把组合问题的法则和幂级数的乘幂对应起来。加法法则的定义:设事件A有m...

2018-09-07 16:10:00 90

转载 Endless spin

Endless spin给你一段长度为[1..n]的白色区间,每次随机的取一个子区间将这个区间涂黑,问整个区间被涂黑时需要的期望次数。n<=50这篇博客港的很好了,相信我没有什么好港的。注意这里的dp是第二种用法的dp。#include <cstdio> using namespace std;int T, n;const int maxn=55;l...

2018-09-06 15:47:00 179

转载 NTT

NTTNTT是一种跑得比FFT快的东西(?)。元素的幂考虑有限群G,\(a \in G\)。元素的幂就是a的几次方。使得\(a^d=e\)的最小正整数d称为a的阶,记作\(d=ord(a)\)。显然,a的幂生成的集合S是G的子群。因此,\(a^{|G|}=e\)。原根有个结论:\(Z_n^*\)存在原根\(\Leftrightarrow\)\(n=2,4,p^\alpha,...

2018-09-05 15:36:00 171

转载 铁人两项

铁人两项求出三元组(s,c,f)的个数,使得在图中从s到c到f有一条简单路径。考虑如果是树的话怎么做。若选出两点s和f的话,三元组的个数就要加上s和f之间的所有点。那么,换个思路,我们可以考虑每个点被统计到的次数(难道这就是所谓转换法吗?!)。那么一个树形dp就解决了。但是,这是个图,怎么办呢?我们发现我们可以直接把点双缩起来,然后把某个点双的值改为点双中的点数。但是,别忘记点...

2018-09-04 21:14:00 148

转载 cf555e

cf555e(缩点)给一个 n 个点 m 条边的图,以及 q 对点 (s,t),让你给 m 条边定向。问是否存在一种方案,使每对点的 s 能走到 t。 \(n,m,q≤ 2×10^5\).首先,在一个边双内,一定存在一种定向方案,使得边双内点两两可达。(考虑桥)因此,可以直接把边双缩点。然后树上差分看看有没有冲突即可。注意rmq-st求lca用的是欧拉序!#include ...

2018-09-02 19:42:00 232

转载 ARC102D(构造)

ARC102D(构造)构造一个图,使得\(n \le 20,m\le 60\),边从小的点连向大的点,并且从1到n的所有路径,长度与\([0, l-1]\)构成双射。用二进制的思想……代码很鬼畜#include <cstdio> using namespace std;const int maxn=25;int l, n, src, dst, m;int...

2018-09-02 08:46:00 142

转载

想(dp)给出一个音符序列,求最长子序列,满足其由若干个低-高-中-高-(中-高-中-高……)组成。\(n \le 1e5\)。好题啊。类比最长不下降子序列的思想,考虑储存最后两位数,推出dp方程(用到了前缀和思想)。这道题的启发性在于:对于\(有有f[i][j]=f[i-1][j]\)类转移的dp,用滚动数组可能会更舒适状态的定义不一定要统一。例如本题中的\(f[i][...

2018-09-01 20:03:00 52

转载

乡(虚点)给出一个由ABCD和.组成的字符串。从一个ABCD能跳到另一个ABCD上,同时能从一个字母移动到另一个字母。多次询问从一个字符到另一个字符要走几步?可以发现,对于一个询问,我们有两种策略:直接暴力走到目的地,或者通过ABCD跳跃。如果我们选择进行跳跃,那么我们就不用考虑点的确切位置,只需要考虑点是不是在相同字符区间的边界上。建四个虚点ABCD表示跳跃,然后建图即可。...

2018-09-01 15:56:00 104

转载 Elaxia的路线

Elaxia的路线求无向图中,两对点间最短路的最长公共路径。四遍spfa标出每条边的标记,然后用拓扑排序跑dp即可。exp:拓扑排序可以跑DAG上的dp。#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn...

2018-08-21 16:28:00 175

转载 Sessions in BSU

Sessions in BSU有n项考试。每项考试给定两个时间,你可以任意选择一个时间。每个时间点只能考一场考试,请问在最优情况下最早考完的时间。n<=1e6。把题目抽象成图论模型:在每项考试的两个时间点之间连边,那么问题就变成了:给所有边定向,使得每个时间点的入度至多为1,请你让入度为1的点的编号的最大值最小。然后,我们可以发现只有基环树和树是合法的。对于基环树,取最大...

2018-08-21 13:45:00 65

转载 Mouse Hunt

Mouse Hunt给定一个n个点的图,每个点有权值\(c_i\),并且只有一条出边。现在你要在一些点上打标记,使得从任何一个点出发最终都会经过有标记的点。求标记点的权值和最小值。就是找环啊!拓扑排序啊!#include <cstdio> #include <algorithm>using namespace std;const int maxn...

2018-08-19 20:50:00 170

转载 LCT

LCT给定n个点以及每个点的权值,要你处理接下来的m个操作。操作有4种。操作从0到3编号。点从1到n编号。0:后接两个整数(x,y),代表询问从x到y的路径上的点的权值的xor和。保证x到y是联通的。1:后接两个整数(x,y),代表连接x到y,若x到y已经联通则无需连接。2:后接两个整数(x,y),代表删除边(x,y),不保证边(x,y)存在。3:后接两个整数(x,y),代表将点x上...

2018-08-19 20:03:00 77

转载 Knights0.

Knightst数轴上有n个骑士位于1,2,3,...n,移动速度相同,初始移动方向已知,当两个骑士相遇时,各有50%的概率赢,输了就死了,并且移动到0和n+1的位置时移动方向会翻转,问最右的骑士存活的概率。首先,不能用一维dp。然后就是用\(f[i][j]\)表示前i割其实有j割向右走的概率。#include <cstdio> #include <cstr...

2018-08-15 13:32:00 56

转载 Beautiful Sequence

Beautiful Sequence给定一些数(可能相同),将它们随机打乱后构成凹函数,求概率 。N<=60 。首先,这种题求概率事实上就是求方案。所以现在要求的是用这些数构成凹函数的方案数。依稀记得上次的一道考试题,只是把凹函数变成了一个具有特殊性质的单调序列而已。这道题也是一样,由于它不关心数的位置,所以把数排序以后,可以统计把当前数插入凹函数的方案。exp1:与数...

2018-08-14 19:04:00 184

转载 Mole and Abandoned Mine

Mole and Abandoned Minen点m条边的无向图,删除第i条边花费c[i],问1到n只有一条路径时所需要的最小花费? \(2\le n\le 15\) 。我又A掉了一道zzs的题啦!首先,我们观察1到n只有一条路径时,图是怎么样的。显然是一条1到n的链,链上的每个点都挂了很多子联通块,但这些子连通块互不连通。(exp:对于某些图论题,观察要求的东西,看看能否把它...

2018-08-12 21:11:00 115

转载 防御准备

防御准备给定一个长为n的序列,每个点需要放置一个守卫塔或一个木偶。在第i个点放置守卫塔的代价为a_i,放置木偶的代价为j-i,j为i右边第一个守卫塔;求最小代价。1≤n≤10^6,1≤a_i≤10^9推出朴素dp以后用斜率优化……话说,斜率优化推出来的不等式,必须满足左边不出现i有关的项,右边出现与i相关的一条直线。因为左边要变成一堆点,右边则是条割凸包的线。代码贼短~...

2018-08-12 19:14:00 167

转载 最小生成树计数

最小生成树计数rt.1<=n<=100; 1<=m<=1000先求一遍最小生成树以后, 把我们考虑同一边权的所有边。我们发现,所有最小生成树中,同一边权的那些边,其实连了固定的一堆点。这是一个最小生成树的性质。因此,只需对于同一边权的边,统计连这些点有几种连法。用乘法原理乘所有边就得到了答案。#include <map>#include...

2018-08-12 13:22:00 228

转载 Miners

Miners有三种食品,两组矿工。矿工们根据最近三次过来的食品车产煤,产出煤的个数就是新过来的食品车,和前面两辆车中,不同的食品车的个数。现在你有一个长度为n的食品车序列,请合理分配它们给两组矿工,使得产煤个数最大。我会做IOI的题啦!\(f[i][a][b][c][d]\)吗,表示当前是第i辆车,第一组矿工的最近两组车分别是a,b,第二组矿工的最近两组车分别是c,d的最大产...

2018-08-11 20:26:00 100

转载 朝暮(枚举基准 容斥)

朝暮(枚举基准 容斥)给出一个n个点,最多n+6条边的无向图,求将树黑白染色,且没有相邻黑点的方案数。\(1\leqslant n\leqslant 10^5\)首先,如果这个图是个树,就是个斯波dp。然后我在考试时想了个做法:枚举所有非树边旁边是00还是10还是01。复杂度\(n3^n\),成功tle。正解就好写得多。枚举旁边都是黑点的非树边有几条,容斥一下即可。我其实还...

2018-08-11 15:23:00 55

转载 Dynamic Rankings(整体二分)

Dynamic Rankings(整体二分)带修区间第k小。\(n,q\le 10^4\)。这次我们旧瓶装新酒,不用带修主席树。我们用整体二分!整体二分是啥东西呢?二分答案可以解决一次询问的问题。只要二分这个询问的答案就行了。考虑这道题,如果改成一个询问,怎么用二分答案做(虽然其它方法随便做)。把初始值也看成一个修改,暴力修改值。二分区间第k小数的值v,把小于v的数都改成1,...

2018-08-08 21:14:00 209

转载 取数字(dp优化)

取数字(dp优化)给定n个整数\(a_i\),你需要从中选取若干个数,使得它们的和是m的倍数。问有多少种方案。有多个询问,每次询问一个的m对应的答案。\(1\le n\le 200000,1\le m\le 100,1\le q\le 30,-10^9\le a_i\le 10^9\)。首先有一个暴力dp:\(f[i][j]\)表示选到第i个数,和mod m是j的方案数。但是显...

2018-08-08 09:42:00 182

转载 POI2011 Tree Rotations

POI2011 Tree Rotations给定一个n<=2e5个叶子的二叉树,可以交换每个点的左右子树。要求前序遍历叶子的逆序对最少。由于对于当前结点x,交换左右子树,对于范围之外的逆序对个数并没有影响,所以可以进行线段树合并,合并时统计l在左边还是在右边更优。#include <cstdio>#include <cctype>using n...

2018-08-05 11:04:00 65

空空如也

空空如也

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

TA关注的人

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