
hdu
文章平均质量分 75
gg_gogoing
这个作者很懒,什么都没留下…
展开
-
ACM 中的期望,概率 问题
一个简易的入门:点击打开链接kuangbin的总结:点击打开链接我搞的题目:点击打开链接前段时间一直在做概率的题目。一、期望其中求解期望问题刚开始一直不理解。后来做得多了有感觉。例:(有放回)在5件产品有4件正品,1件次品,从中任取2件,记其中含正品的个数个数为随机变量ξ,则ξ的数学期望Eξ是 1.6在5件产品有4件正品,1件次品,从中任取2件,记其中含正品的个原创 2015-01-25 10:33:34 · 8444 阅读 · 2 评论 -
HDU 5009 (dp+双向链表优化)
西安网络预赛题。连续选区间填充,完全覆盖。dp[i] 完全覆盖的最优解。连续一起的同种颜色缩并。优化:1. 至多每个单独选,价值最高为N2.不能连续选择超过sqrt(N)+1个不同的颜色3.第i种颜色来的时候,它之前本身的颜色不再考虑。PS:此题本来打算离散化数据,但是用map就不用了(直接判重)。对于有序的数据,离散化还要再映射#include #inclu原创 2014-12-05 08:34:37 · 906 阅读 · 0 评论 -
字符串(1)---KMP & 扩展KMP & Manacher
字符串也是ACM中的重头戏,基本内容有KMP ,扩展KMP, Manacher ,AC自动机,后缀数组,后缀自动机.按照专题来做共分三部分. LCS LIS LCIS不知道算不算....点击打开链接小技巧:匹配问题不区分大小写,则将其全部转为小写.暴力匹配: 用strstr函数就能解决 I M N Z(枚举长度 三份)一.KMP算法解决单一模式串匹配问题.利用失配后原创 2015-03-15 10:56:56 · 867 阅读 · 0 评论 -
组合计数中的隔板法 HDU 1410 PK武林盟主
在排列组合中,对于将不可分辨的球装入到可以分辨的盒子中而求装入方法数的问题,常用隔板法。隔板法在排列组合中的应用技巧例1.求方程的正整数解的个数。[分析]将10个球排成一排,球与球之间形成9个空隙,将两个隔板插入这些空隙中(每空至多插一块隔板),规定由隔板分成的左、中、右三部分的球数分别为x、y、z之值(如下图)。则隔法与解的个数之间建立了一一对立关系,故解的个数为(个原创 2015-02-28 13:53:03 · 955 阅读 · 0 评论 -
HDU 3555 Bomb ,HDU 2089 深刻学习数位dp (各种方法乱用)
数位dp是与数位有关的区间统计 参考: 点击打开链接思想是将数字拆分,dp[i][j] 长度为i的数字有多少个满足j条件的,从000~999统计时,计当前数字为x,则其后面数字的变化的倍数是0~x-1 后面接000~999这样刚好统计不到这个数字n本身。eg:对于一个数,若其首位已经比询问上界小,则剩余位没有任何限制。此时如果能直接处理这一情况,则问题距离解决又会迈出一大步。原创 2014-12-26 09:14:16 · 734 阅读 · 0 评论 -
学习 LCA&&RMQ
参考:点击打开链接 点击打开链接 点击打开链接(一些总结) 点击打开链接(不错的模板)题目:点击打开链接花了4天时间做完了这个专题,LCA的问题用处还是很大,同时能体会RMQ的ST算法中dp的味道.基本方法就是ST,LCA转RMQ,LCA的Tarjan,LCA倍增(这个可存储边权)这个专题后面四道题都非常好,推荐大家做做.细节:1. ST方法2^i 包含自己,因此其真原创 2015-02-13 09:32:56 · 1048 阅读 · 0 评论 -
概率DP求期望入门,HDU 4405,POj 2096,HDU 3853
这两个题目的状态一个是一维的,另一个是二维的。刚开始做的是POJ 2096,我将HDU状态定义为dp[i][j] 走i步到j位置。HDU是个判定问题,是否走完。而那个是走到特定的两个状态下。HDU 4405裸概率题,dp[i]状态定义为从i走完的期望。对于飞行路线用个map,若有则直接等于了。。#include #include #include #include #in原创 2014-11-24 18:50:03 · 1547 阅读 · 0 评论 -
数位dp专题 (HDU 4352 3652 3709 4507 CodeForces 55D POJ 3252)
数位dp核心在于状态描述,因为阶段很简单。一般都是求有多少个数,当然也有求平方的变态题。因为比这个数小的范围定然是从左至右开始小的,那么什么样的前缀对后面子数有相同的结果?HDU 3652题意:求能被13整除且含有13这样数的个数。赤裸裸的两个条件,加上个pre标明下前缀,其实直接开状态也是一样的。整除这个条件可以用余数来表示。余数转移:(mod*10+i)%13/* **原创 2014-12-28 10:07:24 · 902 阅读 · 0 评论 -
长吐一口气~树形DP汇总(POJ 2486 3659 2342 1947 1463 hdu 2412 )
终于在考试前刷完了树形dp专题。树形dp其实相比于其他更简单,因为树本身就是无后向性的数据结构。关键在于每个节点状态的设计。POJ 2486 Apple Tree这道题如果可以不走回头路那么非常简单,因此#include #include #include using namespace std;#define N 105#define K 205#define ma原创 2014-12-22 10:36:47 · 696 阅读 · 0 评论 -
HDU 5147 BestCoder #23(树状数组区间 前缀和,后缀和)类似LA4329
类似LA43291..n个数字放到n个格子中,求四元组满足(a,b,c,d) a这道题刚开始看就知道要用树状数组去做,起先想的是枚举a,c 这样的话复杂度n^2 必然TLE而且a,c之间大于a的数字也无法统计。题解:枚举c点。然后得到c之前满足a,b的数量再乘上比c大的d 的数量就是枚举c此时的数量。这里用了一个子问题的技巧,当枚举c到i点的时候,i-1的情况已知,即存储原创 2014-12-21 08:55:17 · 813 阅读 · 0 评论 -
HDU 1166 敌兵布阵 (树状数组入门)
树状数组的引入:对于查询和修改要求差不多,使用树状数组可以达到logN的复杂度红色矩形表示的数组C就是树状数组.这里,C[i]表示A[i-2^k+1]到A[i]的和,而k则是i在二进制时末尾0的个数,或者说是i用2的幂方和表示时的最小指数。所谓的k,也是该节点在树中的高度.修改第i个元素,为了维护数组C的意义,需要修改C[i]以及C[i]的全部祖先,而非C[i]的祖先的节点则对原创 2014-08-30 10:47:45 · 911 阅读 · 0 评论 -
2014 ACM/ICPC Asia Regional Guangzhou Online Wang Xifeng's Little Plot HDU5024
一道好枚举+模拟题目。转换思维视角这道题是我做的,规模不大N但仔细一分析发现对每个点进行全部八个方向的遍历100X100X100^8 。100X100个点,每个点在走的时候8中选择,TLE于是改为另一个角度:以符合要求的点为拐弯点,朝两个垂直的方向走,求出最远的距离。这样只要对每个点各个方向的长度知道,组合一下对应的就OK。避免了每个点深搜。PS:搜索的时候x,y写原创 2014-09-20 22:18:10 · 1899 阅读 · 0 评论 -
ACM 容斥原理
VJ 点击打开链接参考 点击打开链接 非常好的译文:点击打开链接容斥原理的想法就是求多个集合的并集.所以要先设计好集合.组合数学问题中,正面解决会困难,常用方法是正难则反,使用容斥原理求反向在用全集减去.将对立面的限制条件分析清楚.eg 求区间互质的数的个数,则用除法等计算出一个数的倍数的方法再减去. UVa 11806 Cheerleaders求k个石子放原创 2015-02-08 08:57:35 · 6545 阅读 · 0 评论 -
基础DP 19道
VJ链接:点击打开链接基础DP做好了更有益~!从中得出几个结论:1. 背包问题所选的物品是没有相关性,是填充性质2. LIS问题是元素之间有某种关系(多个属性则先排序某个,在依据另一个LIS)3. TSP组合问题,一般进行状压,求元素的某种序题目:1. 最大M子段和这个很像多维背包问题,有个数限制。同时我们可以发现最后这个元素只能是 i个子段中最后一个子段原创 2015-03-09 10:47:39 · 673 阅读 · 0 评论 -
背包问题(恰好背满 二维背包) 总结
关键字:学习DP,背包问题似乎是永远绕不过去的原创 2014-11-05 09:30:26 · 1438 阅读 · 0 评论 -
二分图学习
图论中的难见就是建图然后套用算法。特点: 只能一一对应,即XX只能有一个人。 先来一个比较好的入门资料二分图最大匹配 参考 二分图建图方法 算法的思路是不停的找增广路径, 并增加匹配的个数,增广路径顾名思义是指一条可以使匹配数变多的路径,在匹配问题中,增广路径的表现形式是一条”交错路径”,也就是说这条由图的边组成的路径, 它的第一条边是目前还没有参与匹配的,第二条边参与了匹配,第三条原创 2015-06-03 10:34:24 · 737 阅读 · 0 评论 -
树链剖分学习
解决的问题 对于给出的树上两点求之间的最值或者更新操作变为logn。其他方法 Tarjan求LCA的复杂度为 O(N+Q)所以不断更新复杂度太高。本质: 就是将树划分为不重合的多条链每条链都有一个线段树中的编号(可类比dfs序转换线段树的想法)+线段树。在求的过程中根据重链不断逼近再用线段树维护即可。 入门文章 练习题目一般有对点建树和对边建树两种方案,看题目要求。对第几条边进行操作这种情况原创 2015-06-03 08:40:50 · 641 阅读 · 0 评论 -
单调队列 单调栈总结
单调队列单调栈应用范围:原创 2014-10-20 19:56:06 · 4749 阅读 · 0 评论 -
拓扑排序,树的直径模板(CF14D 枚举删边)
HDU4607 树的直径#include <stdio.h>#include <string.h>#include <iostream>#include <queue>#include <vector>using namespace std;#define N 100005#define INF 1<<30int n,dis[N],E;bool vis[N];vector<int原创 2015-05-27 08:57:15 · 905 阅读 · 0 评论 -
贪心专题
贪心: 原则是根据固定的一个或几个属性进行抉择.达到缩小规模的目的. split to steps and shrink scope reference最近做的几个贪心题目 hdu 1052(田忌赛马) 根据马的速度排序,然后两边最小值,最大值的判断.这样做是因为两端的选择是唯一的,TJ最弱的马/最强的如果可以战胜那就是最好的抉择,不然就让其去当炮灰.(减少规模)#include<set>原创 2015-05-15 19:14:35 · 967 阅读 · 0 评论 -
赛码"BestCoder"杯中国大学生程序设计冠军赛
渣渣一枚总共做了4个题目.先总结下吧.题目质量很高. 题目链接 1001 这个题目第一眼就是hdu之前的题目今年暑假不AC.只选三个,那么就是左右两边贪心取优.#include#include#include#include#define MOD 4294967296using namespace std;typedef unsigned int LL;int原创 2015-05-03 07:43:02 · 1278 阅读 · 0 评论 -
近期做的比赛题目
这几天就没做专题了,做了点比赛题目.发现基本的内容才最重要.JXUFE_上海邀请赛选拔赛 和大一的小朋友一起玩,其中有的题确实不错. 1. E 这个题目其实就是找规律,起初以为是要用到很复杂的数论知识.哎,做多了有恐惧感.#include#include#include#include#include#include#include#define EPS原创 2015-05-10 21:43:23 · 591 阅读 · 0 评论 -
字符串(2)- AC自动机
AC自动机,其实就是Trie树与KMP的结合,且有dfa(有限状态机)的性质.理解的关键点:1. fail指针 起到回溯作用2.每次匹配都是主串不动,移动指针now去回溯找后缀的前缀3.一个优化点,将NULL指向root 编码更简单.考察时一般也会问道dfa的性质.AC自动机解决问题:1.多模式串匹配2.给定一个长度,满足XX条件能构造多少个.ABCD原创 2015-03-18 13:05:02 · 639 阅读 · 0 评论 -
HDU 5194 DZY Loves Balls(期望可加性)
加深对期望的理解:这个题目真的需要对期望有很深的理解才可以.计算所有出现的期望,其实也就是计算每个位置上单个出现的期望.而我之前固化的思维是求出各种出现情况后再判断出现的次数Yes题意:有n个黑球m个白球,随意一个一个取出,取出黑球代表1,否则代表0,最后成为一个由1、0组成的序列。列举所有可能情况,然后求所有情况中有多少个01序列。假设有共有x个01序列,y种情况,最后输出x/y原创 2015-04-14 15:23:26 · 993 阅读 · 0 评论 -
LCS LIS LCIS 字符串编辑距离 专题
题目地址原创 2014-11-02 08:00:38 · 1035 阅读 · 0 评论 -
学习高斯消元
点击打开链接 习题 行列式高斯消元问题类型:用LCM 保持整型1. 基本的高斯消元,裸模板 HDU33592. 开关问题,用^操作代替 -, 求x[i]时候一样用* poj 1222 1830 17533. 枚举自由变元, return -1 是因为出现[0,0,0,0,a]这种情况,return 0 是唯一解,否则是有自由变元4. 取模方程 (a1*x1+原创 2015-03-03 14:13:18 · 717 阅读 · 0 评论 -
2014 ACM/ICPC Asia Regional Xi'an Online Ellipsoid 学习模拟退火随机算法
这是一个并行算法,很有效。先贴一个伪代码描述:/*引:http://www.cnblogs.com/heaad* J(y):在状态y时的评价函数值* Y(i):表示当前状态* Y(i+1):表示新的状态* r: 用于控制降温的快慢* T: 系统的温度,系统初始应该要处于一个高温的状态* T_min :温度的下限,若温度T达到T_min,则停止搜索*/whi原创 2014-09-17 21:48:55 · 1041 阅读 · 0 评论 -
HDU 1754 I Hate It(线段树,单点更新,线段查询)
这道题是线段树入门题,其问题是单点更新,线段查询。这里本来还打算用lazy标记做一下,但是不行,必须更新到单点#include #include #include #include #include #include #include #include #include #include #include #include #include using n原创 2014-10-19 10:01:39 · 689 阅读 · 0 评论 -
HDU 1007 最近点对
分治法求最近点对递归将点不断分成小组,计算最短距离。此时的最短距离仅仅是两点都属两块的某一块(这里的分割点是mid点)。还需要考虑两点分属两块的情况。这时对于选点则把范围缩小到了以mid为中心。再将距离mid点x轴2*mindist范围点考虑在内。在这些点中,再取mid点,留下那些y的距离不大于middist 的点进行距离计算。PS:刚开始min函数写错了,写成了max,一原创 2014-09-30 10:53:30 · 938 阅读 · 0 评论 -
HDU 4433 locker 2012 Asia Tianjin Regional Contest 状态压缩DP
题意:给出一个长度最长为1000的数字序列,像密码锁一样,你可以上下滑动,同时会0-9的循环。每次操作,最多对连续的三个数字操作。现在给出起始序列和目标序列,求出最少的操作次数,从起始序列到目标序列。想这道题花了一天的时间,我认为是道很难的DP。这个阶段很好划分,对于前面完成的密码锁就不再考虑。问题的关键是这个旋转每次可以的情况很多。同时也可以发现当I位置上确定移好后,至多影响到后原创 2014-10-16 15:37:09 · 1478 阅读 · 0 评论 -
2014 ACM/ICPC Asia Regional Beijing Online HDU 5040 Instrusive 优先队列
WA到死的一道题目。一个人从起点走到目标点。这个过程中有摄像头,摄像头的照射范围为两个单位长度,包括摄像头自己的位置。为了避免被照射到,可以有两种选择。在一个位置等待1S,或者坐在盒子里过去(花费3S),走一步花费1S。摄像头每秒顺时针转一次。1.4S有一个循环,所以每个位置vis[r][c][sec] 四种情况的最优解2.不用显示构图, 每个摄像头都记录一下四种情况3原创 2014-09-22 09:43:13 · 902 阅读 · 0 评论 -
2014 ACM/ICPC Asia Regional Xi'an Online 233 Matrix,hdu 5015
比赛的时候若是这题过了就进前50刚开始的时候大家的思路都以为是找规律的题目,于是再推公式,此外还发现类似于杨辉三角。于是又去套杨辉三角的通项去求。于是TLE了无数次。(每次取范围的最大值也要3s多)。对于明显的矩阵样子,其实可以转化为矩阵的运算,每一行的转移。就是对一个转移矩阵的幂运算。然后再用快速矩阵幂即可。A:10 0 0 110 1 0 110 1 1 1原创 2014-09-15 09:22:52 · 1157 阅读 · 0 评论 -
KMP模板
关于字符串的AC自动机,KMP,Trie树,后缀数组。KMP是基础。当一个字符串与模式串匹配的时,若失配,利用前面匹配的信息,利用三部分连等关系。可以滑动的“恰如其分”。Next数组的求法:若此时求的是next[i]的数值,j位置之前的与从i开始后j-1个字符都是匹配的,若s[i]==s[j] 那么next[++i]=++j; 若不相等可以j=next[j]滑动回去。OK,那么什么原创 2014-11-17 19:26:26 · 609 阅读 · 0 评论 -
HDU 1010 奇偶剪枝,scanf,getchar,gets,cin的区别
借此机会学习下gets,getchar,scanf 这几个函数在接收时的不同1.只有gets会把换行符接收,转化为字符串末尾的'\0',其他的不接收,将'\n'留在缓冲区中,所以之后的读取都会度'\n'2.scanf当读到空格,TAB就会结束,下次会从其后开始3.一般用scanf接收数据后,再用getchar把换行符去掉cin的输入忽略空格和回车所以以后的输入要求判原创 2014-10-11 16:59:42 · 668 阅读 · 0 评论 -
BestCoder Round #17 HDU 5100 5101 5102
这次被人hack了。先做的第二道题。刚开始想复杂了,想着用背包的方法去做。但是2^31规模不可以,看到输入只有1000多想着用离散化将数值范围转化为输入范围。但仍然不可以,因为是组合问题。于是换了个方法,用矩阵存储输入的数据,将每个班内部排序,这样每个人去后面的班级二分查找可以的人,直接得出。复杂度:n*n*m*logm转化为相反去求,先求两个人满足范围的(不考虑班级)完后减去班级原创 2014-11-08 22:24:02 · 851 阅读 · 0 评论 -
2014 鞍山 现场赛 E题题解
只说下本弱的失误。虽然一眼看出来了阶段的特征,但是在思考dp的时候还是被(x,y)+(y,z)这种形式的求解策略桎梏。应该转变视角再来看待这个问题,不然永远会被这种直观的思维桎梏 。(x,y)+(y,z)+......这种形式,每个点都只与前后两个sorce()有关,明显的阶段划分。当前i个的最大值已知,此时b[i+1]元素来了。死到这里了×由i状态与b[i]推导i+1状态原创 2014-10-23 12:08:12 · 756 阅读 · 0 评论 -
矩阵构造方法汇总(结合递推)
矩阵构造方法,这个是网络预赛被坑了以后才研究的。1.矩阵构造一般来看先明确要求哪些量,这些量构成一个列矩阵(一定要反映递推式中的各个)然后构造矩阵A去得到递推项他人的一个总结:点击打开链接 矩阵十题 二维图形几何变换矩阵的引例,Fibonacci数列f[n]=f[n-1]+f[n-2],f[1]=f[2]=1的第n项快速求法【f[n-2],f[n-1]】*原创 2014-10-18 11:18:15 · 3413 阅读 · 0 评论 -
HDU 1513 Palindrome 求回文串
这个题是走弯路了,刚开始自己DP出了方程,无限MLE,唉if(s1[i]==s1[j]) dp[i][j]=dp[i+1][j-1];else dp[i][j]=min(dp[i][j-1],dp[i+1][j]) +1;后来百度了一下,这个原来是个经典回文串问题,即先将串置反,然后求LCS........然后就是这题卡时间卡的特别厉害,多用了一次strlen就TLE原创 2014-11-01 15:23:16 · 804 阅读 · 0 评论 -
HDU 3535 背包综合
题意:给3种背包,一种是至少装一个,一种是最多装一个,一种任意。首先要对一维状态的原始背包很熟悉才可以。此处的i代表滚动的背包类型。1. 任意的话就是01背包 初始化:dp[i][j]=dp[i-1][j]. dp[i][j]=max{dp[i][j] , dp[i][ j-w[i] ]+v[i] } dp[i][j-w[i]] 存在.2. 最多原创 2014-11-09 13:36:08 · 646 阅读 · 0 评论 -
HDU 2546 饭卡( 变形01背包)两种思路
中文题:给你n个菜的价格,原创 2014-11-08 18:34:48 · 682 阅读 · 0 评论