自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(100)
  • 收藏
  • 关注

转载 清华大学-成绩排序(排序+解决MLE问题)

成绩排序成绩排序这里需要注意的就是超内存的问题。解决方法就是通过指针的方式,每次动态开n大小的内存,而不是一开始就分配。#include<bits/stdc++.h>using namespace std;int n;const int maxn=1e6+6;struct node{ string name; int score; ...

2019-09-15 10:55:00 235

转载 CCF(压缩编码):动态规划+平行四边形优化

压缩编码201612-4一开始看这题还以为是哈夫曼编码的题目,结果是哈夫曼题目的变形。哈夫曼编码是每次合并任意两堆石子,而这里的题目是合并相邻的两堆石子,而且这里的合并花费是合并两堆石子加上所有的叶子结点。参考图解:https://blog.csdn.net/more_ugly_less_bug/article/details/60142954石子问题:https://blo...

2019-09-15 09:46:00 203

转载 CCF(引水入城:60分):最大流+ISAP算法

引水入城201703-5这从题目分析来看很像最大流的问题,只需要增加一个超级源点和一个超级汇点就可以按照题意连边再跑最大流算法。因为数据量太大了,肯定会超时。但是没有想到可行的解决方法。#include<bits/stdc++.h>using namespace std;const long long INF=0XFFFFFFFF;const int max...

2019-09-08 11:03:00 171

转载 CCF(地铁修建):向前星+dijikstra+求a到b所有路径中最长边中的最小值

地铁修建201703-4这题就是最短路的一种变形,不是求两点之间的最短路,而是求所有路径中的最长边的最小值。这里还是使用d数组,但是定义不同了,这里的d[i]就是表示从起点到i的路径中最长边中的最小值。在松弛的时候,注意是d[i]>max(d[u],cost),max保证了是所有路径中的最长边,>号保证了是最小值。这里使用前向星+优先队列对dijikstra算法进...

2019-09-08 09:43:00 126

转载 HDOJ-1301(最小生成树模板+Prim算法)

Jungle RoadsHDOJ-1301这是最小生成树的水题,唯一要注意的就是那个n,其实输入只有n-1行。#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<queu...

2019-09-06 21:02:00 103

转载 POJ-3026(图上的最小生成树+prim算法+gets函数使用)

Borg MazePOJ-3026一开始看到这题是没有思路的,看了题解才知道和最小生成树有关系。题目的意思是每次走到一个A或者S就可以分为多个部分继续进行搜索。这里就可以看出是从该点分出去的不同路径。所以首先需要使用bfs求出每对顶点的最短路来,但是在这个过程中,我出了个bug,导致调试半天,就是那里bfs上下左右走的时候的x,y都用的原来的。最小生成树就是使用prim算法,...

2019-09-06 20:28:00 152

转载 POJ-1751(kruskal算法)

HighwaysPOJ-1751注意这里的样例答案也是对的,只是输出顺序改变,但是这也没关系,因为题目加了特殊判断。#include<iostream>#include<cstring>#include<string>#include<algorithm>#include<cstdio>#include<c...

2019-09-06 12:28:00 155

转载 POJ-2349(kruskal算法+最小生成树中最大边的长度)

ArcticPOJ-2349这题是最小生成树的变形题目。题目的意思是已经有s个卫星频道,这几个卫星频道可以构成一部分的网络,而且不用费用,剩下的需要靠d的卫星接收器。题目要求的就是最小生成树中,最大的边的长度。题目中的传入kruskal函数里面的sn表示还需要连接的顶点个数,因为剩下的可以使用卫星频道来连接。剩下的就是kruskal的问题了,这里通过当前最大边来返回答案。#...

2019-09-06 12:04:00 230

转载 POJ-1874(SPFA+也叫队列优化的Bellman-Ford算法)

TramPOJ-1847这里其实没有必要使用SPFA算法,但是为了巩固知识,还是用了。也可以使用dijikstra算法。#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include&lt...

2019-09-06 10:58:00 120

转载 POJ-2253(最短路变形+dijikstra算法+求解所有路径中所有最长边中的一个最小值)

froggerPOJ-2253这题的代码特别像prim求解最小生成树的代码,其实两者本来也很像。这里的d数组不再维护的起点到该点的最短距离了,而是路径中的最长距离。#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include&...

2019-09-05 19:55:00 320

转载 POJ-1062(原始dijiksra算法+思维)

昂贵的婚礼POJ-1062这道题目一开始看的时候难以理解,但是仔细想,还是可以和最短路联系的,我觉得类似于硬币交换等问题。以下需要注意几个点,第一就是因为题目规定如何和超出了等级限制的人交易,则拒绝交易。也就是说符合交易条件的人一定和第一个人(国王)之间的等级差距小于m。这里通过枚举等级差距的方法来限制每次交易的人的总体的最大等级差距之差。加入一开始人的等级是3,而限制的等级差...

2019-09-05 19:03:00 290

转载 HDOJ-3416(最大流+最短路+ISAP算法+向前星dijikstra算法+如何判断一条边是否在最短路中)...

Marriage Match IVHDOJ-3416这题的题意就是要找两点之间最短路的路径个数,而且边不能重复。最大流和最短路的结合。首先正向和反向建图,再跑两遍dijikstra。到这里就求出来起点到某一点的最短路以及某一点到终点的最短路。还有一个关键的公式就是如何判断一条边是否在最短路中:如果起点到该边的起点的最短距离加上该边的终点到终点的最短距离再加上该边的长度等于起点到...

2019-09-05 16:51:00 232

转载 HDOJ-4725(Dijikstra算法+拆点求最短路)

The Shortest Path in Nya GraphHDOJ-4725这题是关于最短路的问题,但是和常规的最短路有点不同的就是这里多了层次这一结构。为了解决这一问题可以把每一层抽象或者划分为两个点:入点和出点。对于每个点,将所在层的入点和该点相连,再将该点和所在层的出点相连,权值都为0.对于每一层,将该层的出点和上面一层,以及下面一层的入点相连,取值就是题目给的c。...

2019-09-05 12:05:00 209

转载 LightOJ-1074(SPFA判负圈+Bellman-Ford算法)

Extended TrafficLightOJ-1074这题因为涉及到减法和三次方,所以可能会出现负圈。这里使用的算法叫做SPFA算法,这个可以用来判负圈和求解最短路。Bellman-Ford算法和SPFA算法很相似。这里要注意的是cnt出现次数应该要在哪里加。#include<iostream>#include<cstdio>#include&...

2019-09-04 19:59:00 161

转载 CCF(除法):线段树区间修改(50分)+线段树点修改(100分)+线段树(100分)

除法201709-5这道题有很多种方法来做,最常用的就是线段树和树状数组。如果使用线段树来做,就会想到区间修改的update函数。但是这里可能会涉及到v是1或者a[j]是0的情况,所以用这种方法会超时,最多50分。可以修改一下代码,使用点修改来做这道题。在main函数里面增加一个循环,用来判断。当然,还有一种方法就是树状数组,这种方法和上面这种方法运行时间相差无几,但是代码量...

2019-09-04 08:50:00 184

转载 CCF(通信网络):简单DFS+floyd算法

通信网络201709-4一看到题目分析了题意之后,我就想到用floyd算法来求解每一对顶点的最短路。如果一个点和任意一个点都有最短路(不为INF),那么这就是符合的一个答案。可是因为题目超时,只能拿60分。另一种解法就是使用dfs把图简单的遍历一遍就可以了。这里要用到两遍dfs反着也要建图。#include<iostream>#include<cstdio...

2019-09-03 20:26:00 238

转载 CCF(JSON查询:40分):字符串+模拟

JSON查询201709-3纯字符串模拟,考的就是耐心和细心。可惜这两样我都缺。。。#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>#include<vector>#inclu...

2019-09-03 19:39:00 105

转载 CCF(公共钥匙盒):思维+模拟

公共钥匙盒201709-2这题的思路一开始不是很清晰,一开始想用贪心去做。但是发现按照题目的思路不对。所以这里采用的是类似于多项式的加减的处理。#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<string>...

2019-09-03 16:21:00 95

转载 HDOJ-1540(线段树+较复杂的单点修改和区间查询)

Tunnel WarfareHDOJ-1540这题关于线段树的操作有一定的难度,需要较好的思维能力。关于题目的详细解答已经在代码中体现了。#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>...

2019-09-02 20:56:00 119

转载 HDOJ-4027(线段树+区间更新(每个节点更新的值不同))

Can You answer these queries?HDOJ-4027这道题目和前面做的题目略有不同。以前的题目区间更新的时候都是统一更新的,也就是更新相同的值。但是这里不一样,这里更新的每个叶子结点改变不同。考虑到数字最大也就64位,所以就算加上开根号的操作,也就最多开7次,所以这里可以转移到update函数中,每次走到叶子结点的时候进行开根号的操作。在update函数...

2019-09-02 19:41:00 89

转载 POJ-2528(线段树+离散化)

Mayor's postersPOJ-2528本题是线段树的区间更新和离散化的结合。代码中需要注意的就是这里要加入一个去重的操作。而且我这里建树的时候是从1开始的,所以下标的问题要注意。还有一个需要注意的地方就是根据题目的意思在离散化之后,可能会出现一个问题,就是[1,10],[1, 4],[6,10]这种情况会发生错误。这里直接将4-6看成是连续的,但是实际上着中间还有一个5...

2019-09-02 18:50:00 148

转载 POJ-3468(线段树+区间更新+区间查询)

A Simple Problem With IntegersPOJ-3468这题是区间更新的模板题,也只是区间更新和区间查询和的简单使用。代码中需要注意的点我都已经标注出来了,容易搞混的就是update函数里面还需要计算sum数组。因为这里查询的时候是直接用sum查询结点。//区间更新,区间查询#include<iostream>#include<cst...

2019-09-02 16:35:00 120

转载 HDOJ-1754(线段树+单点更新)

I Hate ItHDOJ-1754这道题是线段树简单的入门题,只是简单考察了线段树的基本使用,建树等操作。这里需要注意的是输入要不使用scanf要不使用快速输入。这里的maxs数组需要开大一点,4倍是最稳妥的,一定不会溢出。区间查询的时候要注意if后不是之间使用else应该分开写,因为两个区间可能是相交的。//单点更新,单点查询#include<iostream...

2019-09-02 15:53:00 110

转载 CCF(URL映射:80分):字符串处理+模拟

URL映射CCF201803-3#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<vector>#include<sstream>#include&...

2019-09-01 20:39:00 127

转载 CCF(管道清洁):最小费用最大流

管道清洁201812-5需要清洁的管道下界为1,不需要清洁的管道下界为0,可重复经过的管道上界为正无穷,不可重复经过的管道上界为1。这属于无源无汇的有容量下界的最小费用可行流。解决的方法就是首先增加一个源点和一个汇点,然后对每一条有下限的弧进行改造,改成容量下限为0,上限为c-b的一条弧,再增加两条分别从x点指向源点的上限为b的弧,以及从源点指向y点的上限为b的弧。最后,...

2019-09-01 12:12:00 187

转载 CCF(元素选择器:50分):字符串+模拟

元素选择器201809-3这里我只考虑了没有后代选择器的情况#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<sstream>using namespace s...

2019-09-01 11:59:00 83

转载 POJ-1459(最大流+EK算法)

Power NetworkPOJ-1459这题值得思索的就是特殊的输入,如何输入一连串字符。这里采用的方法是根据输入已知的输入格式,事先预定好要接受的数据类型。这里套用的板子也是最大流的模板,但是虽然可以ac但是时间有点卡,所以如果可以的话还是使用高级的算法。#include<iostream>#include<algorithm>#include...

2019-08-31 17:20:00 307

转载 POJ-2516(最小费用最大流+MCMF算法)

Minimum CostPOJ-2516题意就是有n个商家,有m个供货商,然后有k种商品,题目求的是满足商家的最小花费供货方式。对于每个种类的商品k,建立一个超级源点和一个超级汇点。每个商家和源点连线,容量为需要的商品数,每个供货商和汇点连线,容量为可以提供的商品数。然后对于商家和供货商之间的连线就是,容量为INF,而费用就是题目提供的费用信息。#include<io...

2019-08-31 11:12:00 206

转载 POJ-2195(最小费用最大流+MCMF算法)

Going HomePOJ-2195这题使用的是最小费用流的模板。建模的时候我的方法出现错误,导致出现WA,根据网上的建图方法没错。这里的建图方法是每次到相邻点的最大容量为INF,而花费为1,因为花费等于距离。但是需要增加一个源点和一个汇点,然后将每个人和源点相连,每个房子和汇点相连,容量都为1,费用都为0.#include<iostream>#include...

2019-08-31 09:46:00 187

转载 POJ-1087(最大流+EK算法)

A Plug for UNIXPOJ-1087这一题也是最大流的应用,但是题目有点绕。题目的意思就是有插座和插头,只不过这里使用设备取代了插头。只有插座和设备进行匹配了。题目要注意的是那个适配器的问题,适配器给出的是 A,B 的模式,但是这里并不是指A可以取代B而是指B可以取代A,所以建图的时候要注意这个细节。还有一个问题就是题目的规模是未知的,所以maxn尽量设置的较大,这...

2019-08-30 19:27:00 154

转载 POJ-3281(最大流+EK算法)

DiningPOJ-3281这道题目其实也是网络流中求解最大流的一道模板题。只要建模出来以后直接套用模板就行了。这里的建模还需要考虑题目的要求:一种食物只能给一只牛。所以这里可以将牛拆成两个点,一个点和食物匹配,另一个点和饮料匹配。另外增加一个源点和一个汇点。最后根据题目的输入来连边就可以了。容量统一设置为1.#include<iostream>#includ...

2019-08-30 18:43:00 145

转载 POJ-3436(网络流+最大流+输出路径)

ACM Computer FactoryPOJ-3436题目就是一个工厂n个加工机器,每个机器有一个效率w,q个材料入口,q个材料出口,每个口有三个数表示状态,1表示一定有入/出的材料,0表示没有入/出的材料,2表示可能有入的材料。如果一个机器入口全是0,代表这是起始机器,如果一个机器出口全是1,那么代表这是末尾机器。将每个机器i拆成两点i和i+n分别代表进和出建立超级源点,连...

2019-08-30 17:06:00 184

转载 菲波那切数列的时间复杂度分析-矩阵加速斐波那契数列计算

斐波那契数列推荐一篇博文分享的时间复杂度分析转载于:https://www.cnblogs.com/GarrettWale/p/11433241.html

2019-08-30 09:39:00 190

转载 CCF(消息传递口:80分):字符串相关+队列

消息传递口201903-4本题主要是利用队列进行模拟,因为一开始我没有注意到要按照顺序,所以一开始的解法错误。#include<iostream>#include<algorithm>#include<string>#include<cstring>#include<cstdio>#include<queu...

2019-08-29 18:53:00 81

转载 CCF(数据中心):最小生成树+kruskal算法

数据中心201812-4这里就是最小生成树的应用#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<string>using namespace std;const int maxn=50004;cons...

2019-08-29 16:46:00 81

转载 CCF(再卖菜60分)爆搜+记忆化搜索+差分约束

201809-4再卖菜我使用的是爆搜解决,只得了60分。记忆化搜索差分约束#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<string>using namespace std;int n;in...

2019-08-29 11:50:00 66

转载 CCF(棋局评估)博弈论+对抗搜索+DFS

201803-4棋局评估这题主要使用对抗搜索,也就是每一步寻找可以下棋的位置,通过在这一步下棋看最后会取的什么样的分数。#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<string>using names...

2019-08-29 10:42:00 189

转载 HDOJ-4081(次小生成树+Prim算法)

Qin Shi Huang's National Road SystemHDOJ-4081本题考查的是次小生成树的问题,这里的解决方法就是先使用Prim算法求解最小生成树。在求解最小生成树的时候通过一个数组记录每一对顶点之间的路径上长度最长的一条边。这个由一个cost数组记录。最后,再依次遍历每一对顶点,如果这对顶点不在最小生成树里面,则直接去掉这条边改成魔法边。否则就将这对顶...

2019-08-28 15:13:00 88

转载 POJ-2031(最小生成树+kruskal)

Building a Space StationPOJ-2031注意,这里的输出需要是%f型而不是%lf型的,否则wa.#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<alg...

2019-08-25 16:29:00 151

转载 POJ-1182(经典带权并查集)

食物链POJ-1182一个很好的分析博客:https://blog.csdn.net/niushuai666/article/details/6981689三种关系:两者同类,吃父节点,被父节点吃,所以权值可以用0,1,2表示#include<iostream>#include<cstring>#include<cstdio>#inclu...

2019-08-25 08:58:00 38

空空如也

空空如也

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

TA关注的人

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