随笔分类 - HDU
摘要:这个是去年遗留历史问题,之前思路混乱,搞了好多发都是WA,就没做了自从上次做了大白书上那个双重懒惰标记的题目,做这个就思路很清晰了跟上次大白上那个差不多,这个也是有一个sets标记,代表这个区间全部置为0或者1,没有置位的时候为-1还有个rev标记,代表翻转操作,0代表当前不翻,1代表当前翻要注意一...
阅读全文
摘要:2014 多校的B题,由于我不怎么搞图论,当时碰到这个题目,我怎么想都没往网络流方面弄,不过网络流真的是个好东西,对于状态多变,无法用动规或者数据结构来很好表示的时候,非常有用这个题目要求每个点一定要访问到,并且每次访问的是没访问过的点,跳跃的方向为向右或者向下。建图的时候,分成二分图,从一个超级源...
阅读全文
摘要:今天多校的一道题,哎,多校被中学生碾压了发现自己很怕敲贪心,这道题其实贪心特性相当明显,我看这个题算比较早,还在想各种递推或者dp那种后来还是聪哥马上反应过来了首先,对于任何的task,因为最后的money是 500*x+2*y,所以,在得到最多money方面,肯定是x的优先级高,x相同的时候再比较...
阅读全文
摘要:13年长春现场赛的G题,赤裸裸的二维线段树,单点更新,区间查询不过我是第一次写二维的,一开始写T了,原因是我没有好好利用行段,说白一点,还是相当于枚举行,然后对列进行线段树,那要你写二维线段树干嘛二维就是在每个行段也建一棵树,来代表这个区间的行里的某些列的值其他操作倒是不难,因为有一维的功底,只是多...
阅读全文
摘要:惨。今天聪哥选了2013 多校10做训练,结果一题都没做出来。这个题目是数据结构,正好是我强项如果只是插入 删除 光标左右移动,那都小菜,用链表全解决,关键是那个Q k 要求 a1到aq的连续子序列和最大(子序列一定要以a1开头)。然后我用记录每个节点的当前最大和总体最大,这样只要知道第k个是哪个数...
阅读全文
摘要:一开始还没看懂这个算法,后来看了陶叔去年的PPT的实例演示才弄懂用一个lx[]和ly[]来记录X和Y集合中点的权值,有个定理是 lx[i]+ly[j]==w[i][j](边权值) 则该点是最佳匹配,因为首先 那个不等式肯定要>=的,否则就不满足题意了,如果是>则可以去匹配更有价值的边或者把权值降下来...
阅读全文
摘要:这个题目搞了我差不多一个下午,之前自己推出一个公式,即 f[n+k]=k*f[n]+f[n-1]结果发现根本不能用,无法降低复杂度。后来又个博客的做法相当叼,就按他的做法来了即 最终求得是 S(n)=f[b]+f[b+k]+f[b+2*k]....f[b+n*k] (原题的意思好像是不用加到第n项,但实测确实要加到该项)然后我们令 A={1,1}(标准的斐波那契矩阵) {1,0}发现 f[b]=A^b,f[b+k]=A^(b+k),....f[b+nk]=A^(b+nk);提取公共因子 A^b.S(n)=A^b*(E+A^K+A^K^2....A^K^n)再令K=A^K (K...
阅读全文
摘要:这个题目上周对抗赛题目,搞了我好久 对数学这种不是很敏感其实都不是自己想出来的,看其他的资料和博客的推导 还是有点难度的,反正我是推不出来通过二项式定理的化简有两个博客写得比较好http://972169909-qq-com.iteye.com/blog/1863402http://www.cppblog.com/Yuan/archive/2010/08/13/123268.html反正构造好二项式之后,乘N次,就可以得到结果了,因为右边的式子 初始全部是x。#include #include #include #define ll __int64using namespace std;con
阅读全文
摘要:必须要批评下自己了,首先就是这个题目的迟疑不定,去年做字典树的时候就碰到这个题目了,当时没什么好的想法,就暂时搁置了,其实想法应该有很多,只是居然没想到。同样都是对单词进行建树,并插入可能值,但是拨号键盘上的字母是对应多个的,给定拨号序列,有多种可能情况 输出其中最可能的一种,肯定要想到搜索啊,而且拨号数目不超过100,每个按键最多只对应4个字母,复杂度并不高,所以用dfs是可行的,对于每次递归深度,dfs找到最大的可能值的情况并输出。接下来就是要批评自己了,下午一点钟开始做这个题目,居然被一个小bug搞了一个多小时,都没过样例,就是我的dfs写挫了,而且我迟迟没找到原因。。。真的要反省自己的
阅读全文
摘要:上次周赛碰到这个题目,居然都没思路,真是不应该啊,起码也应该想到枚举法。因为题目只允许每一row进行reverse操作,而每两列可以进行交换操作,所以首先把row的变化固定下来,即枚举第一列与第1-m列进行交换,之后逐个检查每一行第一列的状态 与 终态是否一致,不一致的话则该行就一定要进行reverse操作了,这样下来,每次枚举就把row的reverse变化给固定下来,接下来只要枚举 接下来的2-m行互相的列变换即可,只需一个嵌套循环即可,总的循环也只是三重 而n和m仅有100,规模承担的起一个简单的枚举暴力题 虽然说还是带有一点技巧的,怎么比赛的时候就没想出来呢!!!#include #in
阅读全文
摘要:上次的ZJU月赛题,规则比较复杂,当时就连题意都没摸清楚,只觉得非常复杂比完后敲啊敲啊敲,连续WA啊,该反思下自己,没按照题意来设置条件,题目中说了 白球入袋并且。。。 给对手加分 ,白球未入袋并且。。。给对手加分,这个白球未入袋的情况也要加在判断条件里啊啊啊啊,还有就是有个地方要排序我居然忘了,好久都没发现。#include #include #include #include using namespace std;int n,m;int a[1010];int vis[10010];int ans[2];int hit[1010],c[1010];int main(){ while...
阅读全文
摘要:一个排队问题,f代表女,m代表男,f和m出现的几率相等。问一个长为L的队伍不能出现 fmf 和 fff这样的串总共有多少种。这个题目的公式递推略难啊。。。我看了别人博客才想明白原来是这么递推出来的。首先把前几项写出来。L=0 ,ans=0;L=1,ans=2;L=2,ans=4;L=3,ans=6;L=4,ans=9;规律有点难找,直接递推出来,假设 长度为n的串,n>4,ans[n] 无非就是在 ans[n-1]的基础上加一个 f或者m,如果在ans[n-1]的基础上在队列最后加一个m,则绝对合法,因为不论前面n-1个是怎么排列,最后加一个m,绝对不会构成fmf或者fff,所以 ans
阅读全文
摘要:最近开始由线段树转移新的内容,线段树学到扫描线这里有点迷迷糊糊的,有时候放一放可能会好一些。最近突然对各种数学问题很感兴趣。好好钻研了一下矩阵快速幂。发现矩阵真是个计算神器,累乘类的运算原本要O(N)的复杂度一下子给降到Log(N),非常大的进步了。这个题目算是矩阵快速幂的比较难推的一个题目。题目要求 (sqrt(2)+sqrt(3))的 2^n并%1024,要求出值来并不难,构造矩阵即可,但是要mod1024就有问题了,小数不能直接mod,但是如果你取整之后再mod,结果绝逼出问题,因为浮点数的精度问题。所以从斌牛的博客上看到如此推算,推算第一块不难,而且很容易求出Xn 和 Yn,但是问题又
阅读全文
摘要:给这个题目跪了两天了,想吐简直发现自己离散化没学好包括前一个离散化的题目,实际上是错了,我看了sha崽的博客后才知道,POJ那题简直数据弱爆了,本来随便一组就能让我WA掉的,原因在于离散化的时候,缩小数据规模的同时,没有考虑到误差,比如 1 4 6 8,离散化之后是1 2 3 4,我如果覆盖了1 2和3 4,表面上好像全部覆盖了,实际数据并没有覆盖。。所以我只能说那道题目我其实错了,并没有真正做出离散化出来。。。现在用这道题来弥补。color the ball,ball的编号可以从1 到2^31,不可能开这么大线段树,但是其实测试数据只有N=2000*2组,所以必然是离散化,初始的时候,所有球
阅读全文
摘要:最近小伙伴们省赛打得超级棒,4个队全是省一,还有陶神他们已经开赴成都参加区域赛,好羡慕啊。 第一次做树形DP,经历之前DP题目的磨练,觉得思路很简单 我首次尝试用MAP做,但是思路出了点问题,由于我之前是想对一个结构体数组进行维护,在结构体里面保存了老板的下属,但这样的话我就用的指针去访问数据,还用
阅读全文
摘要:学了一下最长公共子串,它是属于dp里面的 dp=max{(i,j-1),(i-1,j),(i-1,j-1)+d}问题,不得不说,规划方向确实厉害,当然这只适用于两个字符串匹配的问题,n个字符串的话,我查了一下,要用后缀数组,这个以后再来弄吧。比较难的是记录公共字串,在DP的时候记录好搜索的方向,就可以询步骤得到公共串。尤其1503这题呢,除了把公共部分打印出来,还要把非公共部分打印出来。#include #include #include using namespace std;char a[105] , b[105];int dp[105][105];int rec[105][105];in
阅读全文
摘要:题目大意:在h*w 高乘宽这样大小的 board上要贴广告,每个广告的高均为1,wi值就是数据另给,每组数组给了一个board和多个广告,要你求出,每个广告应该贴在board的哪一行,如果实在贴不上,就输出-1;这个题目也难以想到居然是用线段树来做我们需要考虑的是,线段树究竟表示的是什么数据。在这个题目里,由于每个广告的高都为1,是不是好像感觉每一行都是一个叶子节点一样。没错,就是这样。。。化抽象为具体一点,那就是把这个board给竖起来,这样最底部的孩子存贮了当前行的空闲宽度,每个父节点都是左右孩子的max。其实思路这样理一下,感觉其实很简单,是把。还要注意的一点是,虽然题目说h 和 w高达
阅读全文
摘要:Choose the best routeTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5273Accepted Submission(s): 1680Problem DescriptionOne day , Kiki wants to visit one of her friends. As she is liable to carsickness , she wants to arrive at her friend’s home as
阅读全文
摘要:初识最短路,今天只弄了一个迪杰斯特拉算法,而且还没弄成熟,只会最基本的O(n^2),想弄个优先队列都发现尼玛被坑爆了,那个不应该用迪杰斯特拉算法写表示还是不会优化版的迪杰斯特拉算法,(使用优先队列),只会普通的O(n^2);用HDU_3790来详解这个算法吧。最短路径问题Time Limit:1000MSMemory Limit:32768KB64bit IO Format:%I64d & %I64uSubmitStatusDescription给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最
阅读全文
摘要:关于manacher算法,似乎在学完KMP之后,比较容易上手,虽然有些原理方面,我没有理解的太深。Manacher就是解决回文串的问题,求一个字符串中的最长回文子串。Manacher算法首先对字符串进行处理:在所有字符之间插入‘#’,这样的好处是,无论最长回文子串是奇数个或者是偶数个,都可以进行处理。处理过程是这样的假设原串是这样的1 2 3 4 5a b b a d处理完成一个新数组0 1 2 3 4 5 6 7 8 9 10 11 12? # a # b # b # a # d # 0 1 2 1 2 5 2 1 2 1 2 1首尾设置完全不相干的字符,是为了检测回文时,不会被算...
阅读全文

浙公网安备 33010602011771号