自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 POJ 3417 Network (lca+树上差分)

题意:n个点的生成树,还有m条附加边,删去一条生成树的边和一条附加边,使得变成两个连通分量,有几种方案。题解:lca+树上差分对于每一条附加边<x, y>,将x到y的lca路径上的边标记,即对于该路径上的任意边删去,再删去附加边即可满足要求,但此做法前提是该路径上的边只被覆盖一次。这是第一种情况,ans++。第二种情况就是边没有被覆盖,则删去该边即可分为两个连通块,所以任意删除一条附加边即可,ans += m。对于如何进行覆盖,用树上边差分即可。vector建图会t,用链式前向星存,常

2020-09-29 00:23:00 113

原创 POJ 1330 Nearest Common Ancestors (lca)

题意:带环lca。题解:lca从入度为0的点开始dfs。注意是有向边。#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>#include<queue>#include<stack>#include<cmath&gt

2020-09-28 22:14:43 92

原创 HDU 3078 Network (lca+排序)

题意:一棵无向树,输入点数和操作数,下面一行n个值代表每个点的权。下面n-1行是树边。操作分为 0 x w ,表示把点x的权改为w; k a b , 求出从a到b的路径中,第k大的点权。题解:lca+排序居然直接暴力就可以过了,每次询问将lca路径中的点权排序即可。#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<cstdio>#include<string>#include<cstri

2020-09-28 21:04:53 127

原创 HDU 2874 Connections between cities (并查集+lca倍增法)

题意:由于战争期间大部分道路已被完全摧毁,两个城市之间可能没有路径,也没有环存在。现在,告诉您道路状况后,我们想知道任何两个城市之间是否存在路径。如果答案是肯定的,则输出它们之间的最短路径。题解:并查集+lca倍增法先用并查集缩点,不在同一集合必然不存在路径,然后dfs预处理每一个集合。这里用倍增法求lca。#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<cstdio>#include<strin

2020-09-27 22:10:14 248

原创 HDU 2586 How far away ? (lca倍增法)

题意:给出一棵有边权的树,q次询问,求u、v之间的路径长度。题解:lca倍增法。#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>#include<queue>#include<stack>#include<cmat

2020-09-27 21:37:17 113

原创 HDU 1914 The Stable Marriage Problem (稳定婚姻匹配)

题意:稳定婚姻匹配问题,板子题。题解:稳定婚姻匹配注意按字典序输出,还有输出格式,最后个样例不输出空行。#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>#include<queue>#include<stack>#inc

2020-09-27 20:07:59 133

原创 HDU 1522 Marriage is Stable (稳定婚姻匹配)

题意:稳定婚姻匹配问题,板子题。题解:稳定婚姻匹配还好做了这题,之前的板子有点问题,1435数据太弱了。#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>#include<queue>#include<stack>#inc

2020-09-26 23:55:54 159

原创 HDU 3585 maximum shortest distance (二分+最大团)

题意:有n个点。选取k个点(k> = 2),并在这k点中最近的两个点距离最远。题解:二分+最大团最近的最远,往二分上面靠。由于最近的两个点所连的边是k点构成完全图中边权最小的,那么其他的边必然大于等于该值,那么我们二分这个答案即可。对于二分的mid,每次将大于等于mid的边连上,然后跑最大团(点点直接相连才能保证最短边权,若不是完全图则必然存在小于mid的边),若最大团的结点数大于等于k,则最大团存在结点数等于k,且最小边权大于等于mid的子图。#define _CRT_SECURE_NO_

2020-09-26 16:56:36 129

原创 HDU 1435 Stable Match (稳定婚姻匹配)

题意:建立一个匹配表,使得一个发射点对应一个接收点,对于某一个发射点来说,它的接收点离它越近那么就会更稳定,同样对于接收点也是一样的情况。匹配的目标是使得整个网络变得稳定。对于某2个匹配,比如,( a ---- 1) ,(b----2) ,如果发射点a 离接收点2 比 1要近,而且2 也离 发射点a要比 b 近,那么 a 就很有可能把信号发到 2中,我们就说这个搭配是不稳定的。而且每个点都有一个容量值,如果对于一个发射点到2个接收点的距离一样的话,它将首先选择容量大的那个。题解:稳定婚姻匹配让发射

2020-09-26 15:38:58 165

原创 HDU 1530 Maximum Clique (最大团)

题意:给出无向图,求最大团的结点数。题解:最大团团:若图是一个团,则该图是无向图。极大团:不是其他团的子集。最大团:结点数最多的团。#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>#include<queue>#include&l

2020-09-25 11:06:26 126

原创 HDU 3666 THE MATRIX PROBLEM (差分约束+栈优化spfa判负环)

题意:给出一个N∗M的矩阵C,要求构造两个序列a1,a2,…,an和b1,b2,…,bm, 矩阵的第i行元素乘上 ai,矩阵的第j列元素除以bj,最终矩阵的每个元素Cij∈[L,U]。若可以构造成功,则输出YES,否则输出NO。题解:差分约束+栈优化spfa可得约束方程:L<=c∗ai/bj<=UL <= c * ai / bj <= UL<=c∗ai/bj<=U习惯最长路,于是可以转换为:ai/bj>=L/cai/bj>=L/cai/bj>=L

2020-09-24 22:02:48 163

原创 HDU 3592 World Exhibition (差分约束)

题意:n个人按顺序1-n排队,可并列排,给出x对关系,两两距离不超过D;给出y对关系,两两距离不小于D,求1到n的最远距离。题解:差分约束求最远,跑spfa最短路。按题意建立差分约束方程即可。由于并列排,所以相邻两人距离限制条件是≤0。注意inf输出-2。#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<cstdio>#include<string>#include<cstring

2020-09-24 14:38:08 173

原创 Visual Studio 2019 新建OpenGL项目无需重新配置环境

(1)原文件为GLFWOpenGL,直接复制该项目至同一目录下,改名为Texture。(2)打开Texture,点击.sln文件即可,无需重新引进依赖项,ok完成。

2020-09-24 08:50:31 440 2

原创 HDU 3440 House Man (差分约束)

题意:有N个在一条直线上的房子, 每个房子有着不同的高度,超人可以将这些房子左右移动,但不能改变房子之间的相对位置。超人要从最矮的房子跳到刚好比他高的房子上面, 且每次跳的房子都要比当前房子要高,他要跳N-1次。那么最后超人肯定会跳到最高的房子上面,现在给出超人一次能够跳的最远距离D,求如何摆放这些房子, 使得超人能够经过所有的房子跳到最高的房子, 又要使最矮的房子和最高的房子之间的距离最远,输出最远距离。题解:差分约束求最远距离,跑最短路即可。我们用d[i]d[i]d[i]表示离起点的距离。由于不改

2020-09-23 17:52:54 208

原创 HDU 1534 Schedule Problem(差分约束)

题意:一个项目可以分为几个部分。 每个部分都应连续完成。 这意味着如果一个零件需要3天,我们应该连续3天完成它。 这些部分中有四种约束,分别是FAS,FAF,SAF和SAS。 如果第一个零件应该在第二个零件开始之后完成,则零件之间的约束就是FAS。FAF完成后完成。 SAF完成后启动,SAS启动后启动。 假设有足够的人参与项目,这意味着我们可以同时进行任何数量的部分。 编写一个程序给出项目的时间表,该时间表最短。题解:差分约束用d[i]d[i]d[i]表示第iii个部分开始的时间,依据题意建立约束即可,

2020-09-22 22:34:27 146

原创 HDU 1531 King (差分约束)

题意:给出序列a的长度n,以及m个连续子序列的起始点及长度,对于每个连续子序列,给出其和与整数 ki 的大小关系,问是否存在序列a。题解:差分约束简单的差分约束问题,按照题目输入建立约束方程即可,然后跑spfa最长路。由于我们用d[i]d[i]d[i]表示序列a前iii个元素和,那么就有包含0的n+1个点,所以负环的判断条件是>n+1。还有就是我们把n+1个点全部push即可。#define _CRT_SECURE_NO_WARNINGS#include<iostream>#i

2020-09-22 21:42:29 105

原创 HDU 1529 Cashier Employment (差分约束)

题意:德黑兰的某国营商店需要聘用一批员工,不同的时间有不同的人员需求,能够雇佣到的人数也不同。然而你一旦聘用了一个人,他就会跟着你干8个小时。输入24个时间点的需求与劳动力人数,输出满足需求最少需要的人数,不行就输出no solution。题解:差分约束设d[i]d[i]d[i]表示从0点到i−1i-1i−1点(包括i−1i-1i−1)雇佣的人数。答案就是d[24]d[24]d[24]。每个点iii的需求和供应人数分别用r[i]r[i]r[i]和a[i]a[i]a[i]表示。可得约束方程:d[i+

2020-09-22 17:55:07 161

原创 HDU 1384 Intervals (差分约束)

题意:给定n个区间[ai, bi],每个区间给出一个数ci,求一个整数集合s使得第i个区间里至少有ci个集合s中的数,并且s尽量小。题解:差分约束设f(i)f(i)f(i)表示集合s包含了[0,i−1][0, i-1][0,i−1]中的数的数量(因为起点是从0开始的)。即可得约束:f(b+1)−f(a)>=cf(b+1)-f(a)>=cf(b+1)−f(a)>=c :(<a, b+1>=c)f(a)−f(a−1)>=0f(a)-f(a-1)>=0f(a)

2020-09-21 23:31:10 201

原创 HDU 6889 Graph Theory Class (Min25筛)

题意:n个点的完全图,边权为lcm(i+1, j+1),求mst。题解:Min25筛质数与2连,其他点与最小因子连,那么只要求n以内质数和即可。比赛的时候本来想用区间筛打表的,这题其实套个Min25筛就好了,因为1e10,用int128存质数和,避免取模,结果调了一个下午,居然是n为1没输出。#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<cstdio>#include<string>#i

2020-09-21 17:42:59 1417

原创 Gym 102501G Swapping Places (拓扑排序)

题意:给定S种动物, L对朋友关系, N个动物, 如果两个相邻的动物是朋友关系, 则可以换序. 让你给n个动物排序, 按照字典序最小输出所有动物。题解:拓扑排序相同动物的位置关系一定固定,考虑不是朋友关系的动物,则它们的两两相对位置一定不变,这样就构成了约束,用last[]last[]last[]存储上一个不是朋友关系的动物位置,然后建图,跑拓扑排序即可。由于要按照字典序最小输出,用优先队列优先取出字典序最小的即可。#define _CRT_SECURE_NO_WARNINGS#include&l

2020-09-19 17:38:05 168

原创 Gym 102501A Environment-Friendly Travel (二维dijkstra)

题意:平面上,要从起点到终点,中间有n个站台,站台之间有边。两点距离为欧几里得距离。每个边可以坐不同交通工具对应不同碳排放量。求起点到终点距离不超过B且碳排放量最小的路径。题解:二维dijkstra由于存在限制条件B,我们可以将d数组改为二维。d[i][j]d[i][j]d[i][j]:0点到 i 点的最小碳排放,且距离为 j 。然后正常建边跑dijkstra即可。#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include&l

2020-09-18 21:10:54 367

原创 Gym 102501K Birdwatching (bfs)

题意:n个点,m条边的有向图,给出目标点,求与该点直接相连的点,且这些点不存在第二条路径与目标点相通。题解:bfs先将目标点从图中拿走,再反向建图。用集合s表示能直接到达目标点的点集,我们从这些点开始bfs,若存在两条路径到达点集s中的某个点x,那么x就不符合条件。若继续bfs,复杂度会是n2 ,其实若该点属于点集s,且已经访达两次,那么之后的点不需要再访问了,因为肯定也访达了两次。因为要判环,我们直接用一个vector表示vis,同时存储是从哪个点开始bfs的。#define _CRT_SECU

2020-09-18 19:22:18 206

原创 HDU 6853 Jogging (bfs+图上随机游走+概率)

题意:求在坐标图上,随意游走无穷步,回到起点的概率。只能游走gcd(x,y) > 1的坐标。题解:bfs+图上随机游走+概率对于一张n个点的连通图,记起点为s,那么有一个结论,从s出发然后回到s的概率为 (s的度数+1)/(总度数+n)。我们可以从s点开始bfs构建连通图,若图包含了对角线即x==y,那么图是无穷的,概率自然在极限下趋于0。然后我们可以证明这张不包含对角线的连通图,它的大小只有几百,贴一下题解的证明:bfs的时候直接记录度数即可。#define _CRT_SECURE_N

2020-09-17 00:46:17 806

原创 HDU 6850 Game (博弈+dp)

题意:n个点,起初石子在第一个点,Dodo 和 ddd 轮流移动石子到一个从未访问过的点,且每次移动的距离必须大于前一段的距离,两人采取最优策略,求Dodo是否必胜。题解:博弈+dpdp[x][y]dp[x][y]dp[x][y]:x到y这条边是否为必胜态。若该状态是必胜态,那么从y到任意点的边所代表的状态都是必败态。由此,我们记忆化搜索即可。但是还有一个问题,就是我们在dfs的时候并没有考虑访问的点之前是否已经访问过,其实这是可以忽略的,因为距离递增,最终必然确定一个状态,由此就可以推得前驱状态了

2020-09-16 22:22:15 128

空空如也

空空如也

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

TA关注的人

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