自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hermit_Inwind的博客

让时间来验证

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

原创 HDU6070 二分 线段树

大致题意:给定一个长度为n的序列,求size(l, r)/(r-l+1)最小,其中l,r指定区间, size(l, r)表示区间L到R中不同数的个数。二分答案,下界为0,上界为1。对于mid我们check是否存在一组(l, r) 使size(l, r)/(r-l+1)#include#define lson node>1#define rson node>1)+1,

2017-08-04 14:26:45 329

原创 Codeforces 387E 树状数组

http://codeforces.com/problemset/problem/387/E记录每个数的下标,对数从小到大考虑。如果该数需要保留,那么就往set中插入该数的下标。否则可以查询出当前数左边和右边第一个比它小的数的下标,可以统计这个区间中已经删掉的数的数量,就可以计算出当前数的贡献。#includeusing namespace std;const int

2017-08-02 15:59:53 347

原创 ZOJ3430 AC自动机

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3430先把base64编码转化为正常编码,然后AC自动机匹配参考了http://blog.csdn.net/gatevin/article/details/41214249的代码风格,感觉这个AC自动机比自己之前的好上不少#include

2017-08-02 13:47:41 361

原创 POJ 3683 2-SAT 输出可行方案

http://poj.org/problem?id=36831,根据矛盾建边2,tarjan求scc判断可行性3,根据scc缩点建反向边4,拓扑排序,按顺序输出选择情况#include#include#include#include#include#includeusing namespace std;const int maxn = 2005

2017-08-01 18:34:36 381

原创 ZOJ 1729

字符串最小表示 模板#includeusing namespace std;const int maxn = 1e5+10;int MinRepresentation(const char *s, int len){ int i, j, k; i = k = 0; j = 1; while(i < len && j < len){ k

2017-07-26 20:13:02 325

原创 ZOJ2006 字符串最小表示

http://blog.csdn.net/zy691357966/article/details/39854359字符串最小表示 相关证明与模板字符串最小表示入门模板题#includeusing namespace std;const int maxn = 1e4+10;int Min(const char *str, int len){ int i,

2017-07-26 19:54:50 307

原创 虚树学习 codeforces613D

第一次接触虚树参考博客学习 http://blog.csdn.net/braketbn/article/details/50887470虚树是根据需要查询的点以及他们的lca重新构建的一颗树,链之间的信息整合压缩后保存在新的边上。然后这道题就是根据关键点和它们的lca构建虚树,然后做树上DP。针对当前访问的点是否为关键点进行分类处理。如果是关键点,如果其儿子节点的子树中存在

2017-07-26 18:46:47 295

原创 CF501B STL

有n个修改操作,一些人会把原本的handle做修改,最后问有哪些handle被修改并输出这些handle的最终版本用map记录修改映射,vector记录最初的handle#include#define PB push_backusing namespace std;map mp;vector vec;int main(){ int n; string

2017-07-15 19:47:14 331

原创 HDU4751 二分图判断

http://acm.hdu.edu.cn/showproblem.php?pid=4751建图,染色判断是否为二分图#includeusing namespace std;const int maxn = 105;const int maxm = 2e4+100;struct Edge{ int to, nx;}e[maxm];int head[maxn]

2017-07-10 19:39:38 311

原创 最小度限制生成树 POJ1639

今天了解了一下最小度限制生成树。这个问题的本质依旧是生成树,但是对于某个点的度给定限制。也就是连到该点上的边不能超过限制的数量limit。具体的解决过程和相关的证明可以看一下《最小生成树问题的扩展》这篇论文。这里简单讲一下解决问题的流程也方便我之后来复习。1,用除去和有限制的点相连的以外的边做最小生成树。这个时候可能不能保证所有点都连通,那么可能会出现几个连通块。如果连通块的数量超过了限制

2017-07-10 19:18:27 538

原创 Codeforces 314B

题目链接:http://codeforces.com/problemset/problem/314/B若一个字符串A删掉一些字符后能得到另一个字符串B,我们称B能从A中获得。问从一个重复b次的字符串a中能最多获得几个重复d次的字符串c先处理出一个从字符串c任意一个点开始能从一个字符串a中获得的满足要求的最长长度。然后就可以求出可以获取的字符串的最长长度,然后除以d*len(

2017-07-07 11:17:25 329

原创 CF697D 树形DP

题目链接:http://codeforces.com/contest/697/problem/D给出一颗树的描述,从根节点开始,以DFS序遍历。每次随机走向当前节点的儿子节点,没有子节点的时候就回溯。问遍历到树中每个点的期望步数。考虑某一层DFS,假设我们已经求出该层根节点Root的答案ans[Root]。求该层x节点的答案。对于其他的节点有1/2的概率会排在该节点前面,对ans[

2017-07-07 11:00:44 549

原创 POJ1679

题目链接:http://poj.org/problem?id=1679问给出的图中的最小生成树是否唯一。我们求次小生成树,如果两个生成树的权值和相等,说明最小生成树不唯一。这里我使用了kruskal,遍历最小生成树中的边,删除后重新求最小生成树,来确定次小生成树。#include#include#include#includeusing namespace

2017-07-03 20:00:29 316

原创 POJ1236 Tarjan求强连通分量

题目链接:http://poj.org/problem?id=1236题目大意:有一个有向图,图中两点之间若有一条有向边代表一份软件可以从弧尾发送到弧头。题目分两个小问,第一个问题事发送软件到图中的某些点,问最少发送多少个点可以使这份软件可以到达图中的任何一个点第二小问问,最少向图中添加几条边可以使发送软件到图中任意一个点就可以使该软件到达图中的所有点。思路:求强联

2017-07-03 19:21:45 262

原创 记录一下zkw线段树

今天重新学习了一下ZKW线段树,非递归版的线段树。学完之后就是突出一个美丽新世界。     在这里用敌兵布阵测试,并记录一下方便以后复习。     #includeusing namespace std;const int maxn = 50005;int n, N;int arr[maxn];int Sum[maxn<<2];void build(int n){

2017-07-03 19:04:56 216

原创 HDU4009 最小树形图 有向最小生成树

http://acm.hdu.edu.cn/showproblem.php?pid=4009边为有向边的最小生成树,用到朱-刘算法。用以下几个步骤解决这个问题:1, 检验图的连通性 可用DFS,或者考察每个节点的最短入边长度是否小于设定的INF来实现2, 将当前图的每个点的最短入边计入答案3, 检查图中是否存在环,如果不存在直接返回答案,若存在环,就需要将环缩为一个点,然后重新

2017-07-02 21:04:58 278

原创 HDU1166敌兵布阵 分块解法,分块练习

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1166线段树,树状数组的模板题。用来入门分块。#includeusing namespace std;const int N = 5e4+10;int block;int n;int arr[N], sum[N];void update(int pos, int va

2017-07-02 20:51:05 308

原创 codeforces 798C 数学

题目链接大致题意是给出一个序列,有一种操作对序列中的数Vi 能够将Vi变为Vi-Vi+1,将Vi+1变为Vi+Vi+1。问最少进行多少次操作可以使序列的gcd大于1。显然对于序列初始的gcd>1的,结果为0对于初始gcd=1的情况需要做一些推导和证明。对一次操作后新的gcd值d显然可以整除Vi-Vi+1和Vi+Vi+1.。那么可以知道d可以整除(Vi-Vi+1+Vi

2017-04-22 11:19:27 366

原创 HDU4085 斯坦纳树

http://acm.hdu.edu.cn/showproblem.php?pid=4085   新学习了斯坦纳树,记录一下。   我是从http://endlesscount.blog.163.com/blog/static/821197872012525113427573/学习的斯坦纳树   斯坦纳树用于解决保证指定节点连接的情况下,求边权总和最小的问题。算是用最短

2017-04-08 13:51:10 367

原创 HDU5726

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5726ST预处理区间GCD,由唯一分解定理可知,任意起点开始的区间GCD值最多只有logN个,所以可以枚举起点,依靠ST二分求gcd变化的位置求出某起点开始的区间GCD为某值的区间个数,然后用map映射。#include#include#include#include#include

2016-07-27 08:46:30 650 1

原创 HDU1671 字典树

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1671大致题意:T组询问,每组给出n个号码,如果该组中出现以其他串为前缀的串就输出“NO",否则输出”YES"。思路:字典树模板#include#include#includeusing namespace std;char str[10005];int n;st

2016-07-19 19:53:28 289

原创 POJ2001 字典树

题目链接:http://poj.org/problem?id=2001大致题意:给出若干行单词,最后给每个单词求出最短的且唯一的前缀。其中,单词本身作为前缀的,它的最短独立前缀为自己本身。思路:字典树模板题,字典树节点元素中存储以从根节点到该节点处的串为前缀的字符串的数量,然后查找的时候查找到前缀为1或者查完单词的时候所查询到的串即为该单词所求的最短独立前缀。#include

2016-07-19 19:42:20 373

原创 Codeforces #179(Div 2)C Greg and Array

题目链接:http://codeforces.com/contest/296/problem/C题意: 一个序列中有n个数,有m个操作,每个操作将从a到b的数加上d,接下来有k对数,每对由a,b组成,代表把从a到b的操作都执行一次。问将k对数代表的操作全部执行完后序列中的数各是多少。思路:初看觉得应该用线段树区间更新实现,但是要写两棵树,有些麻烦。但是对于每个操作只需要记录这个操作

2016-07-11 10:48:09 392

原创 POJ1417 True Liars (并查集+背包)

题目链接:http://poj.org/problem?id=1417大致题意:有两类人,好人和坏人,好人只会说真话,坏人只会说假话,有k组询问,p1个好人,p2个坏人。每组向a询问b是否为好人,得到答复yes或no。问通过已知询问是否能够判断出所有的好人。若不能输出"no",可以则输出代表好人的编号。在看了博客文章之后才有比较清晰的思路,感觉自己对综合性稍强的题目就已经没

2016-07-09 18:35:56 603

原创 HDU3410 Passing the Message (单调队列,线段树可解)

Passing the MessageTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 534    Accepted Submission(s): 333Problem DescriptionWhat a s

2016-07-06 16:43:26 419

原创 HDU2852 KiKi's K-Number (线段树求数列K大)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2852大致题意:有三种操作:第一种:向容器中加入数字A。 第二种:从容器中删除数字A,若容器中不存在该数则输出"No Elment!"第三种:输入A,K;求容器中比A大的数中的第K个数,若不存在则输出"Not Find!"

2016-07-05 20:55:31 361

原创 2016广东工业大学网络赛 B

Problem B: Sward Art OnlineDescription    Krito为了打败第一层的boss - The eye of giant.SAO系统种一个人物可以装备4个物品,分别是左手武器,右手武器,首饰,盔甲,这些都可以增加一定的攻击力。注意每一种装备只能在所属的装备槽,双手武器会同时占用左手武器和右手武器的位置。还有有些首饰和特定的盔甲搭配可以

2016-04-12 21:53:07 606

原创 Vim与系统剪贴板交互方法

Vim是一款十分强大的文本编辑器(程序编辑器?),但是我们无论是编辑文本还是编写程序都是需要文本能进入系统剪贴板并希望系统剪贴板中的内容能够粘贴到Vim中。这个时候我们需要用到“+y命令(在normal模式下直接从键盘输入,不需要:)。如果Vim支持访问+积存器,那么选定内容将会复制到系统寄存器。使用:reg命令可以查看寄存器存放内容。如果:reg命令后没有查看到+/*寄存器。那么需要su

2016-04-11 12:28:57 2212 2

原创 点对间的最短路 Floyd-Warshall

最近把Floyd算法看了几遍以后算是明白了一些。感觉Floyd算法本质上是DP,自底向上求出任意点对间的最短路。使用DP[k][i][j]表示中间点可能为0~k的i到j的最短路。然后对k进行考察。一种情况是k存在于i到j的最短路径上,i~k~j。另一种则是k不在i到j的最短路径上。转移方程为DP[k][i][j]=min(DP[k][i][j],DP[k-1][i][k]+DP[k-1][k][j

2016-02-13 23:06:28 353

原创 POJ 1860 Currency Exchange

DescriptionSeveral currencyexchange points are working in our city. Let us suppose that each pointspecializes in two particular currencies and performs exchange operations onlywith these currencies.

2016-02-05 21:50:07 272

原创 算法学习:尺取法

昨天看了一下挑战程序设计竞赛,看到了尺取法,刚好博主最近写到的一道题也可以使用尺取法。与原本的暴力求解对比,这种方法耗时为O(n)。有些想法,现在写出来加深印象,有不足之处望大牛们指正。尺取法指对一个数组保存一对下标(起点和终点),依照需要交替移动两下标,按此扫描数组,直到找到答案。能够在线性时间内解决一类问题。这样对一个数组上的求解问题可以从一般的O(n^2)降低为O(n)。

2016-02-03 18:03:25 640

原创 POJ2488 A Knight's Journey

DescriptionBackground The knight is getting bored of seeing the same black and white squares againand again and has decided to make a journeyaround the world. Whenever a knight moves, it is tw

2016-01-31 15:34:56 269

原创 Edmonds-Karp算法,网络流最大流

网络流是一种生活中常见的图模型,包含一个起始点,和一个汇点,以及若干结点,用有向边连接,每条边的权值代表能流经该边的最大流量。生活中,水流网络,电流网络,信息网络这些问题都能描述成网络流。网络流中一种常见的问题是最大流问题。即求从起始点到达汇点流的最大值。在《算法导论》介绍了Edmonds-Karp算法,该算法运行时间在图G=(V,E)上为O(VE),基于BFS实现。实现过程是从残存网络中找到

2016-01-30 15:27:43 1057

原创 C#与C/C++部分基础语法差异

博主最近在学习C#,以前摸过C和C++在学习C#基础语法时可以快速的略过,但是C#的基础语法和C和C++还是有差异,有的甚至是完全不同的,我在这里写出来打算加强自己的记忆与理解,同时希望能对其他准备开始学习C#的朋友有帮助。输入,类型转换C或者C++中使用scanf,cin输入,不再赘述。C#中使用Console.ReadLine(); 将会读入一串字符串,以换行符结尾。然

2016-01-24 23:10:41 2931

原创 HDU 1709 The Balance

DescriptionNow you are asked to measure a dose of medicine with a balance and a number of weights. Certainly it is not always achievable. So you should find out the qualities which cannot be measure

2016-01-23 14:32:10 303

原创 算法学习_红黑树

二叉搜索树由于其随机构造的特点,可能会出现构造出来的搜索树效率十分低。算法学习--二叉搜索树:http://blog.csdn.net/hermit_inwind/article/details/50545703红黑树是多种平衡二叉搜索树中的一种,一颗含有n个结点的红黑树其高度接近O(lgn);由于二叉搜索树上的动态集合操作耗时与其高度有关,所以,我们可以知道,红黑树上动态集合操作平均

2016-01-22 23:54:29 397

原创 算法学习--二叉搜索树

二叉搜索树支持动态数据操作,二叉搜索树结构可用于字典,也可以用来实现优先队列。二叉搜索树结构建立在二叉树上,可以用链表结构来实现。每个结点包含的信息有left该结点的左子结点,right该结点的右子结点,parent该结点的双亲结点,key查询关键字。如果有需要可以包含data,某种具体的数据。因为使用到链式结构,所以需要使用到malloc,或者是new函数。在后面的代码中博主使用malloc函数

2016-01-20 00:21:12 394

原创 CODEFORCES #339 div2 C

C. Peter and Snow BlowerPeter got a new snow blower as a New Year present. Of course, Peter decided to try it immediately. After reading the instructions he realized that it does not work like regul

2016-01-17 00:59:17 368

原创 CODEFORCES #339 div2 A

A. Link/Cut TreeProgrammer Rostislav got seriously interested in the Link/Cut Tree data structure, which is based on Splay trees. Specifically, he is now studying the expose procedure.Unfortunatel

2016-01-15 21:33:06 414

原创 HDU 2062 Subset sequence

题目描述:DescriptionConsider the aggregate An= { 1, 2, …, n }. For example, A1={1}, A3={1,2,3}. A subset sequence is defined as a array of a non-empty subset. Sort all the subset sequece of An in lexi

2016-01-03 00:58:57 1297

空空如也

空空如也

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

TA关注的人

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