HDU OJ
杭电OJ
Ember_Sky
这个作者很懒,什么都没留下…
展开
-
杭电1754——线段树(单点更新、区间最值)
杭电1754——线段树(单点更新)杭电1754原题传送门线段树单点更新详解传送门写在最前面:用scanf(printf)代替cin(cout),时间少的不是一点点。同样的代码scanf能过,cin超时。嗯,玄学做题。已过代码# include <iostream># include <algorithm># include <cstdio># i...原创 2019-04-07 11:52:15 · 147 阅读 · 0 评论 -
杭电2063——匈牙利
杭电2063——匈牙利原题链接# include <iostream># include <algorithm># include <cstring>using namespace std;const int maxn = 505;int line[maxn][maxn];int girl[maxn];int used[maxn];int...原创 2019-03-31 18:19:37 · 131 阅读 · 0 评论 -
杭电0000——快速幂系列
快速幂杭电1097原题链接# include <iostream># include <algorithm># include <cstdio># include <cstdlib># include <string># include <cstring>using namespace std;long l...原创 2019-03-31 18:13:45 · 72 阅读 · 0 评论 -
杭电1232——并差集
杭电1232——并差集原题链接# include <iostream># include <algorithm># include <cstdio># include <cstdlib># include <string># include <cstring>using namespace std;int ...原创 2019-03-31 18:02:37 · 259 阅读 · 0 评论 -
杭电1863——Kruskal(克鲁斯卡尔)+并差集---最小生成树
杭电1863——Kruskal+并差集原题链接# include <iostream># include <cstdio># include <algorithm># include <cstring># include <cstdlib>using namespace std;const int maxn = 200;...原创 2019-03-31 17:56:13 · 167 阅读 · 0 评论 -
杭电1874——Floyd(弗洛伊德)最短路径
杭电1874——Floyd原题链接# include <iostream># include <algorithm>using namespace std;const int maxn = 202;int dp[maxn][maxn];int main(void) { int m, n; while (cin >> n >> m...原创 2019-03-31 17:48:55 · 139 阅读 · 0 评论 -
杭电1166——线段树(单点更新)
杭电acm1166——线段树在刷acm的时候往往会遇到一些需要用线段树才能解决的问题。虽然线段树只是acm众多算法中的最简单的几种,但是他的效率非常的高,一般算法复杂度为o(n)的题,通过线段树之后,就会变成o(log2(n)),本文是以杭电acm1166题举例,来对线段树进行一些了解:原题链接敌兵布阵Problem Description C国的死对头A国这段时间正在进行军...原创 2019-04-07 09:56:31 · 217 阅读 · 0 评论 -
杭电2058——The sum problem
杭电acm2058————The sum problem(C语言)原题: Problem DescriptionGiven a sequence 1,2,3,……N, your job is to calculate all the possible sub-sequences that the sum of the sub-sequence is M.InputInput contains mu原创 2018-01-03 15:11:52 · 2064 阅读 · 5 评论 -
杭电2473——并差集(删除节点)
杭电2473——并差集(删除节点)原题传送门,并差集模板函数简单讲解,大佬的并差集详解。写在题前:这道题呢,刚开始没读懂(可见我英语水平是怎样渣),我以为连接关系是不会传递的(都是样例惹的祸。嗯,没错,就是样例的锅),后来才知道,如果两个邮件建立了关系,就一直有关系,除非有一个邮件被孤立了。比如:0—1—2,3—4已经建立了这样的关系,如果孤立1节点,那么,0和2还是属于同一类,1属于另一...原创 2019-06-04 11:25:26 · 131 阅读 · 0 评论 -
杭电3635——(带权)并差集
杭电3635——(带权)并差集原题传送门,并差集模板函数介绍,大佬的并差集详解。写在题前:这个题用的并差集需要带权值,刚开始不是那么容易理解,不过你转过那个弯就很简单了。解题步骤:1、转移龙珠的时候:先找到当前龙珠的位置,再将这个位置的所有龙珠放在另一个位置。2、查询的时候:直接访问数组就行。写在题后:我本来以为输入数据可能会出现环的情况,好不容易写完了,结果wa了,后...原创 2019-06-01 17:31:06 · 137 阅读 · 0 评论 -
杭电1198——并差集
杭电1198——并差集原题传送门,并差集模板函数简单介绍,大佬的并差集详解。写在题前:因为最近学的并差集,因此专门搜的杭电并差集,也就是说,在看这个题之前我已经知道他是用并差集来做的。之前我碰到的题没有涉及到二维这种情况,其实了解了思路还是很好做的,就是过程有点繁琐,细节要注意。解题步骤:1、遍历每个田地,对于每个田地,遍历他上下左右的四块田地,如果还没有连接并且可以连接就将他们连起来。...原创 2019-05-31 18:47:26 · 147 阅读 · 0 评论 -
杭电1829——并差集+性别判断
杭电1829——并差集+性别判断原题传送门,并差集模板简介,大佬并差集详解。写在前面:这个题让我们判断有没有同性恋(好变态哦),需要用并差集来做,不过还需要判断性别。虽然是用并差集但是跟平常的还是有点区别的(注意meg和fin函数的变化)。解题思路:判断两个昆虫是否相连1、如果没有,用meg函数连起来。2、如果已经相连,就判断两个昆虫是否同性,怎么判断呢,其实我们可以通过节点到最上面...原创 2019-05-30 20:54:30 · 131 阅读 · 0 评论 -
杭电1116——并差集+欧拉回路
杭电1116——并差集+欧拉回路原题传送门,并差集的简单解释,大佬的并差集详解。解题思路:这个题涉及了欧拉回路(因此这个题用的是有向图)的内容,如果你只有并差集的知识,是做不了这个题的。其实欧拉回路就是名字高大上一点而已,内容还是很简单的。欧拉回路百度百科传送门,没听过的可以简单了解一下。1、并差集将所有能连接的单词都连起来,判断是不是都能连在一起。2、欧拉回路欧拉路:有头有尾(...原创 2019-05-30 17:03:18 · 105 阅读 · 0 评论 -
杭电1856——并差集
杭电1856——并差集原题传送门,并差集的简单介绍,大佬并差集详解。解题思路:这个算并差集的裸题吧。先将输入的数据(还没有连接的数据)全部用meg函数连起来,然后用fin函数遍历每个男孩最上面的父亲,用ans数组记录最上面的父亲出现的次数(ans[i]=9:i是几个人的父亲);然后遍历ans数组,找出最大的值就是答案。注意:1、fin函数有很多种写法,这里我建议用路径压缩,没用路径压缩的...原创 2019-05-30 11:15:03 · 133 阅读 · 0 评论 -
杭电1325——并差集
杭电1325——并差集原题传送门,并差集模板详解链接,大佬并差集详解链接,杭电1272题解。解题思路:这道题乍一看,和杭电1272一样(样例不是都没变嘛,这还做个锤子,直接在杭电1272的基础上改了输出格式,提交之后才发现,是真的做个锤子,对于萌新(我)来说坑太多了)。1、输出:一般来说输出是不会出现什么问题的,但是我到最后才发现,我看漏了一个句号,好蠢哦。2、杭电1272是一个无向图,...原创 2019-05-29 21:02:14 · 158 阅读 · 0 评论 -
杭电1272——并差集
杭电1272——并差集原题传送门,并差集模板详解链接,大佬并差集详解链接。解题思路:1、判断是否有环2、判断所有的房子是否连在一起。第一点可以通过same函数判断,在输入的时候就可以判断;第二点可以先通过vis数组标记,然后遍历vis数组,当vis[i]==1并且id[i]==i的时候,说明i是最上面的父亲。再符合条件的情况下,这样的父亲只有一个,如果个数大于一,说明房间并不是全都相连...原创 2019-05-29 19:55:57 · 134 阅读 · 0 评论 -
杭电1213——并差集
杭电1213——并差集原题传送门这道题和杭电1232几乎一样,杭电1232详解,大佬并差集详解。ac代码# include <iostream># include <algorithm># include <cstdio># include <cstdlib># include <string># include <...原创 2019-05-28 20:33:51 · 142 阅读 · 0 评论 -
杭电2527——哈夫曼编码
杭电2527——哈夫曼编码题目传送门# include <iostream># include <algorithm># include <vector># include <stack># include <queue># include <string># include <sstream>#...原创 2019-05-11 17:21:35 · 246 阅读 · 0 评论 -
杭电1053——哈夫曼编码
杭电1053——哈夫曼编码题目传送门很简单的一个算法。# include <iostream># include <algorithm># include <vector># include <stack># include <queue># include <string># include <sst...原创 2019-05-11 17:20:05 · 145 阅读 · 0 评论 -
杭电1686——KMP(字符串匹配)
杭电1686——KMP(字符串匹配)原题传送门KMP裸题,感觉最近开始水题目数量了。炒鸡!炒鸡!炒鸡!!!详细的KMP讲解。视频链接# include <iostream># include <algorithm># include <string># include <cstdio># include <cstring>...原创 2019-04-14 18:15:56 · 275 阅读 · 0 评论 -
杭电3294——manacher(马拉车)最长回文串
杭电3294——manacher(马拉车)最长回文串原题传送门manacher裸题#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <string>using namespace std;const in...原创 2019-04-14 17:05:03 · 121 阅读 · 0 评论 -
杭电3068——manacher(马拉车)最长回文串
杭电3068——manacher(马拉车)最长回文串原题传送门#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int maxn = 300000;//数组长度上限char a[max...原创 2019-04-14 15:23:30 · 167 阅读 · 0 评论 -
杭电2157——矩阵快速幂
杭电2157——矩阵快速幂原题传送门只要知道一些矩阵相乘的知识,矩阵快速幂很好理解,要是没有任何矩阵的知识,可以先去问问度娘矩阵是怎么相乘的。不过我至今不知道这道题为什么要用矩阵快速幂,矩阵快速幂为什么能ac?# include <iostream># include <algorithm># include <cstdio># include &l...原创 2019-04-13 17:16:52 · 175 阅读 · 0 评论 -
杭电2066——dijkstra(迪杰斯特拉)最短路径
杭电2066——dijkstra(迪杰斯特拉)最短路径原题传送门弗洛伊德解题这道题应该比较符合Floyd的思想,s和d的数据量可能特别大,不过迪杰斯特拉肯定能做啊!!!# include <iostream># include <algorithm># include <vector># include <cstdio># inclu...原创 2019-04-10 18:25:22 · 261 阅读 · 0 评论 -
杭电2066——Floyd(弗洛伊德)最短路径
杭电2066——Floyd(弗洛伊德)原题传送门水题水题!!!# include <iostream># include <algorithm># include <vector># include <cstdio>using namespace std;const int maxn = 1e7;const int lens = ...原创 2019-04-10 16:18:43 · 159 阅读 · 0 评论 -
杭电1874——SPFA(最短路径)
杭电1874——SPFA原题传送门迪杰斯特解题拉传送门弗洛伊德传送门裸题裸题!!!# include <iostream># include <algorithm># include <queue># include <vector># include <stack># include <cstdio>#...原创 2019-04-10 15:03:32 · 120 阅读 · 0 评论 -
杭电1874——Dijkstra(迪杰斯特拉)最短路径
杭电1874——Dijkstra(迪杰斯特拉)原题传送门迪杰斯特拉模板可以过,代码借鉴的是一个大佬的CSDN博客,不过后来整丢了,我的代码是我一个字母一个字母敲出来的,特在此注明。杭电1874弗洛伊德代码# include <iostream># include <algorithm># include <cstring>using namespa...原创 2019-04-09 20:39:38 · 210 阅读 · 0 评论 -
杭电4417——分块
杭电4417——分块原题传送门分块裸题,不用更新数据,需要更新数据的,点这里写在前面:杭电太死亡了,cin超时,只能用scanf。# include <iostream># include <algorithm># include <cstdio># include <cmath>using namespace std;const...原创 2019-04-08 17:47:48 · 83 阅读 · 0 评论 -
杭电1301——最小生成树+并差集
kruskal 配并差集模板题#include <iostream>#include <algorithm>#include <cstring>#include <cmath>using namespace std;const int mx = 105;//存储节点上级int f[mx];//存储两节点之间的距离struct node { char a, b; double val;};//排序opbool cmp(no原创 2020-10-27 16:55:52 · 103 阅读 · 0 评论 -
杭电1102——最小生成树+并差集
kruskal 配并差集模板题#include <iostream>#include <algorithm>#include <cstring>#include <cmath>using namespace std;const int mx = 105;//存储节点上级int f[mx];//存储两节点之间的距离struct node { int a, b; double val;};//计算两个节点之间的距离doubl原创 2020-10-27 16:33:39 · 91 阅读 · 0 评论 -
杭电1162——最小生成树+并差集
kruskal配合并差集模板题#include <iostream>#include <algorithm>#include <cstring>#include <cmath>using namespace std;const int mx = 105;//存储节点上级int f[mx];//存储两节点之间的距离struct node { int a, b; double val;};//计算两个节点之间的距离doubl原创 2020-10-27 16:17:47 · 106 阅读 · 0 评论 -
杭电1875——最小生成树+并差集
最小生成树模板题,使用 kruskal 配合并差集做#include <iostream>#include <algorithm>#include <cstring>#include <cmath>using namespace std;const int mx = 105;//存储节点上级int f[mx];//存储两节点之间的距离struct node { int a, b; double val;};//计算两个节点之原创 2020-10-27 12:54:59 · 110 阅读 · 0 评论 -
杭电1233——最小生成树+并差集
算是最小生成树的模板题吧最小生成树算法有 prim 和 kruskal 两个我一般会用kruskal,好理解,代码好写kruskal会用到并差集,很经典的算法#include <iostream>#include <algorithm>#include <vector>#include <cstring>using namespace std;int f[105];//记录父亲节点int r[105];//记录深度struct nod原创 2020-10-26 21:11:50 · 137 阅读 · 0 评论 -
杭电2050-2059题解
杭电2050-2059题解大一实在是太闲了, 刷的杭电OJ, 因为当时只学了C, 所有题解都是C杭电acm2050# include <stdio.h>int main (){ int n,x,i; int a[10001]; a[1]=2; for (i=2;i<10001;i++) { a[i]=a[i-1]+4*i-3; } while...原创 2020-05-07 19:28:06 · 291 阅读 · 0 评论 -
杭电2040-2049题解
杭电2040-2049题解大一实在是太闲了, 刷的杭电OJ, 因为当时只学了C, 所有题解都是C杭电acm2040# include <stdio.h>int main(){ int n,a,b,x,y,i; while (~scanf ("%d",&n)) { while (n--) { scanf ("%d%d",&am...原创 2020-05-07 19:24:30 · 324 阅读 · 0 评论 -
杭电2030-2039题解
杭电2030-2039题解大一实在是太闲了, 刷的杭电OJ, 因为当时只学了C, 所有题解都是C杭电acm2030# include <stdio.h>int main(){ int n,x,i,j; char str[200]; while (~scanf ("%d",&n)) { getchar (); ...原创 2020-05-07 19:20:17 · 220 阅读 · 0 评论 -
杭电2020-2029题解
杭电2020-2029题解大一实在是太闲了, 刷的杭电OJ, 因为当时只学了C, 所有题解都是C杭电acm2020# include <stdio.h>int main (){ int n,i,j,t; int a[100],b[100]; while (~scanf ("%d",&n),n!=0) { for (i=0;i<n;i++) {...原创 2020-05-07 19:16:57 · 520 阅读 · 1 评论 -
杭电2010-2019题解
杭电2010-2019题解大一实在是太闲了, 刷的杭电OJ, 因为当时只学了C, 所有题解都是C杭电acm2010# include <stdio.h>int main(){ int m,n,a,b,c,x=0; while (~scanf ("%d%d",&m,&n)) { if (100<=m &&...原创 2020-05-07 19:13:11 · 310 阅读 · 0 评论 -
杭电2000-2009题解
杭电2000-2009题解大一实在是太闲了, 刷的杭电OJ, 因为当时只学了C, 所有题解都是C杭电acm2000#include <stdio.h> int main() { char a,b,c,d,x,y,z; while(scanf("%c%c%c%c",&a,&b,&c,&d) != EOF) { ...原创 2020-05-07 19:05:47 · 468 阅读 · 0 评论 -
杭电3234——带权并差集(异或运算)
杭电3234——带权并差集(异或运算)写在题前:拿到题的时候,woc,这是个什么鬼题哦!刚开始不知道异或的一些运算,所以没怎么有思路,后来找了异或公式,还是没怎么有思路,哈哈哈。有用的异或公式:a ^ b ^ b ^ c ^ b ^ c ^ b ^ c = a ^ c 。(就是可以消去两个相同的元素,有点消消乐的感觉)可以搜一下异或运算的应用,比如说:判断重复元素等等。还是挺有意思的。...原创 2019-06-15 12:48:41 · 402 阅读 · 0 评论