自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 DP(Nietzsche)的hu测 T2(dp)

版权属于DP,想要引用此题(包括题面)的朋友请联系博主 分析: 首先我们要明确一个长度为lll的序列有多少种串法 假设我们从iii位置开始穿入,那么我们只有两种选择:i+1,i−1i+1,i−1i+1,i-1 如果我们把穿过的珠子都删掉,那么每次我们还是只有两种选择:i+1,i−1i+1,i−1i+1,i-1 所以一个长度为lll的序列有2l−12l−12^{l-1}钟穿法之...

2018-03-30 15:31:33 188

原创 扫描线+可并堆全纪录

两个看似没什么关联的数据结构,因为两者做的题都不多所以放到一起总结一下扫描线感觉扫面线的经典题目就是面积和周长,不过有时候题目的转化也是挺巧妙的 例如:给出若干有权点和一个矩阵,求矩阵能框住的最大权值 我们把每个点看做是一个矩阵,求这些矩阵∩的最大值,扫描线求最大值即可经典例题:扫描线求矩形面积并 经典例题:扫描线求矩形周长并 经典例题:扫描线+主席树由于扫描线多在平面...

2018-03-29 19:59:22 290

原创 hdu1828 Picture(扫描线求矩形周长并)

题目链接分析: 从左往右在每一次插入一条边后,周长并的累加值=新增的竖边+新增的横边原题重做 代码重构了一下,这样就和求矩阵面积并的代码统一起来了(好记)随意看一下代码:我们是在y坐标上建立线段树: 在处理矩形信息的时候,我们拆成两个操作 对于x坐标相同的操作,我们先插入再删除(处理重边)int cmp(const point &a,const poin...

2018-03-29 17:46:47 569

原创 计算几何全纪录

计算几何,分为二维和三维二维计算几何二维计算几何基础入门二维计算几何中,应用比较广泛的就是凸包和半平面交凸包几何意义上的凸包比较好理解 但是很多dp,分治题目中状态转移的最优点满足某种单调性,也就是说优秀转移点在凸包上 这种性质可能不好判断,不过斜率优化dp就是凸包和dp的完美结合经典例题:凸包 经典例题:线段树分治+凸包 经典例题:分块+凸包+三分注意...

2018-03-29 15:13:29 287

原创 bzoj4031 [HEOI2015]小Z的房间(矩阵树定理)

题目链接分析: 从题目限制我们可以得到这种图中有哪些边可以存在 因为任意两个房间之间都只有一条通路,那么得到的一定是一棵树 因此题目转化成:图的生成树个数 矩阵树定理即可tip注意柱子是不能算结点的 注意取模,矩阵中不要有负数 一开始我把矩阵消成了对角线形,结果WA了,消成上三角性就A了 看来保险起见,求解行列式的时候还是消成上三角#include<cstdi...

2018-03-29 09:14:21 220

原创 SPOJ - DETER3 Find The Determinant III(行列式求值+gauss)

题目链接题目描述:求行列式的值(模一正数)分析: 我们要用gauss消元将行列式消成上三角,计算对角线乘积 因为模数不一定是质数,所以gauss消元时不能用费马小定理求逆元了 我们就要用辗转相除法的gauss 每次消元(第jj行)时,默认a[j][i]>a[now][i]a[j][i]>a[now][i](被消元的主元小) 记x=a[j][i]/a[now][i]x=...

2018-03-29 08:03:59 213

原创 UVa 10766 Organising the Organisation(矩阵树定理)

题目链接题意: 给出n,m,k,n,m,k,代表一家公司有nn个部门,有mm组关系,表示ii和jj不能直接联通,kk代表主管部门,询问有多少种分层方案题解: 首先题面看不大懂,直接找到前辈的题目描述Ctrl+C一下 其次,这道题的k可以忽略掉,所以ta的范围完全是吓唬人的那么这道题就是求nn个点的有编号无根树数量 有编号无根树的一种有力的解决方法就是Prufer编码 但是...

2018-03-29 06:57:17 267

原创 Matrix-Tree定理(sx之前填坑还来得及吗)

从入门到入土:矩阵树Matrix-Tree定理 参考blog在正式介绍Matrix_Tree定理之前,我们需要一些前置知识一些定义与定理对于一个无向图GGG,ta的生成树个数等于其基尔霍夫Kirchhhoff矩阵任何一个N−1N−1N-1阶主子式的行列式的绝对值所谓N−1N−1N-1阶主子式就是对于任意的一个r,将矩阵的第rrr行和第rrr列同时删去得到的新矩阵基尔霍夫Ki...

2018-03-28 20:53:39 743

原创 块状链表全纪录

块状链表的简单介绍块状链表,可以说是一种很犯规的数据结构 支持动态的序列加入删除,询问区间和之类的操作同时拥有数组和链表的优点: 数组: 所有数据在内存中是紧凑储存的,优点是定位快:O(1) 链表: 通过指针将不同位置的元素链接起来:修改快 O(1)总的来说重要操作只有几个: 定位,分裂,插入,合并块状链表基础操作虽然说是链表,但是在实现的时候,我们还是用数组模拟 ...

2018-03-28 17:43:20 551

原创 loli的毒瘤hu测 T2&&T3

T2.tree(矩阵树定理+gauss) 分析: 这道题的爆搜真的恶心。。。 可以放出来吓吓人:const ll p=1e9+7;const int N=100005;struct node{ int x,y;};node t[N][31];int n,m,Q[N],deep[N],tot=0;ll ans=0;map<ll,int> mp;...

2018-03-28 15:23:26 287

原创 loli的毒瘤hu测 T1.game(博弈+bfs)

分析: 一眼博弈 博弈有两个很重要的原则: 必胜态至少有一个后继是必败态 必败态的所有后继都是必胜态于是考场上我就dfs瞎搞得了点分实际上这道题的博弈树结点数量最多只有2n2n2n个 即先手为Alice或Bob且棋子在1−n1−n1-n位置上 首先我们知道棋子位于位置1的两个结点都是必败态 如果某个结点的后继都是必胜态,那么ta就是必败态 如果后继中...

2018-03-28 14:31:03 199

原创 字符串全纪录

字符串可以说是我比较薄弱的一块(想当初c++入门的时候就没有系统的学过字符串的读入。。。)KMPKMP算法是一种改进的字符串匹配算法 用于解决询问串中出现了多少次模式串 可以说是字符串中最简单的一种算法了匹配串的时候,如果匹配成功,模式串指针也要跳到失配上,便于下一步的匹配//字符串下标从0开始int t[N];void KMP() { t[0]=-1;...

2018-03-27 21:47:15 298

原创 COGS 2294 [HZOI 2015] 释迦(NTT mod any prime)

题目描述: 找不到传送门。。。 给两个次数界为n的多项式,求这两个多项式的乘积,输出x的0次项到n-1次项的系数 mod 23333333分析: %真正的dalaoNTT只能求在特定模数下 的值 对于任意模数,我们可以选择三个FFT模数分别做NTT,最后用CRT合并一次卷积后每个数可以达到1023(n∗mod2)1023(n∗mod2)10^{23}(n*mod^2)左右,所以...

2018-03-27 16:47:40 215

原创 FFT/NTT全纪录

FFT快速傅里叶变换,那么FFT到底有什么作用呢? 简单来说就是计算∑ni=0aibn−i∑i=0naibn−i\sum_{i=0}^{n}a_ib_n-i浅谈生成函数+卷积+FFT最常见的就是生成函数和FFT的结合(FFT只是计算的一种工具) 经典例题:生成函数+FFT 然而更进一步,生成函数是组合数学的一部分啊,可以解决从若干个集合中取元素得到贡献X的方案数 所以如果我...

2018-03-27 13:49:55 731

原创 线性规划+01分数规划全纪录

可能是因为名字里都有“规划”,所以才放在一起总结线性规划线性规划讲解一:引入 线性规划讲解二:单纯性算法线性规划问题有一些经典特征:若干变量之间满足等式或不等式的关系 目标函数可以抽象成若干变量的线性形式 求解最优解(最小或最大)常见的解决方法:单纯形算法: 只针对松弛型线性规划(等式) 一般情况下,约束条件和目标函数是若干变量之和的形式差分约束:...

2018-03-27 10:38:16 1977

原创 CH Round#17 舞动的夜晚(网络流+tarjan)

舞动的夜晚 CH Round #17描述 L公司和H公司举办了一次联谊晚会。晚会上,L公司的N位员工和H公司的M位员工打算进行一场交际舞。在这些领导中,一些L公司的员工和H公司的员工之间是互相认识的,这样的认识关系一共有T对。舞会上,每位员工会尝试选择一名Ta认识的对方公司的员工作为舞伴,并且每位员工至多跳一支舞。完成的交际舞的数量越多,晚会的气氛就越热烈。顾及到晚会的气氛,员工们希望知道,哪...

2018-03-27 09:01:01 419

原创 高斯消元+线性积全纪录

高斯消元高斯消元,方程组求解高斯消元的题目一般有以下特点:可以列出方程一般没有阶段性和次序性(不同于dp或搜索)由若干个状态确定一个已知状态最基础的,我们用double类型进行gauss 但是这种gauss有一个小缺陷:精度损失(毕竟gauss里面会有大量的除法) 以前有一道题就被卡精度,所以需要把系数化为一放在外面做法总结如下: 首先我们枚举未知量ii,同时记录一个n...

2018-03-26 21:55:23 622

原创 hdu5755 Gambler Bo(gauss解同余方程)

题目链接题目描述: 一个n∗mn∗mn*m由0,1,2组成的矩阵,每次操作可以选取一个方格,使得ta加上2之后对3取模,周围的四个方格加上1后对3取模,在n∗mn∗mn*m操作次数内让整个矩阵变成0。输出一种方案。分析: 模数好啊,原数=逆元状压dp枚举每一行肯定不行了 然而想到了开灯问题,这道题可以用高斯消元!设直接操作(i,j)(i,j)(i,j)的次数为xi,jxi,j...

2018-03-26 21:35:10 204

原创 2-SAT全纪录

blog里没有特别详细的讲解,所以献上dalao的讲解 不过2_SAT的模型还是很典型的:形式有点想网络流给出若干集合,集合大小一般为2一般每个集合中必选一个元素,非此即彼元素之间有一些奇怪的限制我们通过这些限制条件建图,永远记住:沿着图上的边前进代表must choose一个限制条件可能需要多条边去表示,所以记录端点和边的空间一定要计算清楚2_SAT的精髓还是在于如何建图...

2018-03-26 17:43:35 371

原创 loli终于又来hu测了 T3.回文串(dp+矩阵加速【difficult)

分析: 神题 心里默念着不能放弃,于是10分到手30%题意相当于问有多少回文串包含sss这个子序列 考虑如果判断一个回文串中是否包含子序列sss 我们可以从小到大枚举iii,分别用aiaia_i和an−i+1an−i+1a_{n-i+1}去匹配当前sss两端的字母,并将sss中被成功匹配的字符删去, 我们可以据此进行dp,设f[i][l][r]f[i][l][r]...

2018-03-26 16:33:44 230

原创 loli终于又来hu测了 T2.青蛙(差分+置换)

分析: 看到k的范围真的大,所以以为要用矩阵乘法,但是1000*1000不是矩阵乘法的数据范围 所以打了个20分就跑了40%实际上,由期望的线性性我们可以得到每个跳跃点的期望计算公式: x′i=(2xi−1−xi)+(2xi+1−xi)2=xi−1+xi+1−xixi′=(2xi−1−xi)+(2xi+1−xi)2=xi−1+xi+1−xix_i'={(2x_{i-1}-...

2018-03-26 14:51:16 356

原创 loli终于又来hu测了 T1.运动会(贪心)

分析: 显然最坏情况就是我们每个项目都选择,就可以得到一个答案上限 贪心的,如果我们想让答案减少,就找到当前被选择次数最多的体育项目刨除 至于那些选择了这个项目的运动员,顺延一下就好了 (可以证明这个贪心的正确性) 时间复杂度:O(nm)O(nm)O(nm)tiphu测的时候没有立刻想到正解, 先想到了二分,然而在考虑如何二分判定的时候发现了正解 所以还是那个原则:相...

2018-03-26 14:06:11 174

原创 网络流全纪录

网络流最明显的特征就是:既像dp,又像贪心 一些匹配向问题都可以往网络流方向想(棋盘交换,攻击伤害,工作安排,消除矛盾)最大流正难则反,大变小,流化割黑白染色,可以解决相邻结点不形容的问题一定要有限流(人+菜+房间,人放中间限制流量)【经典例题】行列成点(缩点)时间的推移可以枚举,每次新建一层点,上一层的点连向下一层的后继点表示时间的推移二分图两部分的点一般不是一模一样的...

2018-03-26 07:29:50 254

原创 KDtree全纪录

KDtree是一种很优秀的暴力(实质上也是线段树) 可以解决:n维k远点对问题 有些需要CDQ分治的难题,用KDtree就可以解决了(思维难度较小)经典例题:天使玩偶 KDtree CDQ分治 实测KDtree较快,然而dalao好像都不喜欢用这种暴力做法,都是推荐CDQ 然而蒟蒻就有蒟蒻的方法,暴力什么的先稳住再说找到了KDtree的复杂度分析: 构建:O(log2n...

2018-03-25 21:31:39 1129

原创 线段树+树链剖分全纪录

线段树最基础线段树,就是支持区间加乘,查询区间最值 总的来说,就是可以在区间上进行操作(给出的可能不是完整代码,不过都是精华) 代码中有几个细节需要注意:默认先乘后加,在计算值的时候统一表达式: t[bh].sum=( t[bh].sum*t[bh].mul%p + (t[bh].y-t[bh].x+1)*t[bh].ad%p )%p;永远记住:先维护值,再下传标记 标记下...

2018-03-25 20:16:03 437

原创 树状数组全纪录

为了让自己在AFO之前活的精彩一点,接下来的将近两周时间会陆续更新一些模板以及算法的注意事项 敬请期待全纪录系列最简单的树状数组就是一维 支持两套操作(不可混用)单点修改,区间查询区间修改,单点查询(配合查分)int n,c[N];void build() { for (int i=1;i<=n;i++) { c[i]=0; ...

2018-03-25 16:23:24 188

原创 cv2303 [Sdoi2008 ] Sandy的卡片(后缀数组+二分)

DescriptionSandy和Sue的热衷于收集干脆面中的卡片。然而,Sue收集卡片是因为卡片上漂亮的人物形象,而Sandy则是为了积攒卡片兑换超炫的人物模型。每一张卡片都由一些数字进行标记,第i张卡片的序列长度为Mi,要想兑换人物模型,首先必须要集够N张卡片,对于这N张卡片,如果他们都有一个相同的子串长度为k,则可以兑换一个等级为k的人物模型。相同的定义为:两个子串长度相同且一个串的全部...

2018-03-25 14:50:54 191

原创 线性筛d&&sd(约数个数&&约数和)

ddd函数d(n)d(n)d(n)表示n的约数个数和百度一下,我们就可以得到一个计算d函数的暴力做法设n=pa11pa22...pakkn=p1a1p2a2...pkakn=p_1^{a_1}p_2^{a_2}...p_k^{a_k} d(n)=(a1+1)(a2+1)...(ak+1)d(n)=(a1+1)(a2+1)...(ak+1)d(n)=(a_1+1)(a_2+1)...(...

2018-03-25 11:14:13 1514 1

原创 Enzymii的hu测 T3.violetevergarden(反演【约数个数)

版权属于Enzymii,想要引用此题(包括题面)的朋友请联系博主 分析:题目来源首先要好好读题,题目有一点问题 不过不要在意这么多细节,实际上题目要求: ∑i=1nd(i2)∑i=1nd(i2)\sum_{i=1}^{n}d(i^2) d的暴力计算公式 n=∏pkiin=∏pikin=\prod p_i^{k_i} d(n)=∑(ki+1)d(n)...

2018-03-25 10:09:24 308

原创 Enzymii的hu测 T1.eromanga(hash)

版权属于Enzymii,想要引用此题(包括题面)的朋友请联系博主 分析: 一眼点分治,但是不是点分治于是打了个暴力+第6个点点分治+状压=40题目来源 官方正解RTY(Enzymii)这套题的特点就是部分分的划分比较多,个人觉得比较符合省选的特点,所以重点分析一下各种部分分做法(也是对于以后解题的一种启发吧)算法一连个模数都不给,显然不能把边权都乘...

2018-03-24 21:43:25 432

原创 Enzymii的hu测

Enzymii大佬真的是美如画主要就是欣赏页面 Enzymii:舒老师讲一下60分做法 舒老师:就是原题啊 众:舒老师粘代码了吗 舒老师:没有 Enzymii:舒老师毕竟五分钟12K,这都无所谓...

2018-03-24 19:38:17 170

原创 bzoj2555 SubString(LCT+SAM)

题目链接分析: 翻了一下这道题的提交记录,发现yhzq和Mario_sz两个月前就做过了(希望现在填坑还不算晚) 第一次看这道题,感觉就是一道SAM 支持动态添加?SAM可以啊 匹配?SAM也可以啊然而上网,得到都是LCT+SAMLCT+SAMLCT+SAM,直接把我吓傻了 朴素的后缀自动机,每个节点维护一个sizesizesize,添加一个字符时将它parentparentpa...

2018-03-24 10:52:20 330

原创 poj2891 Strange Way to Express Integers(不要求互质CRT)

题目链接分析: CRT简单讲解#include<cstdio>#include<cstring>#include<iostream>#define ll long longusing namespace std;ll x,y,d;void exgcd(ll a,ll b) { if (!b) { d=a;x=1;...

2018-03-23 18:52:40 131

原创 中国剩余定理(Chinese Remainder Theorem)

(很久)之前就已经接触过CRT我们先看简单的CRTx≡a1  (mod m1)x≡a1  (mod m1)x≡a_1~~(mod~m_1) x≡a2  (mod m2)x≡a2  (mod m2)x≡a_2~~(mod~m_2) x≡a3  (

2018-03-23 17:50:52 8638 1

原创 bzoj3451 Tyvj1953 Normal(概率期望+点分治+FFT)

Description某天WJMZBMR学习了一个神奇的算法:树的点分治! 这个算法的核心是这样的: 消耗时间=0 Solve(树 a)  消耗时间 += a 的 大小  如果 a 中 只有 1 个点   退出  否则在a中选一个点x,在a中删除点x  那么a变成了几个小一点的树,对每个小树递归调用Solve 我们注意到...

2018-03-23 15:25:53 354

原创 hdu5730 Shell Necklace(CDQ分治+FFT|多项式求逆)

题目链接题目描述:长为iii的项链有a[i]a[i]a[i]种装饰方法,问长度为nnn的项链有多少种装饰方式分析: 说实话我感觉这个题目描述有点模棱两可显然,用不同的方式分割这个序列,就会产生一定数量的装饰方法 一开始想dp方程有点懵了,实际上非常简单,我们枚举分割出来的一部分iii f[n]=∑i=0nf[n−i]∗a[i]f[n]=∑i=0nf[n−i]∗a[i]f[n]=\...

2018-03-23 11:19:35 386

原创 CodeChef Prime Distance On Tree(点分治+FFT)

题目链接题目描述:统计树上路径中有多少长度为素数的路径分析: 树上路径统计问题,考虑点分治 没有什么特别的性质,所以我们只能统计所有路径的长度 不过朴素算法统计路径需要n2n2n^2的复杂度,点分治还不如LCA好用nai。。。我们在点分治的时候,当前重心为rtrtrt,当前处理子树为xxx 我们dfs一遍子树x,那么子树x的所有路径就可以和已经处理过的子树中的所有路径依次组成新...

2018-03-22 21:39:26 270

原创 bzoj2597 [Wc2007]剪刀石头布(费用流)

题目链接分析: 题目要求给未知边定向,使得图中有最多个三元环一道看似和网络流完全没有关系的题,不过之前我们接触过一道图上问题用网络流解决的问题(无向边定向变欧拉路) 而这道题,我们也可以强扯到网络流上我们的原则:正难则反显然,整个图能产生的最多三元环有C(n,3)C(n,3)C(n,3)个,我们需要将不合法的子图减掉(补集法) 如果三个点无法形成环,那么ta一定长这样: ...

2018-03-22 17:13:20 210

原创 bzoj2595 [Wc2008]游览计划(斯坦纳树)

题目链接分析: 图中点集连通的最小代价,考虑斯坦纳树这是一道二维平面上的斯坦纳树 xue微更改一下状态f[i][j][k]f[i][j][k]f[i][j][k],表示根结点是(i,j)(i,j)(i,j),连通状态是kkk的最小状态f[i][j][k]=min{f[i][j][l]+f[i][j][s]−a[i][j]}f[i][j][k]=min{f[i][j][l]+f[i...

2018-03-22 14:08:04 206

原创 ZOJ3613 Wormhole Transport(斯坦纳树)

题目链接题目描述: 若干星球,有些星球上建立了若干个工厂,有些星球是资源星球 一个资源星球只能供应一座工厂,求最大可被供应的工厂数以及在此条件下的最小花费分析: 有可能一个星球即是资源星球又是工厂建设地吗?应该是有可能的 遇到这种情况,我只要让其中一座工厂在自己的星球上就地取材即可(剩下的工厂还是需要与其他资源星球连通)还是朴素的斯坦纳树转移注意一点,所有的状态都要满足一个...

2018-03-22 10:10:00 297

空空如也

空空如也

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

TA关注的人

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