随笔分类 -  ACM/算法/数据结构

上一页 1 2 3 4 5 6 7 ··· 9 下一页
摘要:昨天学了下树分治,今天补这道题,还是太不熟练了,写完之后一直超时。后来查出好多错= =比如v,u写倒了,比如+写成了取最值,比如。。。。爆int。。。查了两个多小时的错。。哭。。。(没想到进首页了 http://hzwer.com/6107.html 大神博客,代码清晰,照着这个改的 逆元预处理之前 阅读全文
posted @ 2016-08-27 17:14 我不吃饼干呀 阅读(665) 评论(0) 推荐(0) 编辑
摘要:题意:给一棵树,求树上长度小于等于k的链的数量。 题解:http://blog.csdn.net/yang_7_46/article/details/9966455 照着这个博客写的代码。 不到100行,所以不应该算难吧……可是我觉得好难啊…… 阅读全文
posted @ 2016-08-26 23:54 我不吃饼干呀 阅读(168) 评论(0) 推荐(0) 编辑
摘要:rating又掉下去了。好不容易蓝了。。。。 A。。没读懂题,wa了好几次,明天问队友补上。。。 B. Checkpoints 题意:一条直线上n个点x1,x2...xn,现在在位置a,求要经过任意n-1个点的最小路程 题解:分类讨论,乱搞搞总会出来的,我大概写的很笨…… C. Letters Cy 阅读全文
posted @ 2016-08-25 21:50 我不吃饼干呀 阅读(351) 评论(0) 推荐(1) 编辑
摘要:二分图的最小顶点覆盖:用最少的点,让每条边都至少和其中一个点关联。 最大匹配数 = 最小点覆盖数(Konig 定理) 水题…… 突然发现我以前的匈牙利算法模版有问题……因为这里左边的点时1~n,右边的点是1~m,所以有不同的点标号是相同的,注意注意! 因为这个算法本身是O(n^2)的,所以数据必然不 阅读全文
posted @ 2016-08-23 14:22 我不吃饼干呀 阅读(689) 评论(0) 推荐(0) 编辑
摘要:我觉得我要改一下签名了……怎么会有窝这么啰嗦的人呢? 做这题需要先学习左偏树《左偏树的特点及其应用》 然后做一下POJ3666,这题的简单版。 思路: 考虑一下维护中位数的过程原数组为A,找到的不降数列为B当对于A的前n个数已经找好了最优解B[1…n],可知此时A被分成很多块,并被一些大顶堆记录,假 阅读全文
posted @ 2016-08-23 12:15 我不吃饼干呀 阅读(539) 评论(0) 推荐(0) 编辑
摘要://突然发现好弱,好多基础的算法竟然都不会,哈希这种经典的算法,我貌似基本没怎么做过相关的题0.0 POJ2002 题意:给n个点,问有多少组四个点能组成正方形。 题解:枚举两个点,通过公式算出另外两个点,然后通过哈希查找另外两个点存不存在。 公式是抄网上的,哈希直接用了vector存的,反正时限3 阅读全文
posted @ 2016-08-22 10:55 我不吃饼干呀 阅读(155) 评论(0) 推荐(0) 编辑
摘要:左偏树 炒鸡棒的论文《左偏树的特点及其应用》 虽然题目要求比论文多了一个条件,但是……只需要求非递减就可以AC……数据好弱…… 虽然还没想明白为什么,但是应该觉得应该是这样——求非递减用大顶堆,非递增小顶堆…… 这题和bzoj1367题意差不多,但是那题求的是严格递增。(bzoj找不到那道题,可能是 阅读全文
posted @ 2016-08-21 23:03 我不吃饼干呀 阅读(1167) 评论(0) 推荐(0) 编辑
摘要:题意很好理解,不说了 题解就是每次把值压缩成一维,比如x上,这样就可以求出任意宽度的整个竖条的和。 如这张图,求的是s5-(s1+s3+s7+s9) 因为可以求出一整竖条和一整横条,我们可以求出是s2+s5+s8 也可以求出s4+s5+s6 当然也很容易求出总面积S 那么S-(s2+s5+s8)-( 阅读全文
posted @ 2016-08-19 15:24 我不吃饼干呀 阅读(282) 评论(0) 推荐(0) 编辑
摘要:树状数组(BIT,Binary Indexed Tree) 先上一张经典的图吧。(也是盗的,地址见水印 以下转自:http://blog.csdn.net/lawrence_jang/article/details/8054173 1.单点增减+区间求和 思路:C[x]表示该点的元素:sum(x)= 阅读全文
posted @ 2016-08-19 14:11 我不吃饼干呀 阅读(570) 评论(0) 推荐(0) 编辑
摘要:原理可以看hihocoder上面的讲解,很清楚,不多说了。 模板抄lrj训练指南上面的。 例题: 上面hihocoder的例题,这个代码是照着讲解自己写的 //Treap.cpp #include <stdio.h> #include <string.h> #include <stdlib.h> c 阅读全文
posted @ 2016-08-11 22:05 我不吃饼干呀 阅读(352) 评论(0) 推荐(0) 编辑
摘要:这场就做出一道题,怎么会有窝这么辣鸡的人呢? 1001 A Boring Question(hdu 5793) 很复杂的公式,打表找的规律,最后是m^0+m^1+...+m^n,题解直接是(m^(n+1)-1)/(m-1),长姿势,原来还能化简…… 我既然不会推公式,也没啥好写的。写一下我打表的代码 阅读全文
posted @ 2016-08-04 18:06 我不吃饼干呀 阅读(269) 评论(0) 推荐(0) 编辑
摘要:题意:求给定字符串的三元组(I,J,K) 使得S[i..j] 和 S[j+1..k] 都是回文串。求所有满足条件的三元组 ∑(i*k) 题解:求出以j为结尾的回文串起始位置的和记为lv[j],和以j+1为开始的回文串末位置的和rv[j+1] 答案就是∑[j:1-n](lv[j] * rv[j+1]) 阅读全文
posted @ 2016-08-03 22:29 我不吃饼干呀 阅读(244) 评论(0) 推荐(0) 编辑
摘要:题意:给一个数列,求四个各不相同的数,一个逆序对,一个正序对,求多少组这样的四个数。 题解:辣鸡如我,还是上官方题解了。 rg(i)就是i右边比i大的数的个数,rs(i)就是i右边比i小的数的个数。 lg(i)就是i左边比i大的数的个数,ls(i)就是i左边比i小的数的个数。 allg就是所有逆序对 阅读全文
posted @ 2016-08-03 08:18 我不吃饼干呀 阅读(312) 评论(0) 推荐(0) 编辑
摘要:题意:两个数列a,b,求相同的子序列有多少对,内容相同位置不同也算不同。 题解:dp[i][j]表示a数列前i个数个 b数列前j个数 有多少对 递推方程: dp[i][j] = dp[i-1][j-1]( a[i]和b[j]都不用 ) + ∑(k<i&&a[k]==b[j])dp[k-1][j-1] 阅读全文
posted @ 2016-08-02 22:04 我不吃饼干呀 阅读(221) 评论(0) 推荐(0) 编辑
摘要:题意:Alice忘记了自己银行里存了多少钱,只记得在[0,k]之间。每次取钱如果余额足够就出钱,否则警告一次,警告超过w次就会把你抓起来,在不想被警察抓起来的前提下,Alice采取最优策略,求期望取钱多少次能知道自己存了多少钱。 题解:这场比赛彻底gg了,上官方题解了。 题解中的递推式也很好理解,就 阅读全文
posted @ 2016-08-02 21:19 我不吃饼干呀 阅读(561) 评论(0) 推荐(0) 编辑
摘要:题意:给一个非负整数的数列,其中0可以变成任意整数,包括负数,求最长上升子序列的长度。 题解:LIS是最简单的DP了,但是变形之后T^T真的没想到。数据范围是10^5,只能O(nlogn)的做法,所以一直在想0要插到哪里。 题解是先求不包括0的数列的LIS,再将0插入其中,由于直接插入不会保证递增, 阅读全文
posted @ 2016-07-31 21:04 我不吃饼干呀 阅读(409) 评论(0) 推荐(0) 编辑
摘要:题意:求含有某个字母的某个字符串的不同子串的个数 题解:后缀数组,因为不太了解后缀模版卡了一会,还是很简单的。 把后缀按照字典序排序后,一定是取每个后缀的一些前缀,如果两个后缀排名相邻,那么它们的前缀一定是相同的,height数组纪录,那么就不用重复考虑了。同时要记录里每个字母向后最近的需要出现的字 阅读全文
posted @ 2016-07-30 23:11 我不吃饼干呀 阅读(401) 评论(0) 推荐(0) 编辑
摘要:题意:求一列数字中走向相同的两个字序列,长度要求大于5 题解:相邻数字求差,原题就变成求相同的长度大于4的子串。 [存疑:在保证两个子串不相交时觉得限定条件应该是大于x,但是wa了= = 不是很理解] 阅读全文
posted @ 2016-07-30 21:00 我不吃饼干呀 阅读(188) 评论(0) 推荐(0) 编辑
摘要:题意:给一个无向图n个点1~n,m条边,sigma(i*zi)%(1e9+7)。zi是这个图删掉i点之后的价值。一个图的价值是所有连通子图的价值之和,连通图的价值是每个点的乘积。 题解:讲道理这题不算难。注意一点就是一开始给的图不一定是连通的。然后就是割点会把一个连通图分成两个连通图,而其他点不影响 阅读全文
posted @ 2016-07-27 19:45 我不吃饼干呀 阅读(270) 评论(0) 推荐(0) 编辑
摘要:好题,学到新姿势! 题意:给两个字符串 a 和 b ,b可以进行变换,规则是可以任意交换相邻两个字符的位置,但是不可以有交叉(例如3和4交换,5和6交换 互不影响,但是2和3,3和4就不可以)。求a中每一个位置能不能匹配b或b变换得到的子串。 题解:考虑dp。dp[i][j][k]表示a[i]和b[ 阅读全文
posted @ 2016-07-24 23:03 我不吃饼干呀 阅读(772) 评论(2) 推荐(1) 编辑

上一页 1 2 3 4 5 6 7 ··· 9 下一页