自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CCPC 2020 我得重新集结部队

题目链接模拟就行了,比赛的时候一直一直一直一直不过,WA哭了(OAO)大概思路,hphphp对虫子而言就是表示剩余的hphphp,对狂热者而言就是表示是否离场。每有一只虫子进来,标识它是个虫子,记录hphphp。每有一个狂热者加入,标识他是狂热者,记hp>0hp>0hp>0(等于1、2、3…都行),然后遍历已有的虫子,找到最近的一个,然后以该虫子的位置为新位置,以狂热者的攻击范围为半径,扫描在当前攻击范围内的虫子,并使其hp−=3×atkhp-=3\times atkhp−=3×at

2020-11-30 10:46:00 6

原创 CCPC 2020 广告投放

题目链接这是一个DP问题,状态表示:dp[i][j]dp[i][j]dp[i][j]表示,前i−1i-1i−1集都决策完毕后,到达第iii集且当前剩余观看人数为jjj时,最大收益很明显可以得到:① dp[i+1][j/d[i]]=max(dp[i+1][j/d[i]],dp[i][j]+p[i]×j)dp[i+1][j/d[i]]=max(dp[i+1][j/d[i]],dp[i][j]+p[i] \times j)dp[i+1][j/d[i]]=max(dp[i+1][j/d[i]],dp[i][j

2020-11-30 10:35:53 9

原创 Codeforce 1436D

题目链接题目大意:一棵树,树上每个节点保存有一个权值,结点的权值自上而下向下传递,直到叶子节点。传递的过程可以传递给多个子节点其中的一个或者多个。求最后各个叶子节点的权值的最大值最小是多少。(传递后,各子节点权值增加对应的值,父节点权值减去相应的值)思路:从根节点开始考虑,如果以根节点为根的子树上所有的叶子节点最后可以平分,则答案显然是sum(i)/leaves(i)+(sum(i)%leaves(i)?1:0)sum(i)/leaves(i) + (sum(i) \% leaves(i) ?1:0

2020-11-08 18:29:37 14

原创 又是一年1024!

1024!

2020-10-24 00:08:50 9

原创 表达整数的奇怪方式AcWing 204 线性同余

线性同余

2020-10-24 00:07:55 20

原创 Sumdiv POJ 1845

传送门题目翻译,不想写不想写求ABA^{B}AB的所有约数之和mod990199019901的值根据约数和定理,ABA^{B}AB的因子和为(1+p1+p12+...+p1c1∗B)∗...∗(1+pm+pm2+...+pmcm∗B(1+{p_{1}}+{p_{1}^{2}}+...+{p_{1}}^{c_{1}*B})*...*(1+{p_{m}}+{p_{m}^{2}}+...+{p_{m}}^{c_{m}*B}(1+p1​+p12​+...+p1​c1​∗B)∗...∗(1+pm​+pm2​+.

2020-10-14 23:19:17 18 1

原创 扩展欧几里得

扩展欧几里得可以求出ax+by=gcd(a,b)ax+by=gcd(a,b)ax+by=gcd(a,b)的一组特解证明:当b=0b=0b=0时,显然有x=1,y=0x=1,y=0x=1,y=0这一组解,但其实yyy并非只能取零,取任何值都可以。若b≠0b\neq 0b​=0,因为ax+by=gcd(a,b)=gcd(b,a%b)=bx+(a%b)yax+by=gcd(a, b)=gcd(b, a \%b)=bx+(a \%b)yax+by=gcd(a,b)=gcd(b,a%b)=bx+(a%b)y

2020-09-28 23:59:45 1403

原创 GCD+几何 AcWing201 可见的点

传送门题目需要求的是正方形内的点,每个点到(0,0)(0,0)(0,0)的连线都有或者不存在斜率,这样的斜率不同的有多少个,包括斜率不存在结论:GCD(x,y)=1GCD(x,y)=1GCD(x,y)=1的为满足条件的,除此以外还有斜率为000和斜率不存在的点定义:k(x,y)k(x,y)k(x,y)表示(x,y)(x,y)(x,y)到(0,0)(0,0)(0,0)连线的斜率证明:1·对于任意一个点(x,y)(x,y)(x,y),若GCD(x,.y)≠1GCD(x,.y)\neq 1GCD(x,.

2020-09-19 20:44:15 37 1

原创 余数之和 数论分块

传送门给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值。例如j(5, 3)=3 mod 1 + 3 mod 2 + 3 mod 3 + 3 mod 4 + 3 mod 5=0+1+0+3+3=7。第一印象肯定是暴力了,但是本题目的数据量太大了,暴力会TLE,因此需要考虑另外的解法。k%i=k−⌊k/i⌋×ik\%i=k-\lfloor k / i \rfloor \times ik%i=k−⌊k/i⌋×i,我们将每个取模运算

2020-09-15 19:38:02 27

原创 整除分块

整出分块用于解决形如∑i=1n⌊n/i⌋\sum_{i=1}^{n} \lfloor n/i \rfloor∑i=1n​⌊n/i⌋的问题。l

2020-09-14 19:59:33 26

原创 反素数

反素数的定义参考题目吧:题目链接N以内的最大的反素数具有如下特征:它是N以内约数个数最多的数字中最小的一个。对任意一个比它小的数字,约数个数没有它多,任何一个比它大的数字,约数数量不比它多,所以它就是反素数。最小的连续11个质因子的连乘积大于N的最大值,因此不会是多余10个不同的质因子。231>N2^{31}>N231>N所以指数总和不超过31如果xxx是反素数,xxx的质因子是连续的若干个最小的质数,且指数单调递减。即可以写成:2c1∗3c2∗5c3∗7c4∗11c5∗13c

2020-09-07 13:14:28 21

原创 阶乘分解为算术基本定理的表示形式

一个数字分解为算数基本定理的表示形式可以借助埃氏筛来进行。一个数字的阶乘分解有两种考虑。对阶乘计算中的每一个数字都进行分解,这种想法比较简单直接,但是复杂度较高。求出N以内的所有的质数,设其中一个为P,1到n中含有因子P的个数为N/P向下取整,然后除了这一部分还有一些还有因子P*P,因为刚刚已经计算了一次P,因此此时依然含有因子P(可以理解为把刚刚的因子P都除去了)的有N/(P * P)向下取整个,同理还有P的三次方等等。直到P的M次方大于N了就没有了。因此可以先埃氏筛或者线性筛筛选出N以内的全部素数

2020-09-05 23:16:36 26

原创 車的放置 最大流求最大匹配

重点说一下二分图的两个部分,可以明确的是,車所在的一行一列不能再放置了,可以将这个位置,看作是車所在的行和列之间的连线,由此我们将行与列分开,可以看出,行的集合内部,没有连线,即没有哪一个車同时对多行起作用,同理,列也是如此,也就是说我们得到了一张二分图。如果某一个点不能放置,可以看作这一行和这一列之间没有边连接。然后根据这个建图,求最大匹配就是答案。#include <bits/stdc++.h>using namespace std;#define mem(a, b) memset(a

2020-08-19 21:51:58 22

原创 棋盘覆盖 最大流求解最大匹配

一个二分图最大匹配的问题,依然是分成两部分,数字坐标和为奇数的为一部分,和为偶数的为另一部分。这两部分各自内部没有连线,可以作为二分图。二分图最大匹配可以用最大流解决。可以引进一个源点sss,从sss出发向二分图的左部分连线(有向边),把从左部分连向右部分的双向边换成从左连向右边的单向边,然后从二分图的右部分的每个点出发,连向汇点ttt,图中所有边的权值都是1,这样一个图就建好了。然后跑一边~~沙(Sand)盒(Box)~~的Dinic,最大流量就是答案。#include <bits/stdc+

2020-08-19 18:11:04 22

原创 多路增广 Dinic算法

Dinic多路增广算法

2020-08-11 13:50:25 58

原创 EK最大流

EK最短增广路算法

2020-08-11 10:02:47 22

转载 最大流中反向边的作用和意义

流量需要满足三个限制条件:容量限制 f(u,v)≤c(u,v)f(u,v)\leq c(u,v)f(u,v)≤c(u,v)流量守恒 ∑(S,v)ϵE=∑(u,T)ϵE\sum_{(S,v)\epsilon E}=\sum_{(u,T)\epsilon E}∑(S,v)ϵE​=∑(u,T)ϵE​斜对称 f(x,y)=−f(y,x)f(x,y)=-f(y,x)f(x,y)=−f(y,x)斜对称的性质就决定了最大流中需要存在反向的流量(反向边),蒟蒻如我,不懂这样的反向流量的意义何在,于是查了一下资料

2020-08-09 17:14:12 83

原创 随笔(一)

今天老师在微信群里发了一个研究生复试的题,让我们看了看,不难。大概意思就是,有n辆车进隧道,隧道禁止超车,进入的顺序是1−n1 -n1−n,出来的顺序是一个包含n个不重复整数的序列,例如出来的是4 3 2 1判断隧道中有多少辆车超车了。文件中,有一个不知名的学长的代码,有点问题(岂止有点问题,问题好多好嘛,爆栈+TLE),我看了一眼,woc,这不就是一个和逆序数有关的sb题吗。树状数组搞一下,貌似没问题(也确实没问题)。Nlog2NNlog_2NNlog2​N本来以为很优秀了,然后问了东哥,东哥给了一

2020-05-14 21:37:49 50

原创 heap 堆

懒,不想说堆是啥了,就说说咋实现一个大顶堆吧用一个数组保存一个二叉堆,就像二叉树一样,一个节点(下标为indexindexindex),其儿子节点分别为index×2和index×2+1index\times2和index\times2+1index×2和index×2+1如果是一个大顶堆,就满足每个节点的值都比它的两个儿子的值大,显然堆顶就是最大值,对应的就是heap[1]heap[1]he...

2020-05-08 11:29:51 50

原创 CF600E dsu on tree 优雅的暴力(第六次重新来过)

dsu on tree 和 莫队算法很像,哪里像?出于暴力而胜于暴力。。。dsu on tree 也叫树上启发式合并,借用了并查集(dsu)合并的思想,因此叫dsu on tree思路也很简洁,第一步也是树链剖分的第一步,求重儿子。然后就是解决问题。大致思路是,优先处理轻儿子,将轻儿子处理出来以后,再处理重儿子。然而因为同一个点的轻重儿子是平行的,往往信息不相关,因此为了避免不同儿子之间信息...

2020-05-04 17:33:00 68

原创 JLOI2014 松鼠的新家 (树剖)

题面题面中文的,不多说了吧按照给定的序列走,其实就是走树上的一条路径,但是有点特殊,如果是3−5−23-5-23−5−2,其实555这个点只计算一次。OK,树上路径问题,裸的树剖,树剖完成后,线段树维护区间和,更新的时候更新路径两个点在线段树上对应的区间,但是这样会多计算一次中间的点,因此除了第一个点以外,其余的点的查询结果减一即可。#include <bits/stdc++.h&g...

2020-04-25 22:50:48 42

原创 NOI 2015 软件包管理器(树链剖分)

题目链接中文题,不写题目描述了,大致意思就是,在安装和卸载程序的时候,会有依赖项,假设AAA依赖于BBB,那么安装AAA之前必须先安装BBB,同理,卸载BBB之前必须卸载AAA,问每次安装或卸载程序,有多少个安装包的状态被改变了。当然,可以暴力求解,但是数据量不允许。首先明确这是一个树的模型,(题中说了每个程序仅依赖于一个),但是可能会有一个依赖链,即CCC依赖BBB,BBB依赖于AAA,而...

2020-04-24 13:44:49 72

原创 重链剖分

将整棵树剖分为若干条不相交的链,使它组合成线性结构,然后用其他的数据结构(树状数组或线段树等等)维护信息。我们以它对树上两点之间路径上权值的最大值的查询和修改为例,来介绍树链剖分。首先有如下几个概念。定义 重子节点 表示其子节点中子树最大的子结点。如果有多个子树最大的子结点,取其一。如果没有子节点,就无重子节点。定义 轻子节点 表示剩余的所有子结点。从这个结点到重子节点的边为 重边 。到...

2020-04-19 23:03:51 79

原创 u's的影响力 (矩阵构造)(第五次重新来过)

我昨天写这个题,写道凌晨两点,一直81分,直到刚才,我发现了错误的地方,一改就A了,woc,心态崩了μ’s在九人齐心协力下,影响力越来越大了!已知第一天影响力为 xxx ,第二天影响力为 yyy ,从第三天开始,每一天的影响力为前两天影响力的乘积再乘以 aaa 的 bbb 次方。 用数学语言描述是:设第iii天的影响力为f(i)f(i)f(i),那么f(1)=xf(1)=xf(1)=x,f(...

2020-04-11 14:03:14 39

原创 斐波那契(矩阵快速幂)

今天随便看了看矩阵的相关内容,顺势学习了一下矩阵构造和矩阵快速幂,然后又顺道写了这个入门题。斐波那契数列,即FibFibFibn =Fib=Fib=Fibn-1+Fib+Fib+Fibn-2,就这么一个数列,显然可以直接地推求解,时间复杂度O(N)O(N)O(N),似乎没什么问题。然后就遇到了这个,nnn的取值范围最大是2×1092\times10^92×109的这么一个题,线性显然不能满足时...

2020-04-09 20:45:19 37

原创 浅谈v_DCC缩点

之前有提到过e_DCC缩点,是求出边双连通分量,将每个边双连通分量看作一个点,桥为边,构建新图,v_DCC缩点更复杂一点。e_DCC中,每个边只会属于一个e_DCC,且桥不会属于任何e_DCC。但是v_DCC就有点不同了,v_DCC中, 割点可能属于多个v_DCC 。OK,那就还是先求割点呗。求割点,那就tarjan呗,但是有两点要注意  1、如果一个点孤立(没有边相连)...

2020-04-08 15:14:15 41

原创 POJ 3694 network tarjan求桥 + LCA + e-DCC缩点 + 并查集优化

题目链接(You can click it.)题目含义:有一张无向图,在其中添边。问每次添边之后,还剩多少桥。前面两篇博文已经说的很明了了吧QAQ,本文说的是带并查集优化解法。首先想一下有什么可以优化的空间。在求出两个点的 lca 后,需要将两个点向上遍历到 lca 处,并且把路径上的桥边标记为非桥边,但是我们发现, 如果这个路径上本来就有一段路径被标记为了非桥边 ,再次走一遍就重复了,能...

2020-04-06 22:47:40 61

原创 POJ 3694 network tarjan求桥 + LCA + e_DCC缩点

题目链接(You can click it.)题目含义:有一张无向图,在其中添边。问每次添边之后,还剩多少桥。一种较为简单的解法(不涉及e_DCC缩点)(You can click it.)接下来介绍一个设计e_DCC缩点的思路。e_DCC缩点其实就是将一个边双连通分量看作是一个点,所以需要求出所有的边双连通分量。缩点的操作如下:求桥(tarjan)求不含桥边的连通块(每一个连通块就...

2020-04-05 23:29:22 38

原创 POJ 3694 network LCA +tarjan求桥

题目链接(You can click it.)题目含义:有一张无向图,在其中添边。问每次添边之后,还剩多少桥。思路:首先,这个题解法不知这一种,这个简单一点,后续会补上其余的几个大同小异的解法(好题值得反复写)。既然是求桥的数量,肯定离不开求桥了,求桥的数量可以在tarjan的过程中每遇到一个满足桥的判定式dfn < low,就ans++,最后ans就是初始桥的数量。或者也可以ta...

2020-04-04 21:27:04 59

原创 浅谈e-DCC缩点

        e-DCC就是边连通分量,指的是原图中一个极大的连通子图(该子图没有桥)        e-DCC缩点,就是将同一个边连通分量内的点看作一个点,将桥当作边连通分量之间的边。    ...

2020-04-02 13:58:12 64

原创 无向图连通性问题--桥

        给定一个无向图G(V, E),若对于e∈\in∈E,从图中删除边 e 后,G 分裂成两个不相连的子图,则称 e 为 G 桥或割边。        OK,定义很简单。可以通过Tarjan算法求解。在Tarjan中,有两个数组...

2020-04-01 15:43:33 75

原创 bzoj 1123 BLO

题目链接(You can click it.)题目描述B城有 n 个城镇,m 条双向道路。每条道路连结两个不同的城镇,没有重复的道路,所有城镇连通。把城镇看作节点,把道路看作边,容易发现,整个城市构成了一个无向图。输入格式       第一行包含两个整数 n 和 m。    ...

2020-04-01 14:21:09 60

原创 AcWing 342 && BZOJ2200 道路与航线(第四次重新来过)

题目链接https://www.acwing.com/problem/content/344/题目描述农夫约翰正在一个新的销售区域对他的牛奶销售方案进行调查。他想把牛奶送到T个城镇,编号为1~T。这些城镇之间通过R条道路 (编号为1到R) 和P条航线 (编号为1到P) 连接。每条道路i或者航线i连接城镇Ai到Bi,花费为Ci。对于道路,0≤Ci≤10,000;然...

2020-03-26 22:39:20 65

原创 NOIP 2009 最优贸易

题目链接https://ac.nowcoder.com/acm/contest/257/C首先明确,这是一个有向图,但是权值并不在边上,权值在图中的一些顶点上。本题相当于求解的是,从1到n的一条路径,使得路径上的两个按照拓扑序先后经过的点,后经过的点的权值减去先经过的点权值的值最大。挺绕的,,,慢慢理解。。。如果直到了从 1 到点 i最小点权,又知道了从 i 到 n 的最大点权,...

2020-03-24 21:04:22 28

原创 POJ 3662 Telephone Lines

第一种解法是分层图,空间开销实在太大了,记录第二个解法。分层图解法请参考https://blog.csdn.net/weixin_43701790/article/details/105025547题目链接http://poj.org/problem?id=3662其实这个题目可以二分求解的。可以很清晰的发现,本题的结果具有单调性,对于一个更小的结果而言,比它大的一定符合条件。根据...

2020-03-23 13:45:24 43

原创 POJ 3662 Telephone Lines

链接:http://poj.org/problem?id=3662英文题面,大概意思就是,有一个无向图,n个点p条边,其中你可以选择最多k条免费边,从起点1到终点n的最远距离是路径上的边中,除去选择的免费边以外的所有边中最长的一条边,求此限制下的最短路。思路:可以用分层图解决。首先,同一层次的点,例如x,p和y,p(表示从1到x,用了p条免费边,从1到y也用了p条,也就是说当前这个边...

2020-03-22 12:49:49 35

原创 BZOJ 2330 & AcWing 368(判断正环+差分约束)(第三次重新来过)

题目链接https://www.acwing.com/problem/content/description/370/这个题,我搞了三天,心态炸裂、、、不得不说,是个好题银河中的恒星浩如烟海,但是我们只关注那些最亮的恒星。我们用一个正整数来表示恒星的亮度,数值越大则恒星就越亮,恒星的亮度最暗是 1。现在对于 N 颗我们关注的恒星,有 M 对亮度之间的相对关系已经判明。你的...

2020-03-19 11:18:59 82 7

原创 AcWing 178 第K短路(第二次重新来过)

目录题目链接https://www.acwing.com/problem/content/description/180/算法1Dijkstra暴力求解算法2A*算法题目链接https://www.acwing.com/problem/content/description/180/题目很直接,就是求第K短路算法1Dijkstra可以求解第K短路:Dijkst...

2020-03-18 19:39:35 41

原创 拓扑序

之前没遇到过需要用拓扑序的题目,只是知道思想,没实现过,今天碰到了,写一下吧。拓扑序其实特简单,感觉不需要咋讲 。拓扑序定义:一个DAG,将所有顶点排成一个序列,使图中任意一条有向边a->b满足a出现在b之前。思路:之前没接触过的我都会,说明它真的不难。QAQ一个点的入度为0说明这个点可以当作当前图中的第一个点出现了,然后删除这个点以及和这个点相关的所有的边,在剩下的图中再...

2020-03-16 15:01:26 37

原创 优先队列优化 dijkstra (第一次重新来过)

ahhhhhhhhhhh,博主已经裂开了,大半夜不睡觉准没好事dijkstra求最短路每次需要取当前更新过的dist中的最小值,因此可以用一个小顶堆,维护这个dist数组中的值,我看着电视剧觉得无聊,就试试写一下,wa,改一下,wa,再改,wa,没毛病啊,再试试,wa,注意维护的顺序应该是dist值小的在堆顶,同时还要记录这是哪个点,所以可以用一个结构体。我看了又看,改了又改,发现,我直...

2020-03-13 00:06:11 73

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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