自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 欧拉回路(无向图,有向图,混合图)

1.uoj#117 欧拉回路 给无向图和有向图两种图,判断是否存在并输出其欧拉回路 板子题。。。 无向图欧拉回路存在条件:所有点度数为偶数且所有边连通 有向图欧拉回路存在条件:所有点出度等于入度且所有边连通 #include<stdio.h>#include<iostream>#include<vector>#include<algorithm>#inclu...

2021-01-07 16:19:00 1218

原创 Wannafly挑战赛1 - C.MMSet2(虚树,lca)

https://ac.nowcoder.com/acm/contest/15/C很显然,虚树建出来后,dp一下,答案就是(虚树的直径+1)/ 2。。但是wa了两个小时后才发现自己一直用的是假的虚树板子。。。看了别人代码后,发现树的直径也可以通过离深度最大点的距离求出,并不需要建虚树dp。。。。。。虚树dp求直径#include<bits/stdc++.h&gt...

2020-04-21 00:06:57 223

原创 牛客练习赛61 ——F.苹果树(动态点分)

题意: 链接:https://ac.nowcoder.com/acm/contest/5026/F 给定一个由n个点和n-1条边组成的无向连通图(即一棵树),每一条边都有一个权值代表走过它所需要的时间花费,每个点上面有初始有一个苹果,每个苹果有一个成熟度。 由于苹果不熟或者熟的太透了都不会好吃,所以现在米咔想摘一个成熟度在范围[x,y]的苹果来做苹果派。现在需要你来...

2020-04-11 00:21:23 244

原创 Codeforces Round #625 div1 C.World of Darkraft: Battle for Azathoth & D.Reachable Strings

C. World of Darkraft: Battle for Azathoth 题意:有n把武器,m件盔甲,每件武器有攻击力Ai和价格CAi,每件盔甲有防御力Bj和价格CBj,现需购买一把武器和一副 盔甲。 另外有p个怪,每个怪有防御力Xk、攻击力Yk以及击杀奖励Zk,一个怪被击杀当且仅当 购买武器的攻击力大 于怪物 防御力,盔甲防...

2020-03-02 04:15:30 320

原创 HDU 6072 Logical Chain

HDU6072题意: 给n个点和n*n的邻接矩阵,m次操作,每次将邻接矩阵中不超过k个位置取反,即将1转0,将0转1,问每次操作后有多少个点对能相互到达。n<=250,m<=25000,k<=10.题解: 很显然的求连通分量,但这里用tarjan复杂度会达到O(n*n*m),TLE.. 另一个求强连通分...

2020-02-17 03:51:31 271

原创 分数规划

poj2976裸。。直接二分#include<stdio.h>#include<iostream>#include<queue>#include<string.h>#include<stdio.h>#include<algorithm>#include<math.h>using nam...

2020-01-18 19:28:25 440

原创 2019ICPC银川区域赛-H.Delivery Route( spfa优化 或 强连通分量+拓排+dij)

题目大意:给一个n个点,x条双向边,y条单向边的图,同时双向边权全为正,单向边权有可能为负,且保证单向边不会出现在环中。求从点s分别到1~ n的最短距离。 由于有负边,不能直接用dij,而裸的spfa又会被卡上天,所以需要考虑下其它做法。 强连通分量+拓排+dij。由于负权边不会出现在环中,所以可对图进行缩点,对每个强连通分量跑一遍dij,同时按拓扑序更新后面强连通...

2019-11-30 21:15:57 1088 6

原创 codeforce710f

题目大意:m次操作,3种操作,添加一个新串,删除一个串,给一个串询问集合里所有串的出现次数之和。要求强制在线。 维护两个集合,一个维护增加串,一个用来维护删除串,结果即为这两个集合里字符串的出现次数之差。由于题目要求强制在线,每次删减后都要重建AC自动机,但这样显然会T掉。所以需要在线的ac自动机。。。 二进制分组。。。。。#include<iostream&...

2019-10-23 13:29:43 149

原创 Gym 100959B Airports(曼哈顿距离最大生成树)

曼哈顿距离最小生成树:https://www.cnblogs.com/xzxl/p/7237246.html 这道题显然是求曼哈顿距离的最大生成树,和求最小生成树一样,用个树状数组维护最值,加边后跑kruskal,不同的是最大生成树需要枚举8个方向的最大值。#include <iostream>#include <cstdio>#include <cs...

2019-10-02 03:52:05 793

原创 Comet OJ - Contest #11- isaster (kruskal重构树)

题意:给一个无向连通图,两种操作:1.修改点权 2.询问从x出发只经过编号<=y 的点的点权积 按边端点的max值排序后建kruscal重构树,线段树维护重构树dfs序的点权积,修改时的直接线段树单点修改点权,查询时倍增找到x能到达的最高结点查询子树的点积即可。。#include<iostream>#include<stdio.h>#includ...

2019-09-26 01:07:41 246

原创 HDU多校第二场 - hdoj6599 I Love Palindrome String

题目大意:给一个长度n的字符串S,问长度分别为1 - n 的回文子串个数,且每个回文子串S(l,r) 需满足 S(l,(l+r)/2)也是回文串。 回文自动机处理出不同回文子串的个数,然后用马拉车判断每个回文串是否满足要求即可。。#include<iostream>#include<cstdio>#include<cmath>#inc...

2019-07-25 01:06:15 156

原创 codeforce1195E OpenStreetMap

单调队列。。先竖着处理出每一列的的最小值,再横着处理每一行的最小值。#include<iostream>#include<stdio.h>#include<vector>#include<math.h>using namespace std;int A[3010][3010],l[3010],r[3010],B[3010];stru...

2019-07-18 02:29:50 158

原创 bzoj3730震波(点分树,树状数组)

题目大意:n个节点的树,m次操作,每次修改每个点权值,或询问与节点x距离不超过k的所有点权值之和。 对点分树的每个节点X用个线段树维或树状数组维护其子树中每个点到X的距离权值,再用另一个维护到fa[x]的距离权值(用于查询时容斥)。修改询问时沿着父节点往上跑 log n 层更新或查询。查询时需要减去前一层中的结果。。 一开始用动态开节点的线段树+LCA玄学CE的了好几发(到...

2019-07-04 00:43:10 300

原创 bzoj1095 (点分树)

题目大意:n个节点的树,m次操作,每次将白点变黑,将黑点变白,或询问最远黑点对的距离。若无修改,可直接树形dp或点分求即可,加上修改的话就要用到点分树了(orz括号序列的做法)。。。考虑没修改时点分治的做法为对每个root,最远点对即为不同子树上最远和次远黑点的距离之和,所以对于点分树的每个结点 X 用个堆S维护X的每棵子树最远黑点距离,以及一个堆T维护 X 所在子树的每个黑点与上一层节点 f...

2019-07-04 00:05:02 202

原创 The 16th Zhejiang Provincial Collegiate Programming Contest - K Strings in the Pocket(zoj4110)

题意:两个串s,t,多少对不同的(l,r),使得翻转s[l,r]后s等于t。分析: s不等于t时,找出左右两端第一个不相等的位置a,b,首先判断翻转[a,b]后s是否等于t,接着往左右两端扫一遍判断字符是否相等。s等于t时,很容易想到就是s的回文串个数。。。。一开始没看空间限制用回文自动机一直Segmentation Fault ,改为马拉车算法即可。#include<i...

2019-04-28 14:13:10 284

原创 The 16th Zhejiang Provincial Collegiate Programming Contest - B Element Swapping(zoj4101)

求出b数组的x,y值,再与原x、y相减得 dx=(i*b[i]+j*b[j])-(i*b[j]+j*b[i])=(i-j)*(b[i]-b[j]) 同理 dy=(i-j)*(b[i]^2-b[j]^2)=dx*(b[i]+b[j]) 所以直接枚举i 将求出的 b[j]=dy/dx-b[i] 带入上面第一个式子求出 j,判断 b[j]和求出的是否一致。...

2019-04-28 13:55:10 262

原创 csuoj 2316 Joined Vessels

DescriptionJohn is doing physics practice at school. Today he is studying the law of communicating vessels. This law states that if we have a set of communicating containers with a homogeneous liquid...

2019-04-22 02:41:02 258 2

原创 poj 1236 Network of Schools

给n个学校间的有向传递关系,求最小的学校数,通过这些学校可以向所有学校传递消息,以及求最少需要加多少条有向边,使得这n个学校间两两可传递。强连通分量缩点,缩点后入度为0点的个数即所需最小数量。记a为出度为0的点的个数,b为入度为0的点的个数,max(a,b)即为所需添加的最小边数。#include<iostream>#include<stdio.h>#incl...

2019-04-02 18:09:22 247

原创 poj3294 Life Forms

题目大意:给n个字符串,求最大长度的字符串,使其在一半以上的字符串中出现过,按字典序输出后缀数组。。。二分最大长度,再按sa数组的顺序记录不同最长字符串出现的位置。代码:#include<iostream>#include<stdio.h>#include<string.h>#include<set>#include&lt...

2019-03-22 13:59:52 330

原创 poj1226 Substrings

题目大意:给n个字符串,求最长字符串长度,满足该字符串或其反转是这n个字符串的子串。后缀数组。。将这n个字符串反转后拼接,就是求n个串的最长公共子串啦。#include<iostream>#include<stdio.h>#include<string.h>#include<set>#include<vector>us...

2019-03-22 13:40:21 157

原创 UVA 760 DNA Sequencing

题目大意:给两个DNA序列,求这两个序列的最长公共子串,按字典序输出,长度N<=300可以直接用O(n^3)的暴力过。用后缀数组时间复杂度为O(nlogn)。。先遍历height数组求出最大长度,然后再扫一遍height数组,记录最长子串的起始位置。#include<iostream>#include<stdio.h>#include<stri...

2019-03-22 13:24:47 875

原创 poj3744概率dp

题目大意:n个位置为A[i]的地方有矿,当前位置为1,前进一步的概率为p,两步的概率为1-p,问能穿过矿洞的概率,n&lt;=10,A[i]&lt;=1e8题目分析:dp[i]为到达位置i的概率,则dp[i]=dp[i-1]*p+dp[i-2]*(1-p)。。数据1e8,矩阵快速幂递推。。。代码#include&lt;algorithm&gt;#include&lt;iostrea...

2019-03-13 22:45:20 143

原创 线性规划

先来篇论文线性规划与单纯形算法按列存系数矩阵T了无数发后,才知道原来二维数组按行遍历会比按列遍历快辣么多。。bzoj3112 / luogu P3337tle代码(按列遍历)#include<stdio.h>#include<iostream>#include<math.h>using namespace std;doubl...

2019-02-11 05:48:48 345

原创 codeforce1093E Intersection of Permutations 树状数组+分块

E. Intersection of Permutationstime limit per test6 secondsmemory limit per test512 megabytesinputstandard inputoutputstandard outputYou are given two permutations aa and bb, both consisting...

2018-12-17 02:34:37 345

原创 poj1741(点分治、树上点对)

题目大意:一颗树,问由多少个点对(u,v)满足dis(u,v)&lt;=k        树的点分治。。。求先求以重心为根的树中满足dis(u,v)&lt;=k的点对数,减去重心为根的所有子树中满足条件的点对数,即为路径经过重心的点对数,加起来即为答案。      每次对以重心为根的树进行dfs,子树大小减半,再以同样的方式每棵dfs子树,所以递归的深度为logn。每次查找答案都要遍历完其...

2018-11-26 00:54:08 224

原创 bzoj3261(可持久化字典树)

可持久化字典树。。没注意到可能有n+m个数据情况,re了两发。 #include&lt;iostream&gt;#include&lt;stdio.h&gt;#include&lt;string.h&gt;#include&lt;algorithm&gt;#include&lt;math.h&gt;using namespace std;int A[600010],T[160...

2018-10-28 00:03:09 152

原创 hdoj6191

题目大意:一棵树,n个结点,每个结点都有一个值,m次询问,问以u为根的子树结点中与x异或的最大值。         先跑一边dfs序,子树问题就转化成了区间问题,这样最大异或值就可通过字典树来求了,但是与我们做过的最大异或值那道题的区别在于询问有区间限制,即每次只能在[L,R]的字典树上跑。。。这时候就要用可持久化字典树了。        可持久化字典树建树的思想和主席树一样,建n棵树...

2018-10-27 23:47:54 101

原创 hdoj 3046

题目大意:给一个网格,1代表

2018-10-11 12:53:16 102

原创 bzoj1001 最小割

题目大意:有n*m个网格点,坐标为(i,j)的点与(i+1,j),(i,j+1),(i+1,j+1zu)间有权值w的无向边,表示该边可通过兔子  的最大数量,左上和右下分别为兔子起点和终点。一头狼阻只能挡一只兔子,求要阻挡兔子到达终点的最小狼数量。思路:最小割。。。。注意所开数组的大小,很容易mle和re。 #include&lt;iostream&gt;#include&lt;s...

2018-10-11 12:37:44 301

原创 zoj3963

思路分析:若前面的维护的数已按小到大排好序,每次找到左边第一个小于等于素该元的数插入,如果标记插入次数&gt;=2,                  则从中删除。用set或权值线段树维护即可。!!!!nlog(n)的算法TLE了很多发,加上各种读优化仍旧TLE,懵逼逼。。。不知羞耻地上网看了别人的代码,发现T在了 memset 上面,把 sizeof()改为  4*n+4就过了。。。...

2018-08-31 01:11:55 188

原创 两道莫队板题

bzoj2038(小z的袜子)     2038: [2009国家集训队]小Z的袜子(hose)Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 16088  Solved: 7305[Submit][Status][Discuss]Description作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一...

2018-08-21 01:53:15 138

原创 hdoj4391(区间染色)

题目大意:一个长度为n的颜色序列,有两种操作,将区间[l,r] 染色为z和询问区间[l,r]内颜色为z的个数。思路分析:n,m&lt;=100000,z&lt;2^31。分块+map,区间染色用一个类似线段树的lazy标记记录,每次暴力两端。                 同时注意l,r是否在同一块内。代码: #include&lt;iostream&gt;#includ...

2018-08-21 01:36:08 473

原创 uva11235 frequent values (区间最大出现频数)

题目大意:长度为n的非递减序列(ai&lt;=aj,i&lt;j),m次询问,询问[l,r]间出现次数最多的数所对应的次数(n,m&lt;=100000)思路分析:一开始用莫队+set的算法,但复杂度为m*sqrt(n)*log(n),果断给T掉了。。。。由于序列为非递减的,相同                  的元素会连续出现,即每次询问为最长相同元素子序列的长度。可用线段树维护最长连...

2018-08-21 01:04:20 201

原创 hihocoder1195

题目大意:商店里有n种商品,有m种购买组合及每种的的总价,求每种商品的单价,判断多解,无解情况。分析: 高斯消元求解线性方程组。。。。代码:#include&lt;iostream&gt;#include&lt;stdio.h&gt;#include&lt;math.h&gt;using namespace std;double A[1010][1010];const do...

2018-08-17 09:23:22 150

原创 csuoj 1592 (区间dp)

Description现在有n堆石子,第i堆有ai个石子。现在要把这些石子合并成一堆,每次只能合并相邻两个,每次合并的代价是两堆石子的总石子数。求合并所有石子的最小代价。 Input第一行包含一个整数T(T&lt;=50),表示数据组数。每组数据第一行包含一个整数n(2&lt;=n&lt;=100),表示石子的堆数。第二行包含n个正整数ai(ai&lt;=100),表示每堆石子...

2018-08-04 08:48:19 183

原创 BZOJ1036 树的计数(树链剖分模板)

题目大意:一棵树,3种操作:将结点a的值改为b,查询a到b路径间最大结点权值,查询a到b间结点权值总和分析:树剖模板。。。将树链分段映射到线段树上统计维护最大值和总和。 代码#include&lt;iostream&gt;#include&lt;stdio.h&gt;#include&lt;string.h&gt;#include&lt;vector&gt;#includ...

2018-07-28 01:29:47 135

原创 hdoj 2586(倍增LCA模板)

题目大意:n结点的树,输出任意两个结点间的最小距离思路分析:求两个点的LCA,最小距离即deep[a]+deep[b]-2*deep[lca]#include&lt;iostream&gt;#include&lt;stdio.h&gt;#include&lt;string.h&gt;using namespace std;const int N=100010;int h[N],...

2018-07-28 01:17:06 683

原创 hdoj3078 (暴力lca)

题目大意:n结点树 ,两种操作,将结点a的值改为b,或询问a到b的路径间第k大点的值(包括a,b),操作总数为m,                  n&lt;80000, m&lt;30000分析:逐个往上记录,排序求第k大,又是暴力过的。。额。惊了#include&lt;iostream&gt;#include&lt;stdio.h&gt;#include&lt;vector...

2018-07-28 01:09:51 254

原创 HDOJ 6162 (暴力lca)

逐个逐个往上爬判断是否在范围内,暴力居然过了。。额#include&lt;iostream&gt;#include&lt;stdio.h&gt;#include&lt;vector&gt;#include&lt;algorithm&gt;#include&lt;math.h&gt;using namespace std;vector&lt;int&gt;g[100010];in...

2018-07-28 01:00:50 153

原创 hdoj6318

     比赛时摸了半天,不知道什么时候取得最小值,后来发现如果y&lt;x,则不断通过交换相邻的两个逆序数,就能取得最小值,而总的交换次数刚好为逆序数对的个数。。所以直接求逆序数对数判断x,y就好了 线段树      #include&lt;iostream&gt;#include&lt;stdio.h&gt;#include&lt;string.h&gt;#includ...

2018-07-25 21:51:01 142

空空如也

空空如也

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

TA关注的人

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