自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HDU - 5889 Barricade 网络流最大流-最小割+最短路

题目链接题意:有n个城市,长度相同的m条路,上将位于1号城,敌人军队位于n号城,现在可以得知军队只会走从n到1的最短路径,所以上将决定在这些路径上放置障碍(在相应的道路上放置障碍需要消耗相应的w),要求让军队至少碰到一次障碍的同时花费最小。思路:由于只会走最短路,那先跑一遍最短路把会走的边都挑出来,然后就是求最小割的模板题了。最小割:求完最大流之后,按照bfs源点是否能到达分为两个点集...

2020-03-30 19:06:16 261

原创 HDU - 6534 Chika and Friendly Pairs 莫队+树状数组+离散化

题目链接题意:一个长度为 nnn 的序列,现在有 mmm 个提问,每个提问包括一个区间 [l,r][l,r][l,r],询问该区间内有多少对 (ai,aj)(i&lt;j)(a_i,a_j)(i&lt;j)(ai​,aj​)(i<j) 满足 ∣ai−aj∣&lt;=K|a_i - a_j| &lt;= K∣ai​−aj​∣<=K思路:由于 KKK 值...

2019-06-30 22:55:12 182

原创 洛谷 P3384 【模板】树链剖分

题目链接树链剖分:首先给出几个定义:重儿子:对于每个非叶子节点来说,它的儿子中,重儿子作为根节点的子树大小最大。轻儿子:对于每个非叶子节点来说,它的儿子中除了重儿子以外的儿子全是轻儿子。显然叶子节点没有重儿子也没有轻儿子。重链:从上至下,以轻儿子为起点,其余全是重儿子的链。接下来需要进行两边 dfsdfsdfs ,求出树链剖分所需要的元素:dfs1dfs1dfs1:fa[v]fa...

2019-06-20 11:26:55 218

原创 CodeForces - 747F - Igor and Interesting Numbers dp+暴力

题目链接题意:从所有数字出现次数均不超过 ttt 次的16进制数中找到第 kkk 小个数是多少。思路:显然,由于 kkk 的最大不超过2e9 ,所以这个答案的位数不会超过9位,那么我们可以先枚举每个位数下满足题目要求的十六进制数的个数,找到答案的位数,然后从高位到低位枚举即可。对于每种长度的数目个数可以暴力求得,设一个数组 dp[i][j]dp[i][j]dp[i][j] 表示 前 iii ...

2019-04-28 20:59:50 192

原创 Codeforces - 1155D - Beautiful Array dp

题目链接题意:有一个长度为 nnn 的序列以及一个数 xxx , 现在可以从这个序列中选出最多一段子序列乘上 xxx ,或者不选,求这之后能获得的最大子段和是多少。思路:对于整个子序列,显然是可以分成五个部分:左侧未被选入答案,左侧被选入答案但没有乘 xxx ,被选入答案且乘 xxx ,右侧被选入答案但没有乘 xxx ,右侧未被选入答案。那么对于每个位置的数则有这五种状态,直接 dpdpdp...

2019-04-23 19:31:19 196

原创 CodeForces - 785E - Anton and Permutation 分块+暴力+二分

题目链接题意:有一个初始为 1,2,...,n1,2,...,n1,2,...,n 的排列,现在有 qqq 次操作,第 iii 次操作为 li,ril_i,r_ili​,ri​ ,表示交换两个位置上的数,每次操作完询问当前这个排列中有多少逆序对数。思路:由于每次只修改两个位置,相当于只需要计算这两个位置对于答案的贡献,那么我们可以对这个排列进行分块,一共分成 ttt 块: [1,n],[n+1...

2019-04-22 21:21:52 175

原创 HDU - 1598 find the most comfortable road 并查集+贪心

题目链接题意:一个 nnn 个点 mmm 条边的图,每次会询问一个点对 (x,y)(x,y)(x,y) ,要求从 xxx 到 yyy 的一条路径,这条路径上边的最大值-最小值在所有 xxx 到 yyy 的路径里最小。思路:要求最大值-最小值最小,这里有两个约束条件,因为 mmm 最大只有 100010001000 ,所以我们可以考虑暴力枚举最小值的大小来简化题目,把 mmm 条边按权值从小到大...

2019-04-10 21:55:56 207

原创 CodeForces - 805F - Expected diameter of a tree 树的直径+并查集

题目链接题意:有一个由 nnn 个节点, mmm 条边构成的森林,现在有 qqq 组询问,每组询问 v,uv,uv,u 表示随机从两个节点所属的树上分别选一个节点,两个节点连边,使两棵树合并成一棵新树,若能构成新树(即两个节点属于同一棵树),求新树的直径的期望值是多少,否则输出 −1-1−1 。思路:先通过并查集,求出每个点所属的树。根据题目内容提供的思路,新的树的直径其实就是 maxma...

2019-04-05 20:12:47 201

原创 CodeForces - 805E - Ice cream coloring dfs+贪心

题目链接题意:有一棵具有 nnn 个节点的树,每个节点代表一个集合,表示集合内两两元素的颜色不同,同时保证集合中拥有某个元素的所有的节点附带着边提取出来,能够形成一个连通图,即不可能出现有三个节点 v1,v2,v3v1,v2,v3v1,v2,v3 , v1v1v1 与 v2v2v2 有树边, v2v2v2 和 v3v3v3 有树边,而 v1,v3v1,v3v1,v3 集合中有元素 xxx ,而 ...

2019-03-31 22:08:19 254

原创 CodeForces - 570E - Pig and Palindromes dp

题目链接题意:给定一个 n∗mn*mn∗m 的地图,地图上每个格子有一个小写的英文字母,起点为(1,1)(1,1)(1,1) ,终点为 (n,m)(n,m)(n,m) ,且每一步的移动只能往右移一格或者往下移一格。求所有从起点到终点的路径,经过的格子按顺序能组成回文串的路径个数。思路:由于回文串的对称性,可以考虑同时从起点和终点出发,一个往右或下移动,一个往左或上移动。这样状态则为 (x1,y...

2019-03-28 22:06:11 141

原创 Codeforces - 570D - Tree Requests dfs序+思维

题目链接题意:一棵根为1,有 nnn 个节点的树,每个节点表示一个小写字母。现在有 mmm 个询问,每个询问 v,dv,dv,d 表示询问在 vvv 节点的所有深度为 ddd 的孩子,它们所代表的小写字母,能否组成一个回文串。思路:这里设置每个节点有两个元素,一个 push_timepush\_timepush_time 表示 该节点进入递归栈的时间, pop_timepop\_timepop...

2019-03-27 22:21:07 150

原创 牛客寒假算法基础集训营6 - F 石头剪刀布 构造

题目链接题意:一共三种人,喜欢石头、剪刀、布,设定为喜欢石头的和喜欢剪刀的玩,喜欢石头的赢,以此类推。设一共 2n2^n2n 个人,编号为 111, 222, 333,…,2n2^n2n,其中第一轮 111 和 222 比,然后胜者与 333 和 444 的胜者比,一轮一轮下去直到只剩一个人,现在给定 2n2^n2n 个人的喜好,问如何安排编号顺序,能保证比赛进行过程中不会出现喜好相同的人进行比...

2019-03-20 22:02:25 455

原创 CodeForces - 547F2 - Same Sum Blocks (Hard) 贪心

题目链接题意:有一个长为 nnn 的序列,现在要从这段序列中选出多个不相交不覆盖的子段,这些子段的和均相等,求最多能选出多少个这样的子段,且输出选法。思路:由于看到 nnn 的范围不超过 150015001500 ,所以我们可以暴力枚举子段和,对于每个数值的子段和,对于满足这个子段和的子段,我们可以采取贪心策略,尽量选取右端点小的区间就可以使得选出和为当前这个数值的子段个数最多。然后从中选最...

2019-03-20 22:00:50 135

原创 CodeForces - 612D - The Union of k-Segments 扫描线

题目链接题意:给定 nnn 条线段,求这 nnn 条线段上所有覆盖线段数大于等于 kkk 的区间,并且求出的区间数要尽可能少。思路:对于每个点,它所处的线段数 === 左区间的左端点数 −-− 左区间的右端点数,所以我们只需要一个 sum=0sum=0sum=0 ,对于每个点, sumsumsum 只要加上这个点作为左端点的线段个数再减去这个点作为右端点的线段个数即可判断该点是否满足条件。...

2019-03-19 19:44:57 149

原创 HDU - 6301 Distinct Values 优先队列+贪心

题目链接题意:多组数据,每组数据 nnn 个数,每组数据给出 mmm 个区间,对于每个区间,区间内所有数都互不相等。求一种给 nnn 个数设置值,且这个值 xxx 在 [1,n][1,n][1,n] 内的方法,若有多种,求字典序最小的一种。思路:1.先考虑字典序最小,对于当前要填数字的这一位数,我们在它所能填写的数中选数字最小的,然后考虑下一位,即可保证求出来的答案是字典序最小的了。2.求...

2019-03-18 22:00:20 113

原创 洛谷 P1640 [SCOI2010]连续攻击游戏 二分图最大匹配 || 并查集

题目链接题意:有 nnn 个武器,每个武器有两种属性值,每种武器只能使用一次,且只能使用一种属性值,现在用这 nnn 种武器攻击,要求只有使用过 iii 属性值攻击才能使用 i+1i+1i+1 属性值攻击( 1≤i1 \leq i1≤i ),现在求最大能使用到多少属性值进行攻击。思路:第一种:我们可以把一种属性值当作一个点,同时一个武器当作一个点,把武器和他具有的两个属性值相连,问题就变成...

2019-03-03 16:22:30 208

原创 洛谷 P1129 [ZJOI2007]矩阵游戏 二分图最大匹配

题目链接题意:有一个 n∗nn*nn∗n 大小的矩阵,每个格点上都有一种颜色,0表示白色,1表示黑色,可以进行两种操作,交换某两行颜色或者某两列颜色。问是否能通过若干次这两种操作使得矩阵的主对角线(从左上角到右下角)上的格点颜色均为黑色。思路:主要是建图了可以把每一行每一列分别当作一个点,此时若第 iii 行第 jjj 列的格点为黑色,就相当于 iii 和 jjj 之间存在一条无向边,白色则...

2019-02-28 22:23:39 190

原创 洛谷 P2664 树上游戏 点分治

题目链接题意:一个有 nnn 个节点的树,每个节点有相应的颜色,定义一个 s(i,j)s(i,j)s(i,j) 表示从 iii 到 jjj 的路径上不同的颜色数量, sum(i)=∑j=1ns(i,j)sum(i) = \sum_{j=1}^{n}s(i,j)sum(i)=∑j=1n​s(i,j) ,现在要求所有的 sumsumsum 。思路:这种求树上点对之间关系的,一般就是点分治了。那么问...

2019-02-28 08:48:54 226

原创 洛谷 P3806 【模板】点分治1

题目链接题意:给定一个 nnn 个节点的树,每条树边具有一个长度 ccc ,有 mmm 个询问,每次询问包括一个 kkk ,问树上是否存在一个距离为 kkk 的点对。思路:O(-1)点分治。对于一棵有根树,该树上节点的距离可以分为两种:经过该树的根,此时两点的距离即为两点到根的距离相加没有经过该树的根第二种情况下的两点,其实必存在该树的一个子树(不只有一个),这两个点的距离经过...

2019-02-22 15:57:29 211

原创 CDQ分治

CDQCDQCDQ 分治与普通的分治不同, CDQCDQCDQ 分治分的是时间(即操作的顺序),所以 CDQCDQCDQ 分治是一种离线算法,需要把操作全部存下来。同时两个操作之间不能互相影响,这与普通分治是相同的。CDQCDQCDQ 分治的算法流程与归并类似:用归并解决一段数列中的逆序对的数量其实就相当于 CDQCDQCDQ 。归并解决逆序对:对当前数列进行归并排序,在两段区间合并之前,先统...

2019-02-17 21:56:56 252

原创 POJ - 1659 Frogs' Neighborhood Havel-Hakimi定理

题目链接题意:给出每个点的度数,问是否有连边方案使得所有点的度数都满足条件。思路:Havel-Hakimi定理:令 S=(d1,...,dn){S=(d_{1},...,d_{n})}S=(d1​,...,dn​) 为有限多个非负整数组成的非递增的点的序列。SSS 可简单图化当且仅当 S′=(d2−1,d3−1,...,dd1+1−1,dd1+2,...,dn){S&amp;#x27;=(d...

2019-02-15 17:20:40 179

原创 牛客网2017年浙江工业大学大学生程序设计迎新赛预赛 - H 栗酱的文明 区间修改+区间最值+Havel-Hakimi定理+贪心

题目链接题意:有 nnn 个城市,每个城市有 aia_iai​ 个士兵,每两个城市之间只能发生一次战争,每次战争两个城市都要消耗一个士兵,没有士兵的城市不能发生战争,问如何分配发生战争的城市,使得最后剩下的士兵总数最少,最少是多少。思路:按照题意,发生战争相当于两个城市连边,士兵相当于一个城市度的上限,则就是在满足限制条件的情况下尽可能多的连边。这可以转化为已知每个点的度数,问是否存在一个满足...

2019-02-15 16:35:08 289

原创 HDU - 2255 奔小康赚大钱 二分图最佳完美匹配——KM算法

题目链接题意: nnn 个村民, nnn 个房间,第 iii 个村民对应第 jjj 个房间都有个收益 wi,jw_{i,j}wi,j​ ,且一个房间只能给一个村民,现在给这些村民分配房间,求获得的最大的收益值。思路:很明显这是个二分图,与普通二分图不同的是这个是边带权的二分图。看题意即为求该二分图的一个完备匹配,其所有匹配边的和在所有完备匹配中最大,即为求二分图最佳完美匹配。KM算法(专门用...

2019-02-13 22:43:28 231

原创 Wannafly挑战赛5 - D 子序列 组合数学

题目链接题意:有一个字符串 TTT ,问有多少种长度为 mmm 的字符串,满足 TTT 是其子序列。思路:枚举 TTT 最后一个字符作为子串在长度为 mmm 的字符串 sss 中出现的位置 pospospos ,对于每种情况,求最后一个字符除外在字符串 sss 中位置的组合数,这相当于把 pospospos 之前的分成了 T.size()T.size()T.size() 段,每段中间则不能出...

2019-02-11 17:14:04 202

原创 Wannafly挑战赛5 - A 珂朵莉与宇宙 思维

题目链接题意:有个长度为 nnn 的序列,问有多少个区间的所有元素和为完全平方数。思路:设前缀和数组 f[x]f[x]f[x] 一个区间 [i,j][i,j][i,j] 的个和可以表示成前缀和相减: f[j]−f[i−1]f[j]-f[i-1]f[j]−f[i−1],由于区间元素 ≤10\leq10≤10 ,所以区间和最多仅为 100000010000001000000 ,所以枚举区间终点 j...

2019-02-11 15:09:01 205

原创 Wannafly挑战赛9 - D 造一造 组合数学+卡特兰数

题目链接题意:有 nnn 个节点,按顺序入栈出栈,中间当第 mmm 个数入栈之后,要求栈内有 kkk 个元素,问一共这 nnn 个节点全部入栈完,再全部出栈,有多少种入栈出栈的顺序。思路:我们可以设入栈为 000,出栈为 111,则满足题意的 010101 串,前 mmm 长度的 010101 串中, 111 比 000 要少 kkk 个,且每个前缀串的 000 的数量要不少于 111 的数量...

2019-02-10 21:59:32 249

原创 牛客练习赛39 - C 流星雨 概率dp+除法逆元

题目链接题意:每天都有概率下流星雨,前一天有下的话当天下流星雨的概率为 xy+ab\frac{x}{y}+\frac{a}{b}yx​+ba​ ,如果没有,则当天是xy\frac{x}{y}yx​ ,求 nnn 天过后下流星雨总数在 modmodmod 109+710^9+7109+7 意义下的期望。思路:求出每天下流星雨的概率,把每天的期望算出来,求和即是答案,由于中间答案会爆 longlo...

2019-02-09 16:57:04 255

原创 有上下界的网络流

有上下界的网络流具体可以分为以下三种:1.无源汇有上下界可行流例题:ZOJ - 2314题意:有 nnn 个节点,且有 mmm 条水管,每条水管的流向为单向,且每条水管的流量有限制,第 iii 条水管的流量 fi(li≤fi≤ci)f_i(l_i \leq f_i \leq c_i)fi​(li​≤fi​≤ci​) ,问是否存在一种流量分配,使得这m条水管的流量满足条件,如果存在,则输出每...

2019-02-07 22:23:10 282

原创 Codeforces - 1106E - Lunar New Year and Red Envelopes 优先队列+dp

题目链接题意:现在有 kkk 个红包,总共 nnn 的时间, BobBobBob 采用贪心策略,每个时间点若有红包能取则取钱数 wiw_iwi​ 最多的,且取完之后直到 did_idi​ 个时间点之后才能再取红包, AliceAliceAlice 有 mmm 次机会在一个时间点让 BobBobBob 不能做任何操作,AliceAliceAlice 怎么分配这 mmm 次机会才能使得 BobBob...

2019-02-02 22:30:28 332

原创 牛客寒假算法基础集训营4 - F Applese 的QQ群 二分+拓扑排序

题目链接题意:一共 nnn 个人, mmm 个操作,每个操作 x,yx,yx,y 表示第 xxx 个人有一条有向边指向第 yyy 个人,每次操作后询问当前整个关系网是否存在环。思路:题意可知,答案的输出必然先全是"Yes",之后若出现"No",则之后全是"No",所以我们可以二分最后一次"Yes"出现的位置,每次判断是否有环用拓扑排序即可。#include&lt;cstdio&gt;#in...

2019-01-30 21:21:54 181

原创 牛客寒假算法基础集训营4 - E Applese 涂颜色 数论

题目链接题意:给一个 nnn 行 mmm 列的方阵上色,只能上黑色或者白色,且必须满足左右相邻的格子颜色不能相同,问有多少种上色的方法。思路:可以得出一行只有两种上色方法,而相邻两行之间互不影响,所以答案就是 2n2^n2n 。解法一:由于 nnn 范围过大,可以通过欧拉降幂来减小时间复杂度。欧拉降幂: xn≡xn&nbsp;mod&nbsp;φ(m)&nbsp;+&nbsp;φ(m)&...

2019-01-30 15:01:48 377

原创 牛客寒假算法基础集训营3 - F 处女座和小姐姐(二) 双向dfs+状压

题目链接题意:一共 n∗m+p−1n*m+p-1n∗m+p−1 个数,连续 ppp 个数的乘积 modmodmod PPP 作为矩阵中一个元素。现在在矩阵中找出一条长度为 kkk 的路径,且路径上所有元素在 modmodmod kkk 的意义下均不同。问这样的路径有多少条?思路:首先是求连续 ppp 个数的乘积 modmodmod PPP,可以把这些数按照 ppp 个数为一组划分,对于一段连续...

2019-01-29 16:10:57 296

原创 牛客寒假算法基础集训营3 - H 处女座的百日理财计划 大数+dp

题目链接题意:初始资金是1000,一共100天,每天早上可以收回到期的投资资金,中午可以玩老虎机有概率翻倍手头的资金,晚上可以选择借给别人钱,问第100天结束之后能获得的钱的最大期望值。思路:DPDPDP ,对于老虎机,由于是翻倍,期望值则是 ans[i]∗2∗Q[i]ans[i] * 2 * Q[i]ans[i]∗2∗Q[i] ( ans[i]ans[i]ans[i] 为当天手头上的资金, ...

2019-01-28 15:02:22 326

原创 牛客寒假算法基础集训营3 - J 处女座的比赛 字符串hash

题目链接题意:根据所给的 hashhashhash 函数,对于题目所输入的字符串,输出与输入字符串不同但是 hashhashhash 值相同的字符串。思路:长度为 111 到 444 的字符串一共有 475254475254475254 种,足以把 [0,9982][0,9982][0,9982] 中所有数都覆盖至少 222 次。所以可以预处理这些字符串,每个hash值存下对应两种不同的字...

2019-01-27 16:13:13 337

原创 牛客寒假算法基础集训营3 - B 处女座的比赛资格 拓扑排序+记忆化搜索

题目链接题意:一个有向无环图( DAGDAGDAG 图),每条边有三种权重,经费负责人根据其中两种权重,按最小花费给处女座经费,处女座拿着经费按两种权重,走最小花费的路径,问处女座的经费的消耗情况思路:由于存在负权边,所以没法用 djdjdj 来求最短路,但是由于是 DAGDAGDAG 图,所以可以按拓扑序来求解最小花费,然后判断两种花费情况即可。#include&lt;cstdio&gt;...

2019-01-26 22:24:58 463

原创 洛谷 P2051 [AHOI2009]中国象棋 dp

题目链接题意:一个 nnn 行 mmm 列的棋盘,上面放置若干个炮(也可以不放),要求炮之间无法相互攻击(即一行或者一列最多只能存在两个炮),求所有的放置方法思路:动态规划,定义 dp[i][j][k]dp[i][j][k]dp[i][j][k] 表示前 iii 行有 jjj 列有一个炮,有 kkk 列有两个炮,由此可以通过第 i−1i-1i−1 行的dp数组以及排列组合得出状态转移方程#i...

2019-01-21 20:23:17 180

原创 HDU -1814 Peaceful Commission 2-SAT

题目链接题意:有 nnn 个政党,每个政党有2个代表,现在要举办一个和平委员会,每个政党都要派出一个代表参加,但是有 mmm 对代表不能同时出席会议,问是否有一种出席方案能够让每个政党都能派出一个代表,且代表之间没有冲突,如果有输出字典序最小的方案,没有则输出 NIENIENIE思路:2-SAT的模板题,对于一对不能同时出席的代表 (a,b)(a,b)(a,b) ,则我们可以推出若选择了 aa...

2019-01-17 22:07:26 193

原创 Windows下通过注册表修改某个类型文件的默认打开方式和文件图标

一不小心把文件打开方式改了,怎么操作都改不回原来的,在网上找了半天才找到通过修改注册表实现的方法,现在总结一下- -以下都以.cpp文件为例(因为我就是改了cpp文件的打开方式),其他类型的只要把cpp改为相应类型名就行了。1.win+R,然后输入regedit,打开注册表。                             2.找到HKEY_CLASSES_ROOT键,在该...

2018-11-20 19:39:55 25289 3

原创 POJ - 1679 The Unique MST 次小生成树

题目链接题意:给定一个n个顶点的图,求问该图的最小生成树是否为唯一解,若是唯一解则输出答案,不是则输出“Not Unique!”。思路:次小生成树模板题,和最小生成树的值比较一下就行了。次小生成树:先求出某个最小生成树,然后跑一遍求该树上任意两个点的路径上权值最大的边maxedge[i,j],然后通过枚举图上边edge&lt;i,j&gt;,若不是树上的边,则用edge&lt;i,j&...

2018-11-18 20:53:19 141

原创 POJ - 1753 Flip Game dfs

题目链接题意:一个4*4的棋盘,每个格子上有一个黑白棋(黑色朝上或白色朝上),定义操作翻转某个位置的棋子,同时也翻转其上下左右四个棋子,求把整个棋盘翻转成都是白色朝上或者黑色朝上的最少步数。思路:对于某个位置的棋子,我们可以看出翻2次和不翻效果是一样的,翻3次效果和翻1次效果一样,所以对于每个位置只有两种情况:翻1次或者不翻,同时翻的顺序对结果也并没有影响,由此,假设我们已经找到一种翻第一...

2018-11-16 20:07:00 159

空空如也

空空如也

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

TA关注的人

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