随笔分类 - HDU
摘要:比赛的时候想的是把n个n个的题目进行状压 但这样不能讲究顺序,当时精神面貌也不好,真是挫死了其实此题的另一个角度就是一个n个数的排列,如果我对n个人进行状压,外面套一个按题目循序渐进的大循环,那么,在当前做第i个题目,前i-1个题目已经做完,然后做完的人的状态为j, j可能是1110 1101 10...
阅读全文
摘要:今天西安网赛的题,因为被那个博弈卡住,没什么心情看这个这个题好像很简单的样子,但是看了下数据量,发现用n^2承受不起,然后我想了一下 没想出什么更低复杂度的算法出来。。后来发现别人还是用n方算法过的,只是用了下剪枝。。。。擦,我不是很敢尝试这种,,估计今天这个简单DP过的人不是很多 就是卡在时间上的...
阅读全文
摘要:首先确定的基本思想是按时间离散化后来建线段树,对于每个操作插入到相应的时间点上但是难就难在那个pop操作,我之前对pop操作的处理是找到离他最近的那个点删掉,但是这样对于后面的peak操作,如果时间戳还在pop前面,那就需要还原之前的pop操作,这弄得很不方便于是就有了一种类似扫描线的做法,对于pu...
阅读全文
摘要:这个题目要求既对序列的某段区间求和p互质数目,又支持对某个数进行修改一开始看到这个题,有点懵,就是因为第二个操作,如果只是第一个操作,并且是原始序列1-n,那就很简单了,按照之前写过的某个题目,求出1-y中的数目,减去1-x中的数目即可就是第二个操作把序列打乱了,这样就不好搞了后来还是大神博客的一句...
阅读全文
摘要:意思是有个塔防游戏,有三种塔,红塔在怪物经过的时候每秒会产生攻击力大小的伤害,绿塔对怪物经过以及经过之后每秒产生攻击力大小的伤害,还有种蓝塔,对怪物进行减速,即怪物从此之后经过一个单位都会减慢c秒最后最最大的伤害值是多少又是比赛的时候没想出来,知道是个DP,但是对这种多变量型的DP就是有点不感冒。这...
阅读全文
摘要:当时刚学LCA-tarjan不久,就比赛有这个题,但没想到还是没做出来。。一开始以为是DP来着,没想到是贪心,想想也对,从树的最下层开始,每次遇到询问的点,就找到他们的LCA(路径里面必经LCA),然后把该LCA下的子树连同自己全部染色为不可用了。#include #include #include...
阅读全文
摘要:一开始看这个题目以为是个裸的矩阵快速幂的题目,后来发现会超时,超就超在 M = C^(N*N). 这个操作,而C本身是个N*N的矩阵,N最大为1000。但是这里有个巧妙的地方就是 C的来源其实 是= A*B, A为一个N*k的矩阵,B为一个k*N的矩阵,k最大为10,突破的就在这里,矩阵的结合律要用...
阅读全文
摘要:其实现在想起来是个巨简单的DP,模型就跟LCS很像,比赛的时候居然没想出来,在聪哥提醒下还卡了个地方就是说给定一串n个数字的序列,可以连续合并,最终使得序列是回文的,题目也给定了合并数字所需的代价,合并一个为0,合并2个 3个。。n个的代价都有题目比较新意的地方就是回文,这也是我们要解决的主要地方,...
阅读全文
摘要:哎。这个题想了好久,状态不对啊。。。一个大家都出的题。。当时想到肯定是可以有什么规律来暴力,不用算到10的10次方对于某个k,x。从1到k循环,每次求一个新的x,这个x要大于等于原x,并且要是i的倍数。。。一直觉得有规律可循,后来知道就是倍数,我们设倍数为 b, 则b2*(i+1)>=b1*(i);...
阅读全文
摘要:算最多十条链,能截取某前缀段,每种方案都可以算出一个权值,每种方案的概率都是总数分之一,问最后能构成的所有可能方案数。对计数原理不太敏感,知道是DFS先把链求出来,但是想怎么统计方案的时候想了好久,其实因为只能取某个链的前缀,所以直接取链长加+1 然后相乘即可,当然因为会出现都是空的那种情况,要去掉...
阅读全文
摘要:比赛的时候想了一个自认为对的方法,WA到死,然后还一直敲下去,一直到晚上才想到反例找是否存在解比较好找,这种左右括号序列,把(当成1,把)当成-1,然后从前往后扫,+1或者-1 遇到?就当初(,然后如果扫到最后 中间没有出现负数说明左括号没问题然后同样的方法从后往前扫,判断右括号那里是不是有问题即可...
阅读全文
摘要:终于是解决了这个题目了不过不知道下一次碰到主席树到底做不做的出来,这个东西稍微难一点就不一定能做得出离散化+扫描线式的建树,所以对于某个坐标二分找到对应的那颗主席树,即搜索出结果即可(因为是扫描线式的建树,找到对应的树之后,就知道该点上面的线段有多少条了)其他就是普通主席树的操作了主席树里面维护两个...
阅读全文
摘要:还是LCA-tarjan算法,跟POJ 1330做法基本类似,只是这个题目要求输出两个点的最短距离,其实利用LCA的性质,就是 两个点分别到最近公共祖先的距离之和一开始本来想用并查集把路径长度给找出来,但是不太好处理,原因是我刚好找到的这个点还没有加入到并查集中,(因为还没回溯上去),如果马上就合并...
阅读全文
摘要:也是经典的计数DP题,想练练手,故意不写记忆化搜索,改成递推,还是成功了嘞。。。不过很遗憾一开始WA了,原来是因为判断结束条件写个 n或s为0,应该要一起为0的,搞的我以为自己递推写挫了,又改了一下,其实递推没问题,就是写出来不好看#include #include #include #includ...
阅读全文
摘要:RT最近不想写博客,累积了一周多的题目,今天趁着周日放假,全部补上吧dp[i][j]表示前i个数,操作后的值为j的总个数注意取或不取,有种完全背包的意味。因为数字小于1024,所以异或的结果也绝对不会超过1024,在循环第二维的时候到1024就行了,不要循环多了,反而会错,循环多了 异或值会超,结果...
阅读全文
摘要:给定n个数第一个操作和普通,区间覆盖性的,把l-r区间的所有值改成固定的val第二个操作是重点,输入l r x 把l-r区间的所有大于x的数,变成gcd(a[i],x) a[i]即指满足条件的序列上的数值最后才输出所有值当时苦思这个地方如何优化,想着不可能单点去更新吧,但是区间gcd,不能保存下来,...
阅读全文
摘要:给定一个初始都为0的序列,有三种操作,前两种比较正常,一个是对某个位置的数add k,另一个是query区间和。然后比较麻烦的是第三个操作,把某个区间里面的每个值改成离它最近的Fibonacci数,如果存在左右两个离它近的,优先取左边数值小的一看到前两个操作马上就想上手敲树状数组,后来看到第三个就有...
阅读全文
摘要:给定一个n的序列,有m个询问 每次询问求l-r 里面第k大的数字是什么只有询问,没有修改可以用归并树和划分树(我都没学过。。囧)我是专门冲着弄主席树来的对主席树的建树方式有点了解了,不过这题为什么是在主席树里面这么操作的 还是有点不懂,今天照着模板敲了一遍就打多校了再研究吧#include #inc...
阅读全文
摘要:求n个图矩形放下来,有的重合有些重合一部分有些没重合,求最后总的不规则图型的轮廓长度。我的做法是对x进行一遍扫描线,再对y做一遍同样的扫描线,相加即可。因为最后的轮廓必定是由不重合的线段长度组成的,这样理论上是对的要注意处理高度相同的线段,把底边优先处理(在代码里就是f标记为1的线段),因为若是一个...
阅读全文
摘要:也是很久之前的题目,一直没做做完之后觉得基本的离散化和扫描线还是不难的,由于本题要离散x点的坐标,最后要计算被覆盖的x轴上的长度,所以不能用普通的建树法,建树建到r-l==1的时候就停止,表示某段而不是某点,同样,左子树和右子树要变成 L MID , MID R比如1-4子树就是 1-2,2-4。。...
阅读全文

浙公网安备 33010602011771号