自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [atcoder]AtCoder Grand Contest 027题解

【题目链接】https://agc027.contest.atcoder.jp/A【题解】题意:是把xxx个糖果分给nnn个人,一个人如果恰好分到aia_{i}ai​个糖果就会高兴。求最多使多少个人高兴。​ 题解:一定是优先满足需求小的人,特判有额外的剩余糖果。时间复杂度:O(NlogN)O(NlogN)O(NlogN)  【代码】# include <bits/stdc+...

2018-09-19 08:51:43 453 2

原创 [uoj386][UNR #3]鸽子固定器【贪心】

【题目链接】   http://uoj.ac/problem/386 【题解】   考虑先把序列按SSS排序后,将VVV从小到大从中删去,删去时用包含它的区间更新答案。   为什么答案一定是一段区间:由于数列中剩下的数VVV没有比当前数更小的。用反证法,如果不是一段区间,那么把当前点替换为区间隔开的点答案不会变劣。   时间复杂度O(NM2)O(NM2)O(NM^2) 【代码】/*...

2018-07-15 15:07:04 887 2

原创 [uoj389][UNR #3]白鸽【欧拉回路】【射线法】【费用流】

【题目链接】   http://uoj.ac/problem/389 【题解】   首先存在欧拉回路的条件是所有非孤立点都与一号点连通,并且每个点的度数都是偶数。   一个简单的想法,把每条边绕原点旋转在的角度记为这条边的费用(如果是负的就把这条边反向),我们先把所有的费用都加在一起作为初始的答案。那么显然会有一些点的度数不符合条件。考虑费用流,对于一条边(u,v)(u,v)(u,v)我们...

2018-07-15 14:59:53 465

原创 [uoj390][UNR #3]百鸽笼【dp】【容斥原理】

【题目链接】   http://uoj.ac/problem/390 【题解】   考虑容斥原理,计算第iii列的时候,可以强制一些列在它之后被选取完,其他的列就不用处理了。   那么直到iii取完为止,只考虑我们强制选的列,一定有aiaia_{i}个iii,其他强制的列jjj都小于ajaja_{j}个,且这个序列以iii结尾。由于没有任何一个列被提前取完,那么每一个这样的序列的出现概率都...

2018-07-15 09:48:46 808

原创 [bzoj3601]一个人的数论【高斯消元】【莫比乌斯反演】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=3601 【题解】   首先给定的式子不是一个积性函数(一开始想都没想写了一发,直接gg)。   我们要求的是:∑ni=1[gcd(i,n)==1]id∑i=1n[gcd(i,n)==1]id\sum_{i=1}^{n}[gcd(i,n)==1]i^d   看到gcd先反演...

2018-06-28 21:37:31 261

原创 [bzoj3170][Tjoi2013]松鼠聚会【切比雪夫距离】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=3170 【题解】   首先将切比雪夫距离转换为曼哈顿距离。   把每个点的坐标变为(x+y2,x−y2)(x+y2,x−y2)(\frac{x+y}{2},\frac{x-y}{2})后曼哈顿距离等于之前的切比雪夫距离。   证明:   设切比雪夫距离为aaa,曼哈顿距...

2018-06-26 22:26:50 312

原创 [bzoj5093][Lydsy1711月赛]图的价值【FFT~NTT】【stirling数】【二项式反演】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=5093 【题解】   首先每个点都是独立的,可以求出一个点的贡献再把它乘以nnn,枚举这个点连了多少条边,可以列出式子:   ans=n∗2(n−12)∑n−1i=0(n−1i)ikans=n∗2(2n−1)∑i=0n−1(in−1)ikans = n*2^{\left(_...

2018-06-26 18:48:59 280

原创 [bzoj4504]K个串【可持久化线段树】【堆】

【题目链接】    【题解】   首先记下每个点向右所控制的区间,就是它到下一个与它相同的位置-1。   我们考虑对于每个左端点维护一棵线段树下标表示以该点为右端点的区间的答案。   那么左端点为1的区间可以O(N)O(N)O(N)暴力求出。   对于两个相邻的左端点i,i+1i,i+1i,i+1,只有iii所控制的区间会减去iii的值。用可持久化线段树+标记永久化即可。   然后将...

2018-06-25 21:10:30 297

原创 [bzoj4555][Tjoi2016&Heoi2016]求和【stirling数】【FFT~NTT】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=4555 【题解】   考虑第二类斯特林数的公式:   xn=∑xi=0(xi)i!∗Sn,ixn=∑i=0x(ix)i!∗Sn,ix^n=\sum_{i=0}^{x}\left(_{i}^{x}\right)i!*S_{n,i}   就是先枚举选了几个格子,再乘以顺序。 ...

2018-06-25 07:46:11 228

原创 [bzoj4810][Ynoi2017]由乃的玉米田【bitset】【莫队】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=4810 【题解】   首先可以离线下来使用莫队,这样就知道了每个询问区间中每个数是否出现,将其压为一个bitset,记为fff。   考虑如何询问:   对于操作1:可行的条件是fff^f<<xf<<xf 000。   对于操作2:记ggg表示f...

2018-06-23 22:06:37 242

原创 [bzoj3687]简单题【bitset】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=3687 【题解】   简要来说就是求出有哪些和出现了奇数次。   记fi,jfi,jf_{i,j}表示现在出来到第iii个数和为jjj的奇偶性。   于是有fi,j=fi−1,jfi,j=fi−1,jf_{i,j}=f_{i-1,j}^fi−1,j−aifi−1,j−ai...

2018-06-23 21:57:28 311

原创 [bzoj4713]迷失的字符串【bitset】【树形dp】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=4713 【题解】   首先考虑只有一个串时的做法,可以进行dp,记fi,jfi,jf_{i,j}表示从iii的子树中任意一点出发到iii能否匹配字符串的1..j1..j1..j位且iii与jjj匹配。同时记gi,jgi,jg_{i,j}表示从iii的子树中出发到iii能否从后...

2018-06-23 21:33:29 840 4

原创 [bzoj2595][Wc2008]游览计划【斯坦纳树】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=2595 【题解】   斯坦纳树模板题。   记fi,j,kfi,j,kf_{i,j,k}表示当前最小生成树的根在(i,j)(i,j)(i,j),连在这棵树上的关键点(景点)的状态为kkk,(k是一个二进制数,表示关键点是否与根连通)。   转移分为当前层转移和跨层转移,当...

2018-06-20 20:52:20 208

原创 [bzoj2597][Wc2007]剪刀石头布【费用流】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=2597 【题解】   考虑从总的方案数中减去不合法的方案数,一个不合法的三元环,一定有且只有点的出度为3。所以一个度数为kkk的点会产生1+2+..k−1=k∗(k−1)/21+2+..k−1=k∗(k−1)/21 + 2 + .. k - 1=k*(k - 1)/2个不合法...

2018-06-19 20:53:03 237

原创 [bzoj2296][POJ Challenge]随机种子【构造】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=2296 【题解】   前十位用来保证1−101−101-10出现过,后666位用来保证这个数是xxx的倍数。由于x&lt;1e6x&lt;1e6x < 1e6所以一定有解。   时间复杂度O(1)O(1)O(1)。 【代码】/* - - - - - - - - - -...

2018-06-19 19:31:53 216

原创 [bzoj3325] [Scoi2013]密码【malachar】【贪心】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=3325 【题解】   由于一定有解,所以每个位置只要计算一次,所以考虑用马拉车来解决。可以通过马拉车的思路,如果之前算到这里,那么就不再算下去。同时再开一个数组记录每个数不能填的数,显然复杂度是O(N)O(N)O(N)。 【代码】/* - - - - - - - - -...

2018-06-19 19:28:45 253

原创 [bzoj1361][Wc2004]孪生项链【dp】【字符串】【容斥原理】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=1361 【题解】   先考虑第二问,显然是一个简单的容斥原理,记不循环同构的串的数量为fifif_{i},那么有:fi=2i−∑j|ifjfi=2i−∑j|ifjf_{i} = 2 ^i-\sum_{j|i}f_{j}   那么答案就是fk/kfk/kf_{k}/k   ...

2018-06-19 18:34:29 338

原创 [bzoj3052][wc2013]糖果公园【树上莫队】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=3052 【题解】   首先是树上莫队的一些套路:   1.如果是查询子树信息,那么可以选择按dfs序进行分块,这样查询的位置一定是一段区间。   2.如果是查询一条链的信息,那么欧拉序是首选,记进入时间为iniiniin_{i}, 离开时间为outioutiout_{i}...

2018-06-16 22:27:02 235

原创 [bzoj1598][Usaco2008 Mar]牛跑步【k短路】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=1598 【题解】   A*模板题。 【代码】/* - - - - - - - - - - - - - - - User : VanishD problem : [bzoj1598] Points : K-th shortest...

2018-06-13 21:29:35 212

原创 [bzoj1073][SCOI2007]kshort【K短路】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=1073 【题解】   重点:我没有cheat   题意非常简单,就是求aaa到bbb的第k大简单路径。普通的A*算法并没有可靠的复杂度保证。这里介绍一种有复杂度保证的Yen算法。   先给一个简单的概括:首先求出aaa到bbb的最短路,加入优先队列中。然后考虑每次将一条最...

2018-06-13 19:01:55 442

原创 [bzoj5339][TJOI2018]教科书般的亵渎【拉格朗日插值法】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=5339   https://loj.ac/problem/2578 【题解】   显然k=m+1k=m+1k=m+1,然后就是一个kkk次幂的前缀和减去几个没有的值。   用插值法可以实现。   时间复杂度O(N3)O(N3)O(N^3) 【代码】# includ...

2018-06-13 11:03:35 415 1

原创 [bzoj5338][loj2557][TJOI2018]xor【可持久化线段树】【dfs序】【欧拉序】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=5338   https://loj.ac/problem/2577 【题解】   可以开两棵可持久化权值线段树,一棵记dfs序维护子树信息,另一棵记欧拉序维护链信息。在开先段树的时候左边的二进制首位为000,右边为111。   对于一次询问,贪心向下选取就行了。   时...

2018-06-13 10:59:20 329

原创 [bzoj5337][loj2576][TJOI2018]str【字符串哈希】【后缀自动机】【dp】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=5337   https://loj.ac/problem/2576 【题解】   随便怎么做都可以。   比较简单的做法是:记f[i][j]f[i][j]f[i][j]表示考虑了前iii个串,当前的末尾匹配到了第jjj位。那么可以用字符串哈希判断一段是否能匹配做到O(1)...

2018-06-13 10:52:21 291

原创 [bzoj4559][loj2026][JLoi2016]成绩比较【拉格朗日插值法】【dp】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=4559   https://loj.ac/problem/2026 【题解】   记fi,jfi,jf_{i,j}表示当前统计到第iii门课程,仍然有jjj个人被碾压,可以枚举通过上一门课程的碾压人数来转移。   记gigig_{i}表示第iii门课可行的方案数。   ...

2018-06-12 18:42:44 320

原创 [bzoj3157][bzoj3516]国王奇遇记【数学】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=3157 【题解】   一道数学题,考虑使用扰动法。记f(k)=∑ni=1ik∗mif(k)=∑i=1nik∗mif(k)=\sum_{i = 1}^{n}i^k*m^i   那么有(k&amp;gt;0)(k&amp;gt;0)(k&gt;0):m∗f(k)−f(k)=∑ni=1ik∗mi+1−...

2018-06-12 14:49:55 273

原创 [bzoj5336][loj2575][TJOI2018]party【状压dp】

【题目链接】   https://loj.ac/problem/2575 【题解】   考虑状压最长公共子序列dp数组的一行(K个)。显然这个数组是单调增的,那么就可以用k个0/1位表示。再预处理出转移,就可以dp了。   时间复杂度O(N∗2K∗3∗3)O(N∗2K∗3∗3)O(N*2^K*3*3) 【代码】# include &amp;lt;bits/stdc++.h&amp;gt;# def...

2018-06-12 13:55:53 261

原创 [bzoj5335][loj2574][TJOI2018]智力竞赛【网络流】

【题目链接】   https://loj.ac/problem/2574 【题解】   每次加入最小的点并判断是否可行,判断的方法是将每个点拆成入点和出点,加入时连一条下界为1的边,跑最小流。若最小流≤n+1≤n+1\leq n + 1则可行。   时间复杂度O(MV)O(MV)O(MV) (V为边数)(V为边数)(V为边数) 【代码】# include &amp;lt;bits/stdc+...

2018-06-12 13:44:28 352

原创 [bzoj5334][loj2573][TJOI2018]数学计算【线段树】

【题目链接】   https://loj.ac/problem/2573 【题解】   线段树维护区间乘积。   时间复杂度O(N∗logN)O(N∗logN)O(N*logN) 【代码】# include &amp;amp;lt;bits/stdc++.h&amp;amp;gt;# define ll long long# define inf 0x3f3f3f3f# defi...

2018-06-12 13:24:02 174

原创 [bzoj3622]已经没有什么好害怕的了【二项式反演】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=3622 【题解】   显然糖果&gt;药片的一共有(n+k)/2(n+k)/2(n+k)/2组,记为ppp。   记FiFiF_{i}表示组数恰好为iii的方案数,我们要求的就是FpFpF_{p}   直接算不好算,我们考虑求≥i≥i\geq i的方案数GiGiG_{i}...

2018-06-09 16:27:17 297

原创 [hdu4372]Count the Buildings【stirling数】

【题目链接】   http://acm.hdu.edu.cn/showproblem.php?pid=4372 【题解】   首先最高的一定能看到。   那么我们可以把序列划分为左边和右边,一共n−1n−1n-1个数,左边能看到x−1x−1x-1,右边能看到y−1y−1y-1个数。接下来,可以把左边分为x−1x−1x-1段,每一段的第一个为可见的,右边同理。同时n−1n−1n-1个数的排列...

2018-06-07 18:28:30 163

原创 [bzoj5329][loj2562][Sdoi2018]战略游戏【点双连通分量】【虚树】【圆方树】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=5329   https://loj.ac/problem/2562 【题解】   首先用求点双的方法建出圆方树,那么答案就是虚树中没有被用到的圆点数。   关于如何求点双(圆方树):如果一个点的low不小于父亲的dfn,那么这个点就是割点,新建一个方点。一直弹栈直至把这个...

2018-06-04 17:04:25 314

原创 [bzoj3668][Noi2014]起床困难综合症【贪心】【模拟】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=3668   http://uoj.ac/problem/2 【题解】   依次枚举每一位,若填1比填0大,填1。否则为了之后能填1,填0。   时间复杂度O(30N)O(30N)O(30N) 【代码】/* - - - - - - - - - - - - - - -...

2018-06-04 14:42:35 281

原创 [bzoj3669][uoj3][Noi2014]魔法森林【link-cut-tree】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=3669   http://uoj.ac/problem/3 【题解】   首先我们可以从小到大枚举a的最大值,然后维护b的最小生成树。显然需要用到lct,然而lct并不能维护边信息,所以我们需要把每条边变成一个点并向两头连边。每次新加入一条边(u,v)(u,v)(u,v),...

2018-06-04 14:37:25 195

原创 [bzoj3670][uoj5][Noi2014]动物园【kmp】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=3670   http://uoj.ac/problem/5 【题解】   kmp做两遍,第一遍求出next,第二遍与第一遍差不多,在kmp的时候多一个不超过1/2的条件。   时间复杂度O(N)O(N)O(N)   然而我一开始做的时候没有想到,写了一个瞎搞的暴力,竟然...

2018-06-04 14:28:58 193

原创 [bzoj3671][uoj6][Noi2014]随机数生成器【常数优化】【贪心】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=3671   http://uoj.ac/problem/6 【题解】   首先求出X的数列,这是这道题的难点(?),要注意尽量少取模。   接下来就简单了,从小到大枚举每个数,用贪心的策略选取,并把这个数的左下和右上方的所有数标记为不可选取,注意一旦标记到的数已经不可取了...

2018-06-04 14:21:40 503

原创 [bzoj5077][uoj198][ctsc2016]时空旅行【线段树】【dfs序】

【题目链接】   http://uoj.ac/problem/198   https://www.lydsy.com/JudgeOnline/problem.php?id=5077 【题解】   先求出每个星球在dfs序上的对应区间,虽然有的星球不止一个区间,但区间的总数是O(N)O(N)O(N)级别的。然后把这些区间标记在线段树上。显然每个星球可以看做斜率优化中的一条直线,所以对于线段树...

2018-06-04 14:09:19 444

原创 [bzoj3786]星系探索【欧拉序】【splay】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=3786 【题解】   用splay维护欧拉序,修改相当于将一段区间移到另一个位置。子树加就是区间加,查询链的答案相当于一段前缀和,都是splay基本操作。   时间复杂度O(M∗logN)O(M∗logN)O(M*logN) 【代码】/* - - - - - - - ...

2018-05-31 19:40:44 303

原创 [bzoj4184]shallot【线段树】【线性基】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=4184 【题解】   以时间为下标建立线段树,每个数有一个存在时间区间,挂在对应线段树节点上。询问时维护一个线性基,dfs这颗线段树,在叶节点查询。   时间复杂度O(31N∗logN)O(31N∗logN)O(31N*logN) 【代码】/* - - - - - -...

2018-05-30 17:09:23 253

原创 [bzoj5293][Bjoi2018]求和【最近公共祖先】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=5293 【题解】   大力O(N∗K)O(N∗K)O(N*K)预处理,然后每次询问时倍增求LCA。   这能算省选题? 【代码】# include &lt;bits/stdc++.h&gt;# define ll long long# define...

2018-05-30 14:54:15 294

原创 [bzoj5294][Bjoi2018]二进制【线段树】

【题目链接】   https://www.lydsy.com/JudgeOnline/problem.php?id=5294 【题解】   考虑一个二进制数什么时候重排后模3不余0,只有两种情况。   1.只存在一个1。   2.存在奇数个1且0的数量不大于1。   那么我们考虑从总方案中减去不合法的方案,在线段树中每个节点维护左(右)端第一个与第二个0/1。分情况讨论一下即可。  ...

2018-05-30 14:46:06 447

空空如也

空空如也

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

TA关注的人

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