- 博客(130)
- 收藏
- 关注
原创 Codeforces Round#280(Div.2)
新博客网址:http://qianyuge.com/真是炫酷,诚然沾了题比较水的光,但是劳资4题撒A题没什么好说的,枚举就好#!/usr/bin/env python# coding=utf-8n = input()ans = 0tmp = 0i = 1;while True: tmp += i * (i + 1) / 2 i += 1 if
2014-12-02 03:44:29 583
原创 spoj375 Query on a tree 树链剖分
题目大意链接请点我给一棵树,有两种操作,一种是改变某一条边的边权,一种是询问某两个结点间的路径的最大值解题具体思路参见2009年集训队漆子超的论文《分治算法在树的路径问题中的应用》树链剖分裸题,无奈昨天一直TLE,非常怨念,今天重写了一发,居然A了,虽然也不快,3.89s感觉我用的姿势应该是能看得下去的……CODE#include #include #inclu
2014-06-04 23:42:08 588
原创 好像比完省赛了呢
好像真的比完省赛了呢…… 好像比去年印象稍稍深一点儿…… 可是为什么感觉和去年差不多呢……哦哦……原来祥哥的队伍节奏和去年一样了呢……不仅仅要当靠谱学长还要当靠谱学弟!!坚决不黑学长了!!嗯……和校赛差不多还是各种各样的负面情绪感觉到了各种各样的不忿只不过这次更加不对劲省赛之前甚至我连续两周没有碰C++的代码一直跟我师父写python
2014-05-12 01:07:20 648
原创 HDU4784 Dinner Coming Soon BFS
题目链接题目大意有一个地图,地图上面有n个点,m条有向的路,然后经过一条路要花费一定的时间,同时还得花一定的过路费。有一个人,最初在1点,他出门的时候会带上一些钱。每经过一个点,就可以买一包盐或者卖一包盐,赚取差价,或者什么也不干。他出门带了R的钱,没有带盐。他最多能带B的钱。现在要求他在T时间内到达N点。同时又有K个平行世界,起初这个人在第0个平行世界,这个人可以在平行世界之间穿越。比如
2014-03-25 18:52:43 780
原创 POJ2823 Sliding Window单调队列
题目链接题目大意给定一个长度最大为100w的序列,求这个序列中每三个相邻元素的最大值,从左到右输出。解题思路很多同学说是线段树,的确线段树能解,但是对于这种比较有序的查找,单调队列的选择更好……实际上这道题就是单调队列的入门题……CODE#include #include #include #include using namespace std;const in
2014-03-11 17:44:03 649
原创 HDU4474
题目大意给一个数n,范围是10^4,然后给m个个位数,要求得到一个n的倍数,其所有的数位都不包含那m个数中的任何一个解题思路题目可以转换成如下形式,给定10-m个个位数,用这些数组成一个数,使得这个数是n的倍数。显而易见这个问题符合广搜的思路,每一个状态能向下扩展出来10-m个状态来,但是一个问题就是我们最后扩展出来的数可能非常大,很有可能就没有头了,这怎么办呢?我们可以只存余数。
2014-02-24 11:45:14 1100
原创 POJ3416 Crossing
题目链接题目大意平面上给N个点,有M组询问,每组询问是给定一个坐标中心,水平垂直作出两条坐标轴,求第一象限+第三象限点的个数减去第二象限+第四象限点的个数的绝对值。解题思路N和M的范围非常大,所以采用离线处理的方法,一次性就把所有的答案计算出来。考虑下,如果把所有点按照x坐标排序,然后把所有询问按照x坐标排序,那么当我们处理某一个询问的时候,在这个询问的点左边的所有点我们是可以
2014-02-17 06:29:00 669
原创 POJ3038 Flying Right
题目链接大脑已经秀逗了,这么简单的题……题目大意一架飞机,容量为C,往返于一个长度为N的航线,有K站,每一站有m个人上车,从s地到t地,问这架飞机最多能带多少人到目的地。解题思路贪心,飞机经过的时候,只要能往上放就放,如果飞机满载了,就把终到站离当前目的地最远的踢掉就可以了。对于查询终到站最远的乘客,可以用各种有序集合维护,这里用优先级队列,其他的东西就比较好办了,只要往下踢乘
2014-02-07 05:07:55 1247 2
原创 POJ3467 Cross Counting
题目链接题目大意给一个矩阵,里面有不超过C的数,有两种操作,一种是改变矩阵中某一个元素的值,另外一种是询问某一个值的C值,其中这个C值是这么定义的:某一个位置的元素与它上下左右相同步数内所有的元素相等的话,那么这个位置的C值就是步数,某一个值的C值就是所有位置等于这个值的C值的和。解题思路首先,对于每一个元素,我们需要的不是去计算它的C值,而是要枚举步数然后验证,这样的话实际上算上
2014-01-12 03:05:38 690
原创 TC SRM601 div2 p1000
题目大意给三个字符串A,B,C,求一个字符串S,其中,S是A和B的子序列,同时C是S的子串,求S最长的长度解题思路首先,S一定是A和B公共子序列,那么首先求LIS是一定的了,但是问题就在于怎么把C给放进去对于A和B的每一个位置,我们可以依次对C里面的所有字符寻找,知道找到C的尾部,然后将此位置开始,依次匹配完C的所有字符之后的最后一个位置记录下来,如果没有的话就标记为无法匹配,然后
2013-12-23 15:34:05 906
原创 vijos p1055奶牛浴场
题目大意题目链接求最大子矩形解题思路参考2003年王知昆论文首先将四个点也加入到障碍点之中,然后将所有的障碍点按照x坐标排序。由于最大子矩形的边不是与整个区域的边重合就是就是紧紧挨着障碍点,那么我们从左往右枚举左边界,然后枚举右边界,不断修改上下边界,得到的每一个矩形一定包括最大子矩形,上下边界的修改方法就是一点点地从区域上下边界缩小到枚举到的障碍点即可。AC代码#
2013-12-21 03:07:23 877
原创 TC SRM590 p1000
题目大意给一个棋盘,由"U”,“D”,"."组成,其中U代表每次只能向上移动若干格子的棋子,D代表每次只能向下移动若干格子的棋子,.代表空点,问最多能移动出来多少种方案。解题思路既然题目中说了棋子只能上下移动,那么列与列之间没有任何的关系,都是独立的,换句话说,我们只需要单独考虑每一列之间的关系然后用乘法原理算出来就行了。每一列之中有多少个方案还是比较好算的,对于U棋子,每一个
2013-12-18 18:50:54 648
原创 HDU1428 漫步校园
题目大意题目连接中文题意无须赘述解题思路首先,我们可以用广搜把所有点到终点的最短路求出来,然后以这个为条件记忆化搜索就可以了(因为起点打错调试了好久TAT)AC代码#include #include #include #include #include using namespace std;typedef long long ll;struct node
2013-12-16 16:41:04 725
原创 TC SRM573 div2 p1000
题目大意给一个矩阵,某些点里面有狼,现在这些狼要在m次移动内都聚合到同一个点上,每次移动只能移动到当前格子的四个相邻的格子内,问有多少种方案让这些狼都移动到相同的点上?解题思路首先,一个非常直观的dp方程能很快想出——dp[k][i][j]表示到[i,j]格子内,经过k次移动,有多少种方案,那么这道题的方程也就很容易能想到,该点的上一个状态一定是相邻的四个点,那么把那四个相邻点的方案算
2013-12-16 15:42:02 713
原创 TC SRM599 div2 p950
tc的题意还是非常好理解的,所以也就不再赘述题意。首先,对于这道题,我第一个想的就是组合数公式,首先对所有的字符串进行字典序排序,这样的话,所有的前缀连通块就全都凑到了一起,然后数出来所有的连通块的长度,按照组合数公式往里面套,就可以了,但是组合数取模还是忘了= =于是乎就没有按着这个方法写。另一个方法貌似是dp,说实话,最开始并没有想到dp的这个姿势(果然还是dp太渣渣了)。dp[i
2013-12-15 19:45:08 1361
原创 一些破事儿
最近真的被一大堆的破事儿包围,导致没办法静下心来做题……现在把最近的东西来概括计划一下子好了,包括寒假……因为需要搞定的内容太多了,所以必须把时间周期弄长……先说学期内的1:白天两道DP2:由于要跟着我师父做OJ(师父已经把我算进团队了),于是乎做题之余剩下的时间学OJ预知识,顺序如下:1)ruby2)ruby on rails3)jquery4)php3:期末
2013-12-12 01:15:23 724
原创 HDU1227 Fast Food
题目大意题目链接n个饭店,要建m个仓库,现在给所有饭店之间的距离,问m个仓库怎么建能建的最小?输出最小值解题思路比较经典的动态规划,dp[i][j]表示的是前i个饭店,建j个原料站的最小距离状态转移方程是:dp[i][j] = min(dp[k][j - 1] + w[k, j])其中w[i,k]表示第i个快餐店到k个快餐店之间均没有原料站,而且原料站位于i、k时,i~k个
2013-12-02 12:52:37 651
原创 HDU1074 Doing Homework 状态压缩DP
题目大意题目链接题目大意就是给N种作业,每种作业都有一个花费时间和截止日期,如果超出截止日期,超出多少天扣多少分,问的是用什么顺序做作业能使得扣得分最少解题思路N等于15,全排列枚举非常不合理。背包,无法求出来顺序。既然N最大是15,数据规模非常小,可以用状态压缩DP来解。dp[i]表示i做i集合里面的作业所能做到的最少扣分,然后设置一个j,表示当前面临的是第j个作业,
2013-11-21 19:11:50 802
原创 长沙现场赛A题
题目大意Hint:虽然是最水的题,但是现场赛我们没有过,让我感觉非常捉急,所以现在我把这道题我的解法挂出来……话说我并没有参与A题……题目大意就有一种东西,当你买不少于si件的时候,需要付pi的单价,现在给定所有的s和p,然后每次告诉你买多少件,问最少花多少钱。题目保证s逐级递增,p逐级递减。解题思路既然题目已经保证了随着s的递增,pi是递减的,那么这道题的策略就少了,对于每一个询
2013-11-20 21:15:19 858
原创 长沙现场赛C题
题目大意给定两个同心圆,外面的圆表示的是一个区域,里面的圆是一个围墙,现在在圆形区域外某个点,以某个方向的速度发射一个硬币,使硬币做匀速直线运动,已知硬币撞上圆形围墙时会发生无能量损失的反弹,反弹的方式为镜面反射,硬币的任何部分在圆形区域内的时间。解题思路首先,对于我们所求的问题,求时间的话,只需要知道两个量,一个是硬币在圆形区域中经历的长度,另一个是速度,速度已经给定,而且明确说了没
2013-11-18 01:35:28 1215 5
原创 长沙regional总结
首先允许我自责一下,做一个悲伤的表情这是我人生中第一场regional,两题打铁了……首先对于这场比赛我多么看中那不必说,但是最后实在是太逗逼了热身赛四道题,我上来看了第一题,并且很快确定下来了解法,然后写了一发怒WA……调试半天无果换给cx重敲,A了,果然搜索写不好……然后lb敲C,我和cx讨论B题,无果……热身赛就这么过去了和前几次比赛一样,正式赛开始之前以及初期我先上厕所
2013-11-17 17:02:10 760
原创 ZOJ3633 Alice's present 线段树离线 || 主席树在线
题目大意题目链接给一个长度为N的序列,有M个询问,每次询问区间内的数是否全都不一样,如果全都不一样就输出OK,如果有重复的就输出从右到左第一个重复的数。解题思路主席树在线非常直观,每一个数对应一个历史版本,然后询问的时候询问那个区间对应的线段树里面有多少个元素,如果最大值是1就表示OK,否则的话就输出最右的非1,对于位置做做处理就行。线段树离线就不太好办了,由于我前几天刚做完杭
2013-11-13 15:51:42 680
原创 BZOJ1208 宠物收养所
题目链接题目是中文描述,题意也就不赘述了实际上我们是动态维护两个集合,对于一个集合,当进入一个新的数的时候,在另一个集合的已有的数中找一个和它最接近的,然后把这个两数取出来,计算绝对值。数据已经保证每一个集合里面的每一个数都是不一样的,那么这道题就简单了,我们只需要维护两棵平衡树,我选择的是喜闻乐见的Treap……那么某一个集合进入一个新数的时候,我们只需要询问另外一个集合是否为空
2013-11-12 21:36:17 652
原创 HDU2665 Kth number 可持久化线段树
题目大意题目连接无修改区间第K大数解题思路第一次实现了主席树,其实还有两种做法,一种是划分树,WJMZBMR说它是时代的眼泪了,于是我也没想……一种是线段树套平衡树……拜托没必要,这道题又没有修改……所谓主席树,就是可持久化线段树,也就是说我们每插入了一个新的元素,就创造了一个新的结点,这样下去,线段树所有的历史版本我们就都能保存下来。然后考虑一下线段树相减,两棵线段树
2013-11-11 18:12:15 771
原创 HDU4777 Rabbit Kingdom 树状数组
题目大意题目链接杭州现场赛的H题……题意是给定一个长度为N的序列,然后有M个询问,每个询问是询问L到R内有多少个数和其他所有的数都互质解题思路首先,对于这个序列中的每一个数,我们都可以求出来在这个序列中与它相邻且互质的连续区间,然后离线处理一下询问具体的处理方法就是,求出来所有的数的所有的互质范围有多少个包含当前询问的区间,减去所有数的前半范围到当前位置i-1的数有多少个包
2013-11-11 04:06:47 1124
原创 ZOJ2112 Dynamic Rankings 线段树+平衡树
有修改的区间第K大数惭愧啊,到现在才做到这道题,这道题公认有两种做法,一种是树状数组+主席树,遗憾地说我不会……另外一种是线段树套平衡树,我用的是这种方法,只要线段树每一个节点都是一棵平衡树,我们就可以对序列进行动态修改了。代码上,主代码部分和线段树部分我写的,treap参照了silver__bullet的代码,为防止内存开销过大,采用动态建树,恰好我不会指针……//BZOJ上
2013-11-09 05:24:34 759
原创 五次合练打酱油……
嗯……下个星期就要出发上长沙了……最近开始恶补一些以前看了很久看懂了但是没有集中训练的东西,就比如说今天下午是树套树……但是写了一下午都是崩溃,真都快哭了……这么下去,真的不知道树链剖分什么的还有没有时间写——其实主要目的是让我会用模板……前段时间一直在做计算几何,做得非常爽,AK了自己开得好几个练习的同时,别的东西也都忘了不少曾经引以自豪的图论那部分和数据结构,如今都剩不下啥了,
2013-11-08 21:13:53 763 2
原创 HDU4533 威威猫系列故事――晒被子
题目大意转向题目在坐标系里面给定了N个矩形,有M次询问,每次询问输入一个t,询问的是从(0,0)到(t,t)范围内的矩形的面积(重叠也算,不是矩形面积并)解题思路这道题很容易让人联想到二维的做法,但是我们一看数据范围,发现是20W,明显无法满足空间限制,那么应该怎么办呢?首先,矩形是无更新的,这给我们了非常大的空间,那么我们就可以想办法得到每一个位置的函数表达式既然
2013-11-06 19:59:16 667
原创 FZU2105 Digits Count
题目大意转向题目给定一个长度为N的序列,有M次操作,操作有几种:AND opn l r表示让l到r区间内所有的数与opn相与,OR opn l r表示让区间l到r内所有数与opn相或,XOR opn l r表示让区间l到r内所有数与opn异或,SUM l r表示求l到r区间的所有数的和解题思路我们的难点非常明显——怎么对这些数进行操作,因为在我们的感知内,位运算并没有加法结合律。
2013-11-05 21:19:39 534
原创 UVA1342That Nice Euler Circuit
万恶的几何……题目大意就是给两条购,这两条狗在不同的道路中奔跑,现在给了这两条道路,已知两条狗同时出发,同时到终点,问它们在奔跑的过程中某时刻的最大距离和最小距离之差的最大值。首先,考虑两条道路都是线段,假设一条狗是静止的,这样我们就可以算出来另一条狗与这条狗的相对位置,求最大值就行了,那么当它是一个复杂的折线的时候,我们就可以一段一段的按照刚才的想法来考虑,唯一需要注意的就是拐点的处理。
2013-10-21 21:22:07 628
原创 LA4986 Dome of Circus
微微发亮的传送门最开始比较傻,一直认为是乱搞,结果乱搞了一大通,最后输出的结果我自己的不认识后来有了个比较神的思想,那就是三分搜索,首先,我们可以知道,圆锥的体积是(r*r*h*pi)/3,那么这里面的不定量就是r和h,也就是说我们需要求得就是r*r*h的最小值,而r和h又是相关的,也就是说我们知道了一个量就可以通过圆锥轴截面的那个三角形得知另一个量,同时这个函数是一个凸性函数,已经满足了
2013-10-09 20:54:31 862 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人