[kuangbin带你飞] 专题四 最短路练习 练习

1、Til the Cows Come Home 裸的最短路,wa一路发现自己T,N读入反了,据说还有重边,不过是邻接矩阵需要考虑的问题,前向星和邻接表可以忽略。 #include <iostream> #include <algorithm&...

2019-04-23 21:46:25

阅读数 7

评论数 0

kuangbin专题一 简单搜索

写在前面: 最近还是想着找专题提升一下自己,尝试来写kuangbin专题,每天更新一点,希望可以更完 1、棋盘问题 用 ban ,visr,visl三个数组记录那些位置可以被访问,然后dfs搜索即可 #include <iostream&gt...

2019-04-22 21:39:03

阅读数 7

评论数 0

Codeforces Round #553 (Div. 2) E - Number of Components

要求这个所有的和,感觉不是很好想 首先这个图,是一条长链。 对于联通的 i 和 i+1 两个点,考虑他们对答案的贡献,如果他们不联通,那么对答案的贡献就是1 对于 l <= ai <= r 同时使得 ai+1 > r || ai+1 <...

2019-04-20 22:45:21

阅读数 4

评论数 0

Codeforces Round #552 (Div. 3) G. Minimum Possible LCM

求数组中,lcm最小的一对数的下标 可以考虑使用筛法,因为 LCM = a*b / GCD(a,b) 所以,对于任意的一对数来说,如果他们的gcd一样,那么这两个数越小越好。 所以枚举i = gcd,找到最小的两个数gcd(a,b) = i, 求出他们的lcm,然后记录最小值即可。 这里被坑...

2019-04-20 22:36:02

阅读数 6

评论数 0

洛谷P1005 矩阵取数游戏

区间dp,转移方程为 dp[i][j] = max(dp[i-1][j]+a[k][i-1]*fac[m-j+i-1],dp[i][j]); dp[i][j] = max(dp[i][j+1]+a[k][j+1]*fac[m-j+i-1],dp[i][j]); dp[i][j] 代表区[...

2019-03-13 20:36:46

阅读数 15

评论数 0

Educational Codeforces Round 61 (Rated for Div. 2) 题解

A: Regular Bracket Sequence 判断括号是否匹配,只需要注意到 “()”这样的括号数量无所谓,每一个“((” 一定需要一个 “))” 来和它配对,每一个“)(”,只要有一对 “((” 和 “))” 就可以有任意多个 因为可以做成 “((” “)(””))“这样的形...

2019-03-08 11:54:52

阅读数 16

评论数 0

P2341 [HAOI2006]受欢迎的牛

如果一个牛,是明星牛,因为喜欢的关系是可以传递的,因此他喜欢的牛也都是明星牛。反之,以为这只明星牛被所有牛喜欢,那么他喜欢的牛也一定喜欢他,两只牛也一定是相互喜欢的,继续传递下去,下一只牛喜欢的也一定是明星牛,他们之间一定相互喜欢,因此,所有明星牛一定构成一个强连通分量。 并且,这个强连通分...

2019-03-05 09:33:33

阅读数 14

评论数 0

P2023 [AHOI2009]维护序列

线段树同时维护加法乘法的模版题 详情见传送门https://blog.csdn.net/CCCCTong/article/details/88122065

2019-03-04 16:30:37

阅读数 23

评论数 0

P3373 【模板】线段树 2

线段树同时实现区间加法和乘法,因为加法乘法都涉及到了动态修改,因此我们需要两个lazy标记,我们记为add,mul,但是在pushdown的时候就会出现一个问题,乘法对之前做过的加法标记是有影响的,如果先下推加法标记,那么就忽略乘法对结果的影响,导致错误的答案 当我们需要将标记下推的时候,正...

2019-03-04 16:21:31

阅读数 28

评论数 0

P1198 [JSOI2008]最大数

简单的线段树模拟,首先统计最终有多少数,建好线段树之后,相当于做修改查询操作,注意到查询操作查询的区间为 (len - L + 1, len) len 为当前数列的长度 代码如下: #include <bits/stdc++.h> using n...

2019-03-03 15:30:19

阅读数 6

评论数 0

P5238 整数校验器 (3月份洛谷月赛2019)

比较简单的题,把x按字符串读入,先检查是否合法,如果是一个合法的数,我们再去看是否在范围内,l,r都用字符串读入,然后手写一个字符串比较函数,然后比较是否在范围内就行了,别写出bug就行。 代码如下: #include <bits/stdc++.h&gt...

2019-03-03 10:15:55

阅读数 102

评论数 0

P5239 回忆京都(3月洛谷月赛)

对任意给定的n和m,求 首先我们需要组合数表,可以使用递推公式将所求的组合数放在一个矩阵里面,i 行 j 列表示 C(i,j)代码如下: void solve(){ C[1][0] = C...

2019-03-03 10:06:47

阅读数 119

评论数 0

P1972 [SDOI2009]HH的项链

研究别人思路做出来的,本篇博客已注明转载 树状数组/线段树均可过 首先算出所有的数第一次出现的位置,维护一个tree数组,将这些位置修改为1 计算一个nex数组,表示当前下标的数,下一次出现的位置 离线求解,将所有询问区间按左端点排序 用一个指针 l 指向左端点之前的位置,对左端点之前的...

2019-03-03 09:53:59

阅读数 33

评论数 0

P2055 [ZJOI2009]假期的宿舍

首先先理清楚一下这题的关系,每一个人要么是学校里的学生,要么不是。而是学校里学生,要么回家了,要么没回家。那么可以提供床位的,就是学校的在校学生,而需要床位的,就是不是这个学校的学生的人,和在学校没回家的在校学生。一个人占一张床,而在校学生自己可以睡自己的床,因此我们把所有的人分成两部分,需要床的...

2019-02-28 22:56:10

阅读数 9

评论数 0

P1726 上白泽慧音

这是一个求强连通分量的模版题 一般的我们都选取Tarjan算法,常数较小,写起来比较方便 我们用三个数组,low[maxn],vis[maxn],dfn[maxn] 其中dfn表示当前的节点被搜到的时间戳,vis表示当前这个被搜过的节点在不在栈的里面,low数组最难理解,因为tarjan基于dfs...

2019-02-28 22:43:28

阅读数 85

评论数 0

P1993 小K的农场

差分约束的模版题,建图我们选择 a b c 代表 v(b) - v(a) <= -c 建图,然后注意到在区间 [ i , i + 1] 里面,有 v(i + 1) - v(i) <= 1 且 v(i) - v(i + 1) &...

2019-02-28 21:07:58

阅读数 19

评论数 0

P1525 关押罪犯

并查集,自己的思路和食物链这题非常的像,把在并查集中和父亲关系为 1 记为和父亲节点在同一个集合里面,0记为不在同一个集合里面,类似的可以推出一个节点和爷爷节点的关系为 value[now] = (value[father[now]] + value[now]) % 2; 对边排序,从大的边开始,...

2019-02-17 15:27:07

阅读数 26

评论数 0

洛 谷 P1119 灾后重建

询问x到y的距离,首先想到Flody方法,但是题目中,给定了最短路上,不能有城镇建好的时间超过 ti 的,因此,如果对每一次询问都跑一边Floyd,那么肯定会超时。因此我们需要更好的思路,Floyd的是基于动态规划实现的最短路算法,转移方程为 dis[i][j] = min(dis[i][j],...

2018-12-04 22:38:29

阅读数 29

评论数 0

洛谷 P1330 封锁阳光大学

传送门:https://www.luogu.org/problemnew/show/P1330         很神奇的做法,之前没有仔细思考,贪心+优先队列去找尽可能连接多条边的点,但其实是有问题的,这样贪心的结果很可能是没有解的,而选取其他的没那么多条边的点去操作,反而是可能有解的,所以贪心...

2018-10-08 21:09:02

阅读数 67

评论数 0

洛谷 P2661 信息传递

传送门:https://www.luogu.org/problemnew/show/P2661            这个是一个图的遍历问题,主要是2和7个点被卡了            类似于tarjan,我们在dfs的时候遍历到那个节点,用一个时间戳记录那个节点被搜索到的顺序,因为每次搜索...

2018-10-08 19:16:39

阅读数 70

评论数 0

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