- 博客(63)
- 收藏
- 关注
原创 题解:[USACO12MAR]花盆Flowerpot 【单调队列】
#include <algorithm>#include <iostream>#include <cstring>#include <cstdio>using namespace std;#define ll long long#define re register#define gc getchar()inline int rea...
2019-03-20 15:22:03
376
原创 题解:滑动窗口 【单调队列】
N2N^2N2 暴力应该都会NlogNNlogNNlogN 线段树,树状数组ST表随便搞NNN单调队列#include <iostream>#include <cstdio>using namespace std;#define ll long long#define re register#define gc getchar()inline int...
2019-03-20 14:48:48
306
原创 题解:NOIP2014 飞扬的小鸟
#include <algorithm>#include <iostream>#include <cstdio>#include <vector>using namespace std;#define re register#define gc getchar()inline int read(){ re int x(0),f(1...
2019-03-19 15:15:34
263
原创 题解:三维偏序(陌上花开)【CDQ分治】
题意:求所有的 xj&lt;xi yj&lt;yi zj&lt;zi ~~x_j&lt;x_i~~y_j&lt;y_i~~z_j&lt;z_i~~ xj<xi yj&a
2019-03-15 19:13:26
286
原创 题解:SDOI2015 约数个数和 【莫比乌斯反演】
求∑i=1n∑j=1md(ij)[d(x)表示x的约数个数]求\sum_{i=1}^n\sum_{j=1}^m d(ij) [d(x)表示x的约数个数]求i=1∑nj=1∑md(ij)[d(x)表示x的约数个数]首先,我们要指导如何去求d(ij),有这么一个式子首先,我们要指导如何去求d(ij),有这么一个式子首先,我们要指导如何去求d(ij),有这么一个式子d(ij)=∑x∣i∑y∣j...
2019-03-15 11:53:28
414
原创 史上最(不)详细的莫比乌斯反演学习记录
由于楼主是个小蒟蒻,所以理解的很慢,所以就很详细首先先介绍一下什么是莫比乌斯函数(转自百度百科)莫比乌斯函数是一个数论函数,它同时也是一个积性函数(i.e.μ(ab) =μ(a)μ(b), a,b互质)当n不等于1时,n所有因子的莫比乌斯函数值的和为0也就是说∑d∣nμ(d)={1n=10n&amp;amp;amp;amp;amp;amp;amp;gt;1\sum_{d|n}\mu(d)=\begin{cases}1&amp;amp;amp;amp;amp
2019-03-14 18:19:25
898
原创 题解:YY的GCD 【莫比乌斯反演】
题意求∑i=1n∑j=im[gcd(i,j)==k](k∈prima)求\sum_{i=1}^n\sum_{j=i}^m [ gcd(i,j)==k ](k\in{prima})求i=1∑nj=i∑m[gcd(i,j)==k](k∈prima)根据莫比乌斯反演的常见套路,我们可以很容易地化到这一步:∑k∈prima∑d=1min(n,m)μ(d)⌊nkd⌋⌊mkd⌋\sum_{k\in{...
2019-03-14 13:13:43
379
原创 题解:HAOI2011 Problem b【莫比乌斯反演】
题意求∑i=ab∑j=cd[gcd(i,j)==k]求\sum_{i=a}^b\sum_{j=c}^d [ gcd(i,j)==k ]求i=a∑bj=c∑d[gcd(i,j)==k]对于这个题目,我们可以运用一下容斥原理如果说 f(n,m)=∑i=1n∑j=1m[gcd(i,j)==d]f(n,m)=\sum_{i=1}^n\sum_{j=1}^m [ gcd(i,j)==d ]f(n,...
2019-03-14 12:34:59
290
原创 题解:POI2007 ZAP-Queries 【莫比乌斯反演】
题意:求∑i=1n∑j=1m[gcd(i,j)==d]求 \sum_{i=1}^n\sum_{j=1}^m [ gcd(i,j)==d ]求i=1∑nj=1∑m[gcd(i,j)==d]这个题目很明显就是一个莫比乌斯反演的板子题我们令f(x)=∑i=1n∑j=1m[gcd(i,j)=x]我们令 f(x)=\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)=x]我们令f(...
2019-03-14 12:26:54
268
原创 题解:BZOJ 4361 isn【dp】【容斥】
给出一个长度为n的序列A(A1,A2…AN)。如果序列A不是非降的,你必须从中删去一个数,这一操作,直到A非降为止。求有多少种不同的操作方案,答案模10^9+7。对于这个题目,我们用 f [ i , j ]表示选到 i ,i 必须选,已经删了j个,构成一个不降的子序列的方案数于是由于每次都是从前for,然后统计个数,我们考虑用树状数组优化因为取出来有一定的顺序,所以要乘以 ( n -...
2019-03-13 17:08:36
345
原创 题解:BZOJ4358: permu 【莫队】
题目给出一个长度为 n 的排列 P(P1,P2,…,Pn) ,以及 m 个询问。每次询问某个区间 [l,r] 中, 最长的值域连续段长度这个题目很容易的可以看出来这是一个莫对的题目,然后就能够做出来优秀的O(n sqrn logn )的线段树+莫对的算法,于是…这是我的结果这是大佬的分数**其实这个题目考的是卡常 **废话了半天就来说一下这个优秀的(可以让大佬A掉的优秀算法)...
2019-03-13 17:00:15
842
原创 题解:HNOI2004 敲砖块 【DP】
作为一个小蒟蒻,感觉自己的DP已经菜的要死了…省选前抱普及的佛脚这个题目大佬们说要旋转,然后本蒟蒻不会…怎么看都像是树形背包但是他上面的两个转移过来中间有重叠,所以和树形背包没有任何关系…压根就不是一棵树…于是开始磕…int main(){ n=read(),m=read(); for(int i=1;i&lt;=n;++i) { for(in...
2019-03-12 14:17:38
296
原创 题解:ZJOI2008 树的统计 【树链剖分】
这个题目就是树剖的板子题(比板子还裸)于是就直接上了QAQ还是先扯一下树剖吧fa[x]:x在树中的父亲dep[x]:x在树中的深度size[x]:x的子树结点数(子树大小)son[x]:x的重儿子,即u→son[u]为重边top[x]:x所在重路径的顶部结点(深度最小)seg[x]:x在线段树中的位置(下标) (但是我一直发疯打的seq)rev[x]:线段树中第x个位置对应的...
2019-03-11 08:33:21
227
原创 题解:HNOI2004 L语言 【AC自动机】
这个题目就是AC自动机的一个半板子题,难度不大(然而似乎没什么人用AC自动机)似乎暴力跑的更快???(应该只是我水)直接建AC自动机,然后跑就信了(喵喵喵???)用广搜的样式(懒得慌STL好),DP的思想,然后就那样的找,最后能跑到的最后面的一个就是我们要找的长度(因为如果前面的有问题他是泡不到后面的,正确性一定可以保证)#include <iostream>#include...
2019-03-11 08:25:23
257
原创 题解:HEOI2014 人人尽说江南好 【博弈论】
作为一个文科学不好的喜欢文科的假的理科生,我是被标题骗进来的这个题目看完之后很容易的就能看出来这是个博弈论,对于博弈论其实我什么都不会,但是这个题目水啊不管怎么取,石子的最终分布一定是:m,m,m…(共n/m个m),n%m ; (因为初始每堆1个,石头数不能超过m)那么直接可以求出合并成最终状态需要的次数,%2判断即可那么不就是 (n / m)*(m - 1)+n % m - 1闲得慌粘...
2019-03-11 08:18:15
350
原创 小蒟蒻的计算几何学习初步
文章目录点和向量表示法:运算四则运算点积叉积旋转直线点和向量表示法:点用横纵坐标来表示,所以我们定义一个结构体而向量可以用一个点表示,所以就直接当点来用struct Point { double x,y; Point(double x=0,double y=0):x(x),y(y) {};};typedef Point Vector;运算四则运算最简单的普通的加减乘除运算...
2019-03-11 08:06:07
274
原创 题解:SDOI2005 扫雷 【DP】
这道题总的来说还是很简单的,但教练在我们只会数组循环什么的时候考试是几个意思,考试过了几百年之后发现了这个,成功给他A掉了思路是DP(万物皆可DP)状态设计:f[N][2][2] i,j,k分别表示第几个,第i个有没有雷,第i+1个有没有雷初始化:f[0][0][0]=f[0][0][1]=1; 转移比较好理解a[i]==0从f[i-1][0][0]转移到f[i][0][0]a[...
2019-03-11 08:05:23
307
原创 题解:SDOI2010 连续攻击游戏 【二分图】
这个题目,我们很容易的看出来这是个二分图匹配,每个装备和两个属性连边,然后跑二分图匹配就行了struct node { int next,to;} e[N&lt;&lt;1];int h[N&lt;&lt;1],n,m,cnt;#define add(u,v) e[++cnt].next=h[u],e[cnt].to=v,h[u]=cnt;#define QXX(u) for(i...
2019-03-11 08:03:28
179
原创 题解:ZJOI2007 棋盘制作【DP】
这个题目属于悬线法的板子题,用于求最大矩形或最大正方形问题这里我们需要记录三个数组 left,right,upleft [ i ] [ j ] 表示 i j 能到达的最左端的位置rigth [ i ] [ j ]表示 i j 能到达的最右端的位置up [ i ] [ j ] 表示从 i j 向上扩展最长长度.于是,我们可以写出这样的递推式:l e f t [ i ] [ j ] ...
2019-03-11 07:59:36
208
原创 题解:poj2449 Remmarguts' Date 【k短路模板】
传送门这个题就是求第k短路的板子题,由于数据范围,不能暴力n*(短路复杂度)来更新
2019-03-09 18:55:02
206
原创 题解:NOIP2018旅行
这个题目其实挺水的,CCF数据也比较水我们考虑对于一棵树的情况,找 dfs 序最小,那么直接贪心,从1开始找,每次遍历最小,输出即可对于环基树,我们采用暴力断边(n<=5000),所以N2是没有任何问题的,然后更新最小字典序即可(这个数据范围水到我连领接表都懒得开,然而本蒟蒻考场上依旧没A)代码如下:#include <iostream>#include <cs...
2019-03-08 22:10:49
620
原创 题解:poj3013 Big Christmas Tree 【最短路】
传送门这个题题意是,给一个n个节点的图,在要求其一棵以1结点为根的生成树使树的边权和最小,树边权 = 对应的图边权 * 树边末端点为根的子树所有结点对于图顶点的点权和然后就是直接跑最短路(我爱SPFA)#include<iostream>#include<cstdio>#include<queue>#include<cstring>u...
2019-03-08 18:49:36
224
原创 题解:poj3715 Blue and Red 【二分图】
传送门这个题目就是二分图最大匹配,然后输出字典序最小的那个编号,这个输出和[NOI2009]变换序列有点像,区别就是这个题水一些#include &lt;cstdio&gt;#include &lt;cstring&gt;#include &lt;iostream&gt;using namespace std; const int M = 210;bool g[M][M],vis...
2019-03-08 18:10:34
308
原创 题解:poj3261Milk Patterns 【后缀数组】
传送门这个题意是求 可重叠的出现K次的最长重复子串我们考虑二分子串长度#include <iostream>#include <cstdio>using namespace std;const int N=200020;int n,k,m,sa[N],h[N],rk[N],x[N],y[N],c[N],s[N];void qsort() { for(i...
2019-03-08 17:26:09
227
原创 题解:POJ1743 Musical Theme 【后缀数组】
传送门这个题目的题意就是差分一下,求差分数组的不可重叠的最长重复子串这个题目的暴力很简单,就不多扯了(考试打了四个暴力的蒟蒻捂脸走开)于是我们考虑二分这个子串的长度,然后运用后缀数组进行判断#include <algorithm>#include <iostream>#include <cstdio>using namespace std;co...
2019-03-08 14:40:02
264
原创 题解:POJ1636 Prison rearrangement 【DP】
传送门#include &lt;algorithm&gt;#include &lt;iostream&gt;#include &lt;cstring&gt;#include &lt;vector&gt;#include &lt;cstdio&gt;#include &lt;cmath&gt;using n
2019-03-06 16:21:09
528
原创 题解:POJ1035 Spell checker 【DP】
传送门对于这个题目,原本打算打AC自动机的,结果看了一眼数据范围,暴力码上去对于一个串如果进行修改可以变成另外一个串,那么这两个串的长度相差 1,-1,0,然后暴力for过去,判断相同字符数量,暴力比较即可#include <algorithm>#include <iostream>#include <cstring>#include <cst...
2019-03-06 15:33:06
260
原创 题解:POJ1015 Jury Compromise 【DP】
传送门描述在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定。陪审团是由法官从公众中挑选的。先随机挑选n个人作为陪审团的候选人,然后再从这n个人中选m人组成陪审团。选m人的办法是:控方和辩方会根据对候选人的喜欢程度,给所有候选人打分,分值从0到20。为了公平起见,法官选出陪审团的原则是:选出的m个人,必须满足辩方总分和控方总分的差的绝对值最小。如果有多种选择方案的辩方总分和控方总分的之差...
2019-03-06 15:14:14
422
原创 题解:[模板] 割点
本蒟蒻一下tarjan算法,然后就不知死活的觉得自己应该都会了,然后就在割点上卡了几天捂脸,来发一篇题解其实,Tarjan算法的精髓是dfn和lowdfn[i]就是时间戳,即在什么时刻搜索到了点ilow[i]则是i点能回溯到的dfn最小的祖先low[a]=min(low[a],dfn[p]);ps:给的图不一定是连通图(卡的我啊啊啊)链式前向星开边要2倍(这个应该都知道吧)#i...
2019-03-04 17:42:26
217
原创 小蒟蒻的题解(代码)系列-----凸包入门题目集合
学习过斜率优化的童鞋们应该对凸包都不陌生,这里就不做详细的介绍了手动上代码 P2742 【模板】二维凸包#include <algorithm>#include <iostream>#include <cstdio>#include <cmath>using namespace std;const int N=100010;const...
2019-03-04 17:37:56
716
原创 题解:餐巾计划问题
传送门一个餐厅在相继的 NNN 天里,每天需用的餐巾数不尽相同。假设第 iii 天需要 rir_iri块餐巾( i=1,2,…,N)。餐厅可以购买新的餐巾,每块餐巾的费用为 ppp 分;或者把旧餐巾送到快洗部,洗一块需 m 天,其费用为 f 分;或者送到慢洗部,洗一块需 nnn 天(n&gt;mn&gt;mn&gt;m),其费用为 sss 分(s&lt;fs&lt;fs&lt;f)、每天结...
2019-02-20 19:48:18
657
原创 题解:[TJOI2015]线性代数
传送门为了提高智商,ZJY开始学习线性代数。她的小伙伴菠萝给她出了这样一个问题:给定一个n×nn×nn×n的矩阵BBB和一个1×n1×n1×n的矩阵CCC。求出一个1×n1×n1×n的01矩阵AAA。使得D=(A×B−C)×ATD=(A×B-C)×A^{\sf T}D=(A×B−C)×AT最大,其中ATA^{\sf T}AT为AAA的转置。输出DDD。其实这个题目本身不算难,只要把它给展开...
2019-02-20 19:41:08
177
原创 快(gui)速乘
有的时候,普通的乘法然后取模,在乘的过程中会爆 long long,所以我们需要使用快速乘有一种基于快速幂的算法的快速乘,复杂度(logn)inline ll quick_mul(ll a,ll n,ll mo){ ll ans=0; while(n){ if(n&amp;1) ans=(ans+a)%mo; a=(a&lt;&lt;1)%mo;...
2019-02-18 15:42:53
254
原创 题解:方格取数问题
传送门在一个有 m*n 个方格的棋盘中,每个方格中有一个正整数。现要从方格中取数,使任意 2 个数所在方格没有公共边,且取出的数的总和最大。试设计一个满足要求的取数算法。对于给定的方格棋盘,按照取数要求编程找出总和最大的数。这个题目也是很明显的网络流,奇偶性建图,最后总和-最小割即为答案#include &amp;lt;iostream&amp;gt;#include &amp;lt;cstdio&amp;gt;#.
2019-02-16 15:20:57
959
1
原创 题解:骑士共存问题
传送门对于给定的 n*n 个方格的国际象棋棋盘和障碍标志,计算棋盘上最多可以放置多少个骑士,使得它们彼此互不攻击这个题运用奇偶性建图,黑白染色,黑连S,白连T,然后跑最大流,求出最小割,用n2 减去即可。#include &lt;queue&gt;#include &lt;cstdio&gt;#include &lt;cstring&gt;#include &lt;iostream
2019-02-16 15:17:55
487
原创 题解:[NOI2016]区间
传送门在数轴上有NN 个闭区间 [l_1,r_1],[l_2,r_2],…,[l_n,r_n][l_1,r_1 ],[l_2 ,r_2 ],…,。现在要从中选出M 个区间,使得这M 个区间共同包含至少一个位置。换句话说,就是使得存在一个 x,使得对于每一个被选中的区间,都有 l_i≤x≤r_i 。对于一个合法的选取方案,它的花费为被选中的最长区间长度减去被选中的最短区间长度。区间 的长度...
2019-02-15 21:13:48
620
原创 题解:APIO2007
话说,相对而言,2007APIO是简单多了。三道题:风铃 数据备份 动物园风铃:难度不大,两边DFS即可完成,同时也不要忘了特判数据备份:部分分很足,正解方法很多动物园:状压DP,比较版子题解如下:风铃数据备份动物园(完成时间:19.2.15)...
2019-02-15 18:37:11
204
原创 题解:[APIO/CTSC 2007]数据备份
传送门你在一家 IT 公司为大型写字楼或办公楼(offices)的计算机数据做备份。然而数据备份的工作是枯燥乏味的,因此你想设计一个系统让不同的办公楼彼此之间互相备份,而你则坐在家中尽享计算机游戏的乐趣。已知办公楼都位于同一条街上。你决定给这些办公楼配对(两个一组)。每一对办公楼可以通过在这两个建筑物之间铺设网络电缆使得它们可以互相备份。然而,网络电缆的费用很高。当地电信公司仅能为你提供 ...
2019-02-15 18:28:45
359
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人