自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HARD_UNDERSTAND

???

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

原创 hihocoder 1391 : Countries 北京网络赛(树状数组+离散化)

题目:http://www.hihocoder.com/problemset/problem/1391?sid=895605 官方题解: 分析: 我们可以预处理出导弹到达A的每个时间段,这样问题就转化成了求[x,x+TA]覆盖最大的时间段相应的代价和,这个范围内的导弹是可以防御住的,那么剩下的就是无法防御的。 所以用树状数组求解,时间的数据范围有点大,离散化一下即可。代码:using na

2016-09-27 23:15:50 477

原创 hdu 1890 Robotic Sort (Splay区间翻转)

普通的平衡树操作还是Treap更加简单点,但是Splay强大的一个地方就是对区间的操作,可以做一下线段树搞不定的东西~~题目:http://acm.hdu.edu.cn/showproblem.php?pid=1890 题意: 区间翻转,使得所给序列有序,问所需要的翻转长度的和?分析: 我们每次可以先将“最小”的点旋转到根,那么根左边的区间自然就是要翻转的区间了,于是我们对根左边的区间打

2016-09-27 14:57:18 408

原创 bzoj 3224: Tyvj 1728 普通平衡树 (Splay模板)

题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3224 题意: 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 1. 插入x数 2. 删除x数(若有多个相同的数,因只删除一个) 3. 查询x数的排名(若有多个相同的数,因输出最小的排名) 4. 查询排名为x的数 5. 求x的前驱(

2016-09-26 23:02:51 322

原创 bzoj 1503 郁闷的出纳员 Splay入门

题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1503 题意: 写一种数据结构,支持以下几种操作: I 命令 新建一个工资档案,初始工资为 k。 如果某员工的初始工资低于工资下界,他将立刻离开公司。 A 命令 把每位员工的工资加上 k S 命令 把每位员工的工资扣除 k F 命令 查询第 k 多的工资分析:

2016-09-26 22:48:33 289

原创 bzoj 1208 宠物收养所 Splay入门

Splay伸展树,十分强大的数据结构,学习了好几天,可是做题还是很难独立敲出来QAQ 感谢:http://blog.csdn.net/crazy_ac/article/details/8034264 此篇文章的作者,代码风格我感觉灰常好! 等我熟练掌握了,我也写篇总结~~题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1208 题意:

2016-09-26 22:13:35 547

原创 hdu 5884 Sort(单调队列,青岛网络赛)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5884 题意: 给出一个数列,每次可以选k个数合并,代价是这k个数的和,最后合并成一个数以后要求总代价不大于m,问最小的k是多少?分析: 二分答案,然后判断k是否可以。 怎么取才能最优呢?显然是大的数越往后取越优,因为这样才能加的次数少啊! 因为每次都会减少k-1个,一共减少了n-1个

2016-09-21 21:09:30 327

原创 hdu 5883 (欧拉路,青岛网络赛)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5883 题意: n个湖泊,m个河流连着,要从一个湖泊出发,经过所有河流,没经过一个湖泊就有异或上ai,问异或和最大是多少?如果不能走完所有河流,输出Impossible。分析: 显然是欧拉路问题,如果能完成,那么肯定是欧拉路,先判断连通。如果连通并且所有点的度都是偶数,那么就可以构成欧拉回路。如果

2016-09-21 20:57:01 390

原创 Treap入门题

Treap可以说是最简单的平衡树了,核心是利用随机数,使得二叉排序树的各种操作复杂度平均为O(lgn),写起来也是相当简单。 主要功能有:Struct Tree{  int key, size, fa, son[2];}void Rotate(int x, int p); //0左旋 1右旋void Insert(int x,int key) //插入key void Remove(int x

2016-09-21 12:24:19 730

原创 hdu 5900 QSC and Master(区间dp 沈阳网络赛)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5900 题意: 给出n对数keyi,vali表示当前这对数的键值和权值,可以操作将连续的两个数合并,如果满足gcd(a[i],a[i+1])>1,得到的价值是两个数的权值和,每次合并两个数之后,这两个数就会消失,然后旁边的数会接上分析: 1:处理出任意区间内的所有数是否可以合并,对于当前的[l,r

2016-09-19 19:29:20 284

原创 hdu 5898 odd-even number (数位dp 沈阳网络赛)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5898 题意: 求l到r的数里面,有多少数符合奇数连续的数位长度是偶数,偶数连续的数位长度是奇数。 分析: 裸的数位dp代码:#include<bits/stdc++.h>using namespace std;const int N=30;typedef unsigned long lo

2016-09-19 19:14:23 400

原创 hdu 5894 分位置(组合数学,沈阳网络赛)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5894 题意: 现在 m个考生人需要坐在有n个座位的圆桌上。你需要安排位置,使得任意两个考生之间相距至少k个位置。桌子有编号,考生a和b交换位置视作一种方案,问有多少方案,mod 1e9+7。(0 < m < n < 1e6, 0 < k < 1000)分析: 这题队友过的,补一下~ 现在先

2016-09-19 19:00:13 1753 4

原创 URAL 1018 二叉苹果树(简单树形dp)

题目:http://acm.timus.ru/problem.aspx?space=1&num=1018 题意: 有一棵苹果树,苹果树的是一棵二叉树,共N个节点,树节点编号为1~N,编号为1的节点为树根,边可理解为树的分枝,每个分支都长着若干个苹果,现在要要求减去若干个分支,保留M个分支,要求这M个分支的苹果数量最多。分析: 简单的树形dp: d[u][q]表示以u为根的子树保留q

2016-09-17 10:29:10 993

原创 UVALive 3565 Bit Compressor (搜索)

题目:https://vjudge.net/contest/132370#problem/A 题意: 压缩01序列,压缩方法数是把连续的的1序列用二进制表示(前提是可以缩短原串的长度),给出压缩后的序列,和压缩前序列的长度和1的个数。问如果有多种压缩方法输出NOT UNIQUE,没有一种方法输出NO,有唯一一种输出YES。分析: 很好的一道搜索题目,这题细节很多,需要注意的是对10和11

2016-09-17 10:05:51 824 1

原创 UVa 10054 项链(欧拉回路)

题意: 给你n个珠子,一个珠子分为两半有两种颜色,用1到50来表示50种不同的颜色。把这些珠子串起来,两个紧挨着的珠子要满足一个条件就是接触的那部分颜色要相同 例如(1,2)(2,4),两个珠子的接触部分颜色相同都为2。当然,因为珠子最后是连成环的,第一个珠子和最后一个珠子也会接触,也要买满足这个条件 先输入T,有T组数据 输入n,有n个珠子 下面n行每行两个数字表示这个

2016-09-17 09:34:04 402

原创 ural 1032 Find a Multiple (鸽巢原理)

题目:http://acm.timus.ru/problem.aspx?space=1&num=1032 题意: 给出N个数,要求从这N个数中选出一些数,使得这些数的和是N的倍数,如果能够找到这样的组合,则输出选出的数的个数和这些数,否则输出0分析: 作为一个数论渣,如此水题也想了好久QAQ。 N个数,前缀和%N,必定有两个数相等,那么这两个数之间的数的和就是N的倍数。代码:co

2016-09-15 10:23:36 370

原创 poj 3373 数论常识(数位dp)

题目:http://poj.org/problem?id=3373 题意: 给出2个整数n(n<10^100)和k(k<10000),求满足以下条件的整数m 1、m与n位数相同 2、m能被k整除 3、满足以上两点时,m和n在相同位置的地方,数字不同的个数最少 4、满足以上三点时,m值最小分析: 这题很容易想到怎么做: dp[i][j][num]表示前i

2016-09-15 09:57:17 312

原创 sgu 499. Greatest Greatest Common Divisor(枚举因子)

题目:http://acm.sgu.ru/problem.php?contest=0&problem=499 题意: 给出n(1e6)个数,求其中一对的最大公因数。分析: 这题挺简单的,但是想了好久,刚开始想分解质因数,然后找公共质因数积最大的两个数。但是不好搞。想了好久,突然想到可以枚举因子啊!然后顺利1A。还是思维有点迟钝QAQ,应该可以更快想出来的。代码:const int N

2016-09-15 09:28:13 531

原创 sgu 298 差分约束(特定解)

题目:http://acm.sgu.ru/problem.php?contest=0&problem=298 题意: 给定n个点m条约束。 下面输出 u v x 表示: dis[u] - dis[v] >= x 然后建图就是 u->v 边权为-x 输出一个解满足 -10000<= dis[i] <= 10000。 若有多解输出一个 dis[n] - dis[1]

2016-09-13 15:31:54 283

原创 hdu 5869 区间内不同的GCD数(离线+树状数组)

题目:http://acm.split.hdu.edu.cn/showproblem.php?pid=5869 题意: 给定n个数的序列,有q个询问,每次询问一个区间中所有子区间所形成不同的gcd的数量。分析: 这个题的本质和HDU 3333是一样的,HDU 3333要求计算区间内不同的数字有几个。 这题稍微变了一下,相当于原来扫描到i的之后是更新a[i]的情况,现在是更新log级

2016-09-13 15:04:25 719

原创 hdu 3333 离线+树状数组

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3333 题意: 求一个区间内不重复数字的和,例如1 1 1 3,区间[1,4]的和为4。分析: 我们考虑每个查询[l,r],现在要求的是这个区间里不通数的和,所以我们在从左扫到右的过程中,可以用一个数据结构保存已经得到的不同的数,到右端点后,然后对区间里不同的数求和,这样就可以得到答案了。

2016-09-13 14:53:29 322

原创 hdu 5875 Function(二分RMQ)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5875 题意: 给一个区间L和R,求a[L]%a[L+1]%a[L+2]…%a[R]。分析: ai如果模一个比他大的数,那么不会变,只有模比他小的数才会改变。 所以我们考虑ai的时候,直接找到比他小的那个数取模即可,这样数会逐渐变小。 所以用rmq预处理一下,然后二分找比ai小的第一个

2016-09-12 23:02:11 269

原创 ural 1325 Dirt(bfs最短路+优先队列)

题目:http://acm.timus.ru/problem.aspx?space=1&num=1325题意: 给定N×M的矩阵,给定起点和终点。其中矩阵中,0表示墙,1表示可以走的点,2表示脏的点。每次从1走到2或者从2走到1都需要换一次鞋。每次走为八方向。求从起点到终点的换鞋次数最少的最短路是多少。输出最少换鞋次数和最短路。思路: 直接BFS,每次记录到点(x,y)的路径和换鞋次数。由

2016-09-12 15:37:59 341

原创 ural 1306 (heap推排序)

题目:http://acm.timus.ru/problem.aspx?space=1&num=1306 题意: 找一个数列的中位数。分析: 这题纯粹是卡内存的题~~,我先是用优先队列,然后MLE了0.0 然后用STL的heap就水过了~代码:#include <cstdio>#include <iostream>#include <vector>#include <algorithm

2016-09-12 10:52:12 260

原创 ural 1542 字典树(思维)

题目:http://acm.timus.ru/problem.aspx?space=1&num=1542 题意: 给出n个单词和各自出现的频率,然后给出m个某些单词的开头,要求找出频率最高不超过10个的以这些字符串开头的单词。分析: 显然是字典树的题目,如果把单词建字典树,然后对于每个开头字符串,都查询一遍字典树,显然会超时。 所以逆向思考一下,把开头字符串建立字典树,然后查询每个

2016-09-12 10:47:52 268

原创 hdu 5876(补图求最短路)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5876 题意: 给你n个点,m条无向边,让你求其无向完全图的补图的单源最短路。分析: 第一反应是把补图找出来,然后跑一下单源最短路就行了~~ 然而补图并不容易找,仔细想想,在原图上直接跑最短路是可行的,扩展结点的时候,把还没访问的点并且与当前点不连接的点就是与当前结点再补图中相连的点,并且是

2016-09-12 08:43:40 357

原创 hdu 5877 离散化+树状数组 (2016大连网赛)

题目:http://acm.split.hdu.edu.cn/showproblem.php?pid=5877 题意: n个节点的有根树,u是v的祖先,每个节点有个权值a[u].求 a[u] * a[v] <= k的有序对的数量。 分析: 这题一开始想到先求一下dfs序,然后把dfs序排列,二分找到每个结点的位置,然后在先前遍历找符合要求 的点,时间复杂度O(n^2),显然会超时~~

2016-09-11 10:56:30 259

原创 UVALive5052 Genome Evolution(想法题)

题意: 给你两个1~n的排列A和B,统计A,B有多少个子集是相等,序列要求连续的,长度要大于1。分析: 记录一下B序列的各个整数的位置,然后在从A开始统计,因为他是集合关系的相等,所以要求长度相同,元素相同,接着枚举长度的同时,又因为我们要求的序列是连续的,所以我们找出位置的最大和最小的位置,然后他们的长度如果和我们枚举的长度相等的话,那么这个显然就是正确的了#include <cstd

2016-09-09 20:59:24 223

原创 UVaLive4356 Fire-Control System (扫描法)

题意: 有n个点在平面直接坐标线,给出了n个点坐标,然后问以(0,0)为圆心的扇形包含至少k个点最小面积。分析: 贪心,先把所有点按与x轴正半轴的角度排序,然后选出一个点当半径,枚举剩下点(半径小于第一个点),更新最小面积值。 再求面积的时候,因为要保证扇形区域内有k个点,所以在把所有符合要求的半径的点选出来之后,每次选则一个有k个点的区间范围角度,然后根据这个角度求面积: S

2016-09-09 20:42:02 307

原创 UVa108 UVa10827 最大连续子矩阵和

UVa 108 题意: 求最大连续子矩阵和 分析: 类似于一维求前缀和一样,用sum[i][j]求一下以(i,j)为右下角端点的矩形的和,然后枚举矩阵的y轴的上下边界,然后扫一遍x轴,找到最小的前缀子矩形,然后当前矩形和sum[i][k] - sum[j][k]减去最小的就是最大的。const int N = 100 + 9;int a[N][N], sum[N][N], r[N], n

2016-09-09 16:02:41 275

原创 poj 1275 差分约束系统

题目:http://poj.org/problem?id=1275 题意: Tehran的一家每天24小时营业的超市,需要一批出纳员来满足它的需要。超市经理雇佣你来帮他解决他的问题——超市在每天的不同时段需要不同数目的出纳员(例如:午夜时只需一小批,而下午则需要很多)来为顾客提供优质服务。他希望雇佣最少数目的出纳员。 经理已经提供你一天的每一小时需要出纳员的最少数量——R(0), R(1)

2016-09-08 19:48:22 261

原创 差分约束系统入门

这篇主要给出几道题目,不了解差分约束系统的可以看一下我转载的这篇:差分约束系统详解简介简单说一下差分约束系统,顾名思义,差分约束就是给出一些条件,要求在满足这些条件的前提下,系统的可行解。当然约束的形式大多数是不等式,然后再满足给定不等式的前提下,系统是否存在可行解。但是如何在满足不等式的条件下去寻找可行解(或者判断是否有可行解)呢?这时最短路挺身而出了!为何最短路可以解决这类题呢? 来看一下不等

2016-09-08 19:36:24 319

转载 差分约束系统详解

差分约束系统X1 - X2 X1 - X5 X2 - X5 X3 - X1 X4 - X1 X4 - X3 X5 - X3 X5 - X4 不等式组(1)     全都是两个未知数的差小于等于某个常数(大于等于也可以,因为左右乘以-1就可以化成小于等于)。这样的不等式组就称作差分约束系统。    这个不等式组要么无解,要么就有无数组解。因为如果有一组解{

2016-09-07 21:52:50 2194

原创 poj 3007 哈希

题目:http://poj.org/problem?id=3007 题意: 给定一个字符串,从任意位置把它切为两半,得到两条子串 定义 子串1为s1,子串2为s2,子串1的反串为s3,子串2的反串为s4 现在从s1 s2 s3 s4中任意取出两个串组合,问有多少种不同的组合方法分析: 发现字符串长度最多为72,刚开始用的string+substr+reverse构造新子串,直

2016-09-07 17:55:22 228

原创 SGU 153 Playing with matches (博弈,循环节)

题目:http://acm.hust.edu.cn/vjudge/problem/22539 题意: 有N(1e9)根火柴,m个数p1,p2,p3,..pm(m<=8,pi<=9),每个人可以轮流取1根或者pi根火柴,问先取的还是后取的有必胜策略。分析: 首先如果火柴数目少的话,那么求sg函数即可。但是N太大了。所以我先打了一个表,发现sg函数是循环的,自己造了几组数据也是循环的,所以这

2016-09-06 12:13:15 372

原创 URAL 1095 Nikifor 3 (注意读题)

题目:http://acm.timus.ru/problem.aspx?space=1&num=1095 题意: 给你N个正整数,它们都含有数码1、2、3、4,不超过20位,要求你调整每个正整数中数字的顺序,使它能被7整除。分析: 做这题的时候没看清题意,没看到都含有1,2,3,4,用的记忆化搜所~~当然T了。 如果每个数都有1,2,3,4,可以把1,2,3,4的全排列,计算一下,

2016-09-06 12:02:42 272

原创 SGU 141 Jumping Joe(扩展欧几里得)

题目: Description 给出x1,x2,p,k,求一组非负整数解(p1,n1,p2,n2)满足: p1+n1+p2+n2=k,(p1-n1)*x1+(p2-n2)*x2=p Input 四个整数x1,x2,p,k(0< x1,x2< 40000,-40000< p< 40000,0<=k< 200000000) Output 如果存在一组非负整数解则输

2016-09-06 11:15:13 288

原创 UVa 11584 划分回文串( 简单dp )

题意: 给一个字符串, 要求把它分割成若干个子串,使得每个子串都是回文串。问最少可以分割成多少个。分析: d[i]表示以i结尾的串最少可以分割的串数。 d[i] = min{ d[j]+1, 串[j,i]是回文串&&1<=j<=i } 这题还是很简单的,不过值得学习的地方是预处理[i,j]是否为回文串那部分,代码给出了两种预处理方法。代码:#include<iostream>

2016-09-05 10:40:02 367

原创 LA 4731 蜂窝网络(简单dp+贪心)

题意: 手机在蜂窝网络中的定位是一个基本问题,假设蜂窝网络已经得知手机处于c1,c2,,,cn这些区域中的一个,最简单的方法是同时在这些区域中寻找手机,但这样做很浪费带宽,由于蜂窝网络中可以得知手机在这不同区域中的概率,因此一个折中的办法就是把这些区域分成w组,然后依次访问,求最小的访问区域数的期望值。比如,已知手机可能位于5个区域,概率分别是0.3 0.05 0.1 0.3 0.25,w=2,

2016-09-05 10:23:40 730

原创 UVA 10817 UVALive 4643 状压dp

这两个题的思想是相似的,可以对比一下。 题目: UVA - 10817 Headmaster’s Headache 题意: 某校有n个教师和m个求职者,已知每人的工资和能教的课程集合,要求支付最少的工资使得每门课都至少有两名教师教学。在职教师必须招聘。分析: d[i][s1][s2]表示考虑到第i个教师以后,可以教授的课程集合是s1和s2,还需要花费的钱?其中s1和s2分别保存某门课

2016-09-05 09:04:11 252

原创 UVa 10564 沙漏里的路径(背包思想)

题目:http://acm.hust.edu.cn/vjudge/contest/129795#problem/Q 题意: 要求从第一层走到最下面一层,只能往左下或右下走,经过的数字之和为Sum。问有多少条路径之和刚好等于Sum? 如果有的话,输出起点编号最小且字典序最小的路径。分析: 一道类似01背包的题目,Sum相当于是背包容量,状态表示很容易想到: f[i][j][S]表示从

2016-09-04 22:15:34 313

空空如也

空空如也

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

TA关注的人

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