- 博客(56)
- 收藏
- 关注
原创 CodeForces - 658C Bear and Forgotten Tree 3
题目链接:https://codeforces.com/problemset/problem/658/C思路:先构造深度为h的链,再在这个基础上构造直径为d的链,最后所有的点都把它连到深度为h-1的那个节点上,这样可以保证直径不超过d同时树的深度不会超过hAC代码:#include<iostream>#include<algorithm>#include&...
2019-11-26 18:28:16
209
原创 Codeforces Round #600 (Div. 2) C. Sweets Eating
题目链接:https://codeforces.com/contest/1253/problem/C思路:我们可以知道值最小的糖果最后吃,所以先给糖果排个序,然后求出前缀和(隔m个数的数的前缀和,a1+a(1+m)+a(1+2*m)+.......)加进来的糖果只会影响他前m个位置的糖果,每一次后一天只需要在前一天基础加一个这个前缀和就好了,AC代码:#include<iost...
2019-11-23 15:16:54
218
原创 洛谷2774 方格取数问题 网络流
题目链接:https://www.luogu.org/problem/P2774思路:根据题意可以将图中的点分成两种点,一种(i+j)为奇数的点(红点),一种(i+j)为偶数的点(黑点),i为横坐标,j为纵坐标,设一个超级起点和一个超级终点,起点到红点建正向边和反向边,正向边权值为该红点的值,红点到黑点建边,黑点到终点建边,权值为黑点的值,然后跑网络流,输出为所有的点的总和减去最大流AC代...
2019-10-21 21:07:40
213
原创 Colorful String(回文树)
题目链接:https://nanti.jisuanke.com/t/41389题意:字符串的价值定义为字符串中不同字母的个数,计算给出串中所有回文串的价值。用到回文树,这里给一篇很好的博客:https://blog.youkuaiyun.com/u013368721/article/details/42100363那么这个回文树有何功能?假设我们有一个串S,S下标从0开始,则回文树能做到如下几...
2019-10-16 20:37:06
246
原创 AC自动机板子(hdu2222)&(hdu2896)
参考博客:https://blog.youkuaiyun.com/bestsort/article/details/82947639AC代码:hdu2222#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<queue>#in...
2019-09-09 21:24:13
194
原创 poj3659 ( 树形dp )
参考博客:https://blog.youkuaiyun.com/jiang199235jiangjj/article/details/7878473动态规划的思路: 根据题意知道每个节点有三种状态: 1、点i建塔,i的所有孩子都覆盖,用dp[i][0]表示; 2、点i不建塔,i和i的所有孩子都覆盖,用dp[i][1]表示; ...
2019-09-09 17:37:08
208
原创 扩展kmp初学习
参考博客:https://blog.youkuaiyun.com/cpx17852033609/article/details/85722384问题定义:给出两个字符串S和T(长度分别是n和m),下标从0开始,定义extend[ i ]表示S[ i ]......S[ n-1 ]与T的最长公共前缀的长度,求出所有的extend[ i ],如下表i 0 1 2 3 4...
2019-09-07 19:19:28
181
原创 poj3659( 树形dp )
参考博客:https://blog.youkuaiyun.com/jiang199235jiangjj/article/details/7878473动态规划的思路: 根据题意知道每个节点有三种状态: 1、点i建塔,i的所有孩子都覆盖,用dp[i][0]表示; 2、点i不建塔,i和i的所有孩子都覆盖,用dp[i][1]表示; ...
2019-09-05 20:46:59
166
原创 洛谷P2015 二叉苹果树&&洛谷P2014 选课 树形dp
参考博客:https://blog.youkuaiyun.com/kkkksc03/article/details/83018645P2015 二叉苹果树思路:dfs+回溯+dpAC代码:#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#incl...
2019-08-09 16:43:49
225
原创 2019牛客暑期多校训练营(第五场)F maximum clique 1 二分图最大独立集的输出
参考博客:https://blog.youkuaiyun.com/monochrome00/article/details/98205456最大独立集:简单的说:独立集就是,就是一个点集,点集中的各点没有关系。最大独立集就是,点的个数最多的独立集。最大独立集 == 点的总数 - 最小点覆盖。简单证明:最大独立集合的定义 是 最大无关系点的集合。而最小点覆盖的定义是,二分图中每个边至少一个...
2019-08-05 16:08:55
250
原创 hdu 6582path (2019 Multi-University Training Contest 1 1005)
题意:jerry要去见女朋友,但他的好朋友tom觉得jerry因此忽视了他,现在tom想要通过破坏某些路让jerry不能在最短时间见到jerry的女朋友,破坏每条路的花费就是这条路的长度(单向边),求tom的最小花费思路:最短路加最小割,我们先求出起点到所有点的最短距离和终点到所有点的最短距离,然后通过遍历所有的边找出最短路径的所有边,( disu[ edge[ i ].u ]+edge[ i...
2019-07-31 11:08:07
203
原创 洛谷p3381 最小费用最大流模板题 spfa+ek
题目描述如题,给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用。输入格式第一行包含四个正整数N、M、S、T,分别表示点的个数、有向边的个数、源点序号、汇点序号。接下来M行每行包含四个正整数ui、vi、wi、fi,表示第i条有向边从ui出发,到达vi,边权为wi(即该边最大流量为wi),单位流量的费用为fi。输出格式...
2019-07-31 10:54:29
307
原创 2019牛客暑期多校训练营(第四场)A题 树的直径
题目链接:https://ac.nowcoder.com/acm/contest/884/A两边bfs 第一遍求任意所选节点到另一所选节点的距离最大的那个点(假设是a),第二遍求a到另一所选节点的距离最大值,也就是树的直径AC代码:#include<iostream>#include<algorithm>#include<cstdio>#i...
2019-07-29 19:24:40
173
原创 树的重心 poj3701 模板题
树的重心也叫树的质心。找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。思路:dfs深搜+回溯poj3701 (有多个重心)AC代码:#include<iostream>#include<algorithm>#include<cstdio>#include<cstrin...
2019-07-29 19:15:02
384
原创 2019牛客暑期多校训练营(第二场)F Partition problem
题目链接:https://ac.nowcoder.com/acm/contest/882/F题意:有2*n个人,两两之间有一个相对价值,想再要分成两个队,假设是A队和B队,A队的人对B队的所有人都可以产生一个价值(同一个队伍的人相互之间不产生价值),问可以产生价值的最大值是多少思路:dfs搜索,将所有不同的分队伍情况找出来,计算总的价值有一个优化,在分队伍时可以把计算价值的步骤加进去,...
2019-07-21 13:53:30
422
2
原创 poj2431 优先队列+贪心
题意:有一人开车要行驶到 L 公里之外,初始时汽车有 p 单位汽油,每一单位汽油可以行驶一公里,路上有n个距离目的地 ai 公里的加油站,每个加油站可以加 bi 单位的汽油,问是否可以通过最小的加油次数使得该人可以到达目的地,可以的话输出最小的加油次数,否则输出-1思路:对于每一个加油站,到达之后我们先不加油,而是继续前进,将可以加的油保存在优先队列中,直到汽油不够到达下一个站的时候,这时我们...
2019-07-17 16:32:42
226
原创 网络流最大流
网络流最大流 poj1273为例题EK算法:#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<queue>#include<vector>#include<cmath>#include...
2019-07-17 14:14:07
177
原创 牛客小白月赛16 D 小阳买水果
题目链接:https://ac.nowcoder.com/acm/contest/949/DAC代码:#include <bits/stdc++.h>using namespace std;struct Node{ int num; int pos;};Node node[2000005];int a[2000005];bool cmp(Node...
2019-07-15 11:00:13
164
原创 牛客小白月赛16 J小雨坐地铁 分层图最短路
题目链接:https://ac.nowcoder.com/acm/contest/949/J中文体不解释题意思路:分层图最短路,每一条线建一层图,同时建一层虚点,每一层图的所有点都与虚点建两条边,虚点到该点的代价为上该条线的价格,该点到虚点的代价位0,建完图之后从虚点上车同时从虚点下车(因为不知道最后从哪一条线路下车,但虚点一定会下车)AC代码:#include<iostr...
2019-07-14 13:26:15
220
转载 已知多个连续点的坐标求重心 hdu1115
参考链接:https://www.cnblogs.com/lyf123456/p/3749296.html思路:转换为求三角形的重心。从第一个顶点出发,分别链接i,i+1形成三角形,可以得到n-2个新的三角形,分别求出每个三角形的重心及面积,用面积代替每一块三角形的重量,然后由下面公式求得多边形重心。根据物理公式n个点的质量是mi,则重心是:X=(x1*m1+x2*m2+...xn*m...
2019-07-13 15:38:44
2195
原创 (n的m划分) 划分dp poj1664
放苹果Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 40021 Accepted: 24456 Description把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。Input第一行是测...
2019-07-11 19:41:23
209
原创 hdu4513 manacher(马拉车算法)
题意就不说了 中问题求一个单调不减的最长的回文串的长度,只需要在判断回文条件时加一个单调不减的条件就好了AC代码:#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<queue>#include<vec...
2019-04-28 18:34:01
235
原创 牛客OI周赛8-普及组 兔子的名字(子序列自动机)&&牛客练习赛51 B题 子串查询
链接:https://ac.nowcoder.com/acm/contest/543/B子序列自动机:,对于abcacd,建立一个dis[ max ][ n ],如果dis[ i ][ j ]为-1,说明ascii值为'a'+j的字符在>=i之后不存在,如果为b,说明ascii值为'a'+j的字符在>=i之后最近的位置为 b之后: int tmp=0...
2019-04-23 21:04:44
321
原创 hdu3068 Manacher算法(马拉车算法)
回文串水题参考博客:https://blog.youkuaiyun.com/PK__PK/article/details/79566540Manacher算法:在O(n)时间内找出最长的回文串的长度,第一步在字符串首加一个@,然后在字符串之间加#例:aaabb 处理后:@#a#a#a#b#b# abba 处理后:@#a#b#b#a#p[i]数组:...
2019-04-21 15:59:34
309
原创 hdu1281
水题加了一个条件,问有多少个重要点,解决方法是:对于每一个点,我们进行一次判断,看删除这个点之后是否会影响答案,如果会这个点就是重要点,如果不会这个点就不是重要点。AC代码:#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include...
2019-04-10 21:24:34
293
原创 hdu2119
最大匹配水题AC代码:#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<queue>#include<vector>#include<cmath>#include<stack&g...
2019-04-10 19:18:40
139
原创 hdu2063
最大匹配水题AC代码:#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<queue>#include<vector>#include<cmath>#include<stack&g...
2019-04-10 19:17:01
195
原创 51nod1006 lcs
题目链接:https://www.51nod.com/Challenge/Problem.html#!#problemId=1006给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的)。比如两个串为:abcicbaabdkscabab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最长的子序列。收起输入第1行:字...
2019-04-01 19:55:35
201
原创 牛客练习赛21 A 黑妹的游戏I
链接:https://ac.nowcoder.com/acm/contest/130/A来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 131072K,其他语言262144K64bit IO Format: %lld题目描述黑妹最近在玩一个有趣的游戏,游戏规则是这样的:刚开始黑板上有三个不同的初始数字,然后黑妹每一次可以选择黑板上的两个不同的数字,...
2019-03-19 20:24:35
221
原创 hdu1150+poj3041 最小点覆盖or二分图最大匹配(匈牙利算法)
参考博客:https://blog.youkuaiyun.com/qq_40938077/article/details/80410356二分图:简单来说,如果图中点可以被分为两组,并且使得所有边都跨越组的边界,则这就是一个二分图。准确地说:把一个图的顶点划分为两个不相交集 和 ,使得每一条边都分别连接 、 中的顶点。如果存在这样的划分,则此图为一个二分图。二分图的一个等价定义是:不含有「含奇数...
2019-03-14 20:05:27
411
原创 hdu6181(次短路模板+spfa)
参考博客:https://blog.youkuaiyun.com/exp1ore/article/details/77541302题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6181Two PathsTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 153428/153428 K (Jav...
2019-01-22 13:39:25
273
原创 poj2449(第k短路模板,A*算法+spfa)
题目链接:http://poj.org/problem?id=2449Remmarguts' DateTime Limit: 4000MSMemory Limit: 65536KTotal Submissions: 39386Accepted: 10775Description"Good man never makes girls wait or breaks an appoi...
2019-01-21 20:05:03
385
原创 hdu4857(拓扑排序,反向遍历)
逃生Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7914 Accepted Submission(s): 2308Problem Description糟糕的事情发生啦,现在大家都忙着逃命。但是逃命的通道很窄,大家只...
2019-01-20 11:38:50
249
原创 归并排序模板
#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<queue>#include<cmath>using namespace std;#define LL long longconst int MOD=9...
2019-01-19 14:53:40
143
原创 分层图最短路初学
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2763中文题不解释题意了思路:我们设置dis[i][k]表示走到第i号点,免费经过了k条边的最短路。对于我们当前找到的终点,尝试起点的状态去更新,不选择此条边免费的状态和选择此条边免费的状态,再将这两个状态压入队列去更新可以到达的其他状态。代码(原oj好像不能注册就没有再注册...
2018-12-06 18:48:01
270
原创 kmp初学
kmp算法:KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息。时间复杂度O(m+n)。给出一个串:abacabcab,相应的next[]={-1,0,0,1,0,1,2,0,1};next[i]可...
2018-11-22 22:18:58
212
原创 路径数量 dp 思维题
链接:https://www.nowcoder.com/acm/contest/185/B 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/...
2018-09-13 21:02:54
335
原创 强连通分量——tarjan
学自:https://blog.youkuaiyun.com/qq_34374664/article/details/77488976强连通:在一个有向图里面,如果有两个点a和b满足a和b之间互通,则称(a,b)强连通强连通图:一幅图中所有点之间都满足强连通,则可以称这是一幅强连通图,(无向图必是强连通图)强连通分量:强连通图的一幅子图如果满足子图的所有点之间都是强连通,则称这幅子图为这幅强连通图...
2018-09-13 20:35:10
554
原创 dijstra优化(优先队列+邻接表)
以poj2387为例dijstra的思想是每次在dis数组里面找出最小的那一条边,然后用这一条边去松弛其他的边,在这里我们把dis数组保存在一个优先队列里面,同时把图存在邻接表里面,每次通过优先队列得出dis数组里面最小的那条边,然后通过邻接表去松弛与这条边相连的其他的边,然后把更新的dis数组存入优先对列,直到队列为空时结束。ac代码:#include<iostream>...
2018-09-06 19:57:35
338
原创 51nod1087 思维题
1087 1 10 100 1000 题目来源: Ural 1209基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题1,10,100,1000...组成序列1101001000...,求这个序列的第N位是0还是1。Input第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 10000)第2 - T + 1行...
2018-08-08 14:50:08
289
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人