自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2022 杭电多校 第十场 1001 Winner Prediction(最大流)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=7244杭电题解:先让 1号选手赢下所有和他有关的比赛,设此时选手赢了a场比赛。如果存在某个 ai> a1 则1号选手不可能成为冠军。否则选手至多还能再赢bi = a1 - ai 场比赛。考虑建立一张网络流图: 每场未进行的比赛在图中用一个点表示,源点向它连容量为 1的边,它向它的两个参赛选手的...

2023-05-03 20:27:00 88

原创 CF 1709E XOR Tree(树上启发式合并)

题目链接:https://codeforces.com/contest/1709/problem/E解题思路:定义 sum(x,y) 为 x→ y路径上的点的异或和,dx为 x→ root路径上的点的异或和。对于一个点权树,sum(x,y)=dx^ dy^ vallca(x,y)。考虑修改一个点,可以将它改为一个很大的 2 为底数的幂,则经过此点的所有的不合法路径都会消失。归纳地想...

2023-05-01 09:04:00 116

原创 CF600E Lomsat gelral(树上启发式合并)

题目链接:https://codeforces.com/problemset/problem/600/E这是一道树上启发式合并的题,就只是在模板的基础上稍微变化了一下解题思路:我们需要计算当前u节点的答案,要计算加入非重链节点对此答案的影响,在计算加入节点对ans影响的时候,遍历u除了重链外的所有子树节点(因为重链部分的颜色已经被记录在了cnt内),当目前颜色数量(cnt[col[x]])大...

2023-04-29 17:30:00 71

原创 将博客搬至CSDN

将博客搬至CSDN

2022-10-18 16:10:53 79

原创 洛谷P2495 [SDOI2011] 消耗战(虚树+LCA)

题目链接:https://www.luogu.com.cn/problem/P2495[SDOI2011] 消耗战题目描述在一场战争中,战场由 $n$ 个岛屿和 $n-1$ 个桥梁组成,保证每两个岛屿间有且仅有一条路径可达。现在,我军已经侦查到敌军的总部在编号为 $1$ 的岛屿,而且他们已经没有足够多的能源维系战斗,我军胜利在望。已知在其他 $k$ 个岛屿上有丰富能源,为了防止敌军获取能源...

2022-10-12 20:01:00 49

原创 洛谷P4320 道路相遇(LCA+圆方树)

题目链接:https://www.luogu.com.cn/problem/P4320道路相遇题目描述在 H 国的小 w 决定到从城市 $u$ 到城市 $v$ 旅行,但是此时小 c 由于各种原因不在城市 $u$,但是小 c 决定到在中途与小 w 相遇由于 H 国道路的原因,小 w 从城市 $u$ 到城市 $v$ 的路线不是固定的,为了合理分配时间,小 c 想知道从城市 $u$ 到城市 $...

2022-10-11 08:49:00 67

原创 CF487E Tourists(圆方树+树链剖分)

题目链接:https://www.luogu.com.cn/problem/CF487ETourists题面翻译Cyberland 有 $n$ 座城市,编号从 $1$ 到 $n$,有 $m$ 条双向道路连接这些城市。第 $j$ 条路连接城市 $a_j$ 和 $b_j$。每天,都有成千上万的游客来到 Cyberland 游玩。在每一个城市,都有纪念品售卖,第 $i$ 个城市售价为 $w_i...

2022-10-10 21:18:00 48

原创 Luogu P3469 [POI2008]BLO-Blockade(tarjan求割点)

题目链接:https://www.luogu.com.cn/problem/P3469[POI2008]BLO-Blockade题面翻译B 城有 $n$ 个城镇,$m$ 条双向道路。每条道路连结两个不同的城镇,没有重复的道路,所有城镇连通。把城镇看作节点,把道路看作边,容易发现,整个城市构成了一个无向图。请你对于每个节点 $i$ 求出,把与节点 $i$ 关联的所有边去掉以后(不去掉节...

2022-10-03 17:22:00 44

原创 洛谷 P3388 【模板】割点(割顶)

题目链接:https://www.luogu.com.cn/problem/P3388【模板】割点(割顶)题目背景割点题目描述给出一个 $n$ 个点,$m$ 条边的无向图,求图的割点。输入格式第一行输入两个正整数 $n,m$。下面 $m$ 行每行输入两个正整数 $x,y$ 表示 $x$ 到 $y$ 有一条边。输出格式第一行输出割点个数。第二行按照节点编号从小到大输出节点,用...

2022-10-03 10:40:00 30

原创 洛谷P1262 间谍网络(tarjan求强连通分量+缩点)

题目链接:https://www.luogu.com.cn/problem/P1262  思路:首先,我们能够知道,入读为0 的点 如果不能被收买的话,那么此题是无解的。其次,如果图中存在环的话,那么环中每个点的最小值 就是这个环所成的点的值,环中每个点是相互可以到达的,而且如果环处在中间的话,我们是可以无视掉的,我们只考虑环在开头的情况,也就是缩点之后,入读为0的点。通过tarjan求出强连...

2022-09-06 19:30:00 38

原创 洛谷P2002 消息扩散(tarjan缩点)

题目链接:https://www.luogu.com.cn/problem/P2002思路:由于图中每个强连通分量(scc)中的点是可以互相到达的,所以我们可以用tarjan求图中scc,然后将所有scc缩点,最后求缩点之后图中入度为0的点的个数就是答案。代码: 1 #include<iostream> 2 #include<cstdio> 3 #inc...

2022-09-06 16:12:00 35

原创 P5903 【模板】树上 k 级祖先

题目传送门:https://www.luogu.com.cn/problem/P5903树链剖分LCA主要在于,首先要找x的k级祖先,从这个点出发不断往上找他的顶端端点,如果顶端端点所在的深度小于k级祖先所在的深度(也就是dep[x] - k),继续找他的父亲节点所在链的顶端端点,循环比较顶端端点和k级祖先所在深度,当x的顶端端点的深度大于k级祖先所在的深度时,说明所要找的祖先在这条链上,此...

2022-08-06 15:35:00 39

原创 P1347 排序(拓扑排序)

题目传送门:https://www.luogu.com.cn/problem/P1347拓扑排序模板题,第一种情况是求这张图拓扑排序之后是否为n个点,也就是说,这张图必须无环,而且有且仅有一个点的入度为0,第二种情况是求图中是否存在环,第三种情况就是如果在m次建边之后无法得到前两种情况直接输出就可以了。由于数据规模极小,可以一边建边一边拓扑排序。代码: 1 #include<io...

2022-08-05 16:36:00 54

原创 P3384 【模板】轻重链剖分/树链剖分

题目传送门:https://www.luogu.com.cn/problem/P3384详解可看:https://blog.csdn.net/a_forever_dream/article/details/80651308/or/https://oi-wiki.org/graph/hld/#_6树链剖分用于将树分割成若干条链的形式,以维护树上路径的信息。具体来说,将整棵树剖分为若干条链...

2022-08-04 18:40:00 58

原创 2022杭电多校第四场C-Magic(差分约束)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=7176代码: 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<vector> 5 #include<map> 6 #...

2022-08-01 15:44:00 28

原创 HDU-3666 THE MATRIX PROBLEM (差分约束)

题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=3666、代码: 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<vector> 5 #include<map> 6...

2022-08-01 11:06:00 29

原创 P1073 [NOIP2009 提高组] 最优贸易(tarjan缩点+dp)

题目传送门:https://www.luogu.com.cn/problem/P1073思路:首先,我们目的是想要在图上dp求最优的路线,但是原图上会存在环,那么我们就要先通过tarjan缩点,将所有环缩成一个点,同时,记录每个点的最大值和最小值,缩点得到DAG后,我们可以在DAG上进行dp,每次转移有三种方式,一是保留上一个点的dp值,二是求得目前所在点的值,三是这个点本身的dp值,三者取最...

2022-07-31 16:02:00 63

原创 tarjan求强连通分量模板

代码: 1 void tarjan(int u) { 2 dfn[u] = ++dfncnt; 3 low[u] = dfncnt; 4 st.push(u); 5 ins[u] = true; 6 for (int i = 0; i < SPG[u].size(); i++) { 7 int v = SPG[u][i...

2022-07-31 11:01:00 54

原创 2022杭电多校第四场B-Link with Running

题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=7175题解:先用dijkstra在原图上跑出最短路,然后将所有的最短路重新建图建出最短路图,建完后的图中可能包含0 0环,对结果不造成影响所以通过tarjan缩点,缩出DAG,最后在DAG上dp(其实是记搜),求得DAG上的最长路。代码: 1 #include<iostream&gt...

2022-07-31 10:55:00 46

原创 字典树trie模板+例题

模板: 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N = 1000010; 4 int trie[N][30]; 5 int color[N]; 6 int k = 1; 7 8 void insert_trie(char* w) { 9 int len = strlen(w...

2022-07-27 10:20:00 36

原创 2022牛客暑期多校训练营3-A.Ancestor(LCA)

题目传送门:https://ac.nowcoder.com/acm/contest/33188/A题意: • 给出两棵编号 1-n 的树 A B , A B 树上每个节点均有一个权值,给出 k 个关键点的编号,问有多 少种方案使得去掉恰好一个关键点使得剩余关键点在树 A 上 LCA 的权值大于树 B 上 LCA 的权值。思路:预处理出关键点序列的在树 A B 上的前缀 LCA 和后缀 LCA...

2022-07-26 18:17:00 39

原创 P3379 【模板】最近公共祖先(LCA)

题目传送门:https://www.luogu.com.cn/problem/P3379倍增LCA模板: 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<vector> 5 #include<map> 6 #include&...

2022-07-26 11:25:00 29

原创 P3382 【模板】三分法

题目传送门:https://www.luogu.com.cn/problem/P3382模板: 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<vector> 5 #include<map> 6 #include<qu...

2022-07-24 15:35:00 31

原创 P4017 最大食物链计数(拓扑排序)

题目传送门:https://www.luogu.com.cn/problem/P4017代码: 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<vector> 5 #include<map> 6 #include<qu...

2022-07-24 15:00:00 19

原创 POJ3580SuperMemo(无旋treap-平衡树的区间操作)

题目传送门:http://poj.org/problem?id=3580题意:有一个序列,有6种操作:ADD x y D:将x-y区间内的值全部加D,例如,将区间{1, 2, 3, 4, 5} 2-4 全部+1 得到 {1, 3, 4, 5, 5}REVERSE x y: 将x-y区间内的值全部翻转. 例如,翻转区间 2-4,{1, 2, 3, 4, 5} 得到 {1, 4, 3, 2...

2022-07-24 11:24:00 32

原创 【Codeforces-420D】Cup Trick(无旋treap-平衡树)

题目传送门:https://codeforces.com/problemset/problem/420/D题意:给出m次操作,每次操作输入两个值x,y,将y位置值为x的数移到最前面,让你求一个长度为n的初始序列满足所要进行操作的条件。思路:由于初始序列未知,我们可以将序列都设为0,然后按操作进行,如果进行操作时,y位置为0,说明这个位置没有动过,可以为之前操作中没有操作过的值(比如说,如果你...

2022-07-24 11:07:00 57

原创 【CodeForces -527C】Glass Carving(无旋treap-平衡树)

题目传送门:https://codeforces.com/problemset/problem/527/C题意:给出一个面积为h×w的长方形,有m次操作,每次操作可以横着或竖着在某个位置砍一刀,问你在m次操作后,在所有块中面积最大的一个。思路:理解题意,就是让你求砍m次后,剩下的部分的最长的高和最长的宽,相乘就是最大面积,所以我们可以利用平衡树中的前驱和后继来求所切割点所在部分的长度,同时利...

2022-07-24 10:42:00 114

原创 洛谷P3369 【模板】普通平衡树(无旋treap数组版)

题目传送门:https://www.luogu.com.cn/problem/P3369模板: 1 #include<cstdio> 2 #include<cstring> 3 #include<cstdlib> 4 #include<iostream> 5 using namespace std; 6 const in...

2022-07-24 10:26:00 37

原创 [CF718C]Sasha and Array(线段树+矩阵快速幂)

题目链接:https://codeforces.com/contest/718/problem/C题意:给出一个序列,有两种操作,操作一:将序列中l-r部分的值加上某个数,操作二:计算Σri=lf(i) 的值第l-r项斐波那契数的和。思路:首先我们需要解决的问题是计算第n项斐波那契数的值,n的范围的1e9,不难想到,我们可以通过使用矩阵快速幂(时间复杂度logn)来计算,其次,还有一个问题,...

2022-07-12 19:33:00 47

原创 二维树状数组模板(自用)

demo: 1 #include<iostream> 2 #include<algorithm> 3 #include<cmath> 4 #include<cstring> 5 #include<queue> 6 #include<cstdio> 7 #define LL long long 8 usin...

2022-05-22 21:24:00 24

原创 折半搜索(meet in the middle)算法

洛谷模板题:https://www.luogu.com.cn/problem/P4799ac代码:时间复杂度: 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<vector> 5 #include<map> 6 #incl...

2022-05-17 20:03:00 51

原创 manacher算法(求字符串最长回文子串/以某个点为中心的最长回文子串长度)

题目链接:https://ac.nowcoder.com/acm/contest/33540/A此题为manacher算法的变形,利用了算法的一部分性质,还用到了差分求前缀和。题目链接:https://www.luogu.com.cn/problem/P3805此题纯为manacher的模板题;题一代码: 1 #include<iostream> 2 #include&...

2022-05-16 16:05:00 24

原创 hdu4902Nice boat(线段树区间更新)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4902题目大意:给你一串序列an,有两种操作,操作1:将区间l-r内的所有值替换成x,操作2:将区间l-r内大于x的数替换成x和a[i]的最大公约数;思路:本题需要用lazy标记剪枝,操作一需要将区间内的所有值都替换,这是很简单的区间修改,用lazy标记存一下需要替换的值,另外本题需要用节点来表示...

2022-05-05 17:39:00 40

原创 poj2353Ministry(链式前向星+堆优化dijkstra)

题目链接:http://poj.org/problem?id=2353题目大意:有M层楼,每层楼有N个房间,每次到一个房间都有一个花费,有三个规定,1,你需要从第一层开始走,2,房间号相同时,才能上下移动,3,相邻的房间,可以互相通往,要求你求从第一层开始,到最后一层,所花费的最小代价。输出所经过的房间的房间号。思路:这个题我觉得主要考察的是如何建图,其实图也不难建,就是有点小麻烦,有很多地...

2022-05-04 19:33:00 29

原创 hdu1698Just a Hook(线段树区间修改)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698非常简单的线段树的区间修改问题,稍微不同的就是有三种标记,不同的标记按题意说的更新就行。剩下的套模板就行了。 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #...

2022-05-03 16:58:00 25

原创 hdu1540Tunnel Warfare(线段树区间合并)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1540此题的D,R操作非常简单,需要注意的就是Q求和操作,在进行求和的时候,需要检查一下所求点是否都位于左右子树的区间内,如果是的话那么就返回左子树的右连续最长加上右子树的左连续最长,(如果不懂可以画图验证一下),如果所求点的区间只位于左子树,与右子树没有相连,那么只需要递归左子树求左子树内的和就可...

2022-05-01 11:01:00 23

原创 hdu2871Memory Control(线段树区间合并+区间修改)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2871这个题目与线段树区间合并的模板题(链接:点这里)非常相似,就是复杂了一点; 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<vector...

2022-05-01 10:50:00 30

原创 poj3667Hotel(线段树区间合并)

题目链接:http://poj.org/problem?id=3667题目大意:给你一排n个房间,你有两种操作,1操作是占据x个房间,尽量往左占(也就是第一个编号尽可能小),空房间不够输出0,2操作是让你释放从x到x+y-1的房间,让他们成为空房间。这道题是线段树区间合并的典型例题,我为了解决这道题花费了两三天的时间(其实大部分时间都在摸鱼QAQ),在此期间我找了很多的博客去学习,结果不尽人...

2022-04-28 20:41:00 36

原创 HDU2795-Billboard(线段树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2795题意:给你一个高为h,宽为w的板子,以及n个高为1,宽度为wi的公告,如果板子能放下这个公告的话,尽可能将这个公告往上往左放,公告只能横着贴,贴在一行里,如果放不下就输出-1,如果放得下,就输出在板子上所放置的公告的高度(也就是行数)。思路:将板子每个高度的宽度设为线段树叶子节点的值(也就是...

2022-04-24 20:11:00 39

原创 HDU3074-Multiply game(线段树)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3074非常简单的一个线段树单点更新求区间的模板题,只需要把平时存放区间和的数组sum[]用来表示区间的成绩,将Query求和函数,改成求累积即可。还有一个问题就是,我在hudoj上用C++交会TLE,但是换成G++就AC了,不知道怎么回事e。有点小问题的ac代码: 1 #include&l...

2022-04-24 18:32:00 31

空空如也

空空如也

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

TA关注的人

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