随笔分类 - ACM-HDU
            
    HDU 2255 二分图最佳匹配 模板题
    
            
            
        
摘要:题目大意:给定每一个人能支付的房子价值,每个人最多且必须拥有一套房子,问最后分配房子可得到的最大收益抄了个别人的KM模板,就这样了。。。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define ...
        阅读全文
            
        
            
    HDU 4087 三维上的平移缩放旋转矩阵变化
    
            
            
        
摘要:题目大意:就是根据它给的程序的要求,不断平移,缩放,旋转三维的点,最后计算出点的位置这里主要是要列出三种转换方式的齐次矩阵描述平移translate tx ty tz1 0 0 00 1 0 00 0 1 0txty tz 1缩放scale a b ca 0 0 00 b 0 00 0 c 00 0...
        阅读全文
            
        
            
    HDU 1358 简单kmp
    
            
            
        
摘要:题目大意:找到所有的可组成连续字符串相连的位置,和循环字符串的个数#include #include #include #include #include #include #include #include using namespace std;#define ll long long#defi...
        阅读全文
            
        
            
    HDU 3336 扩展kmp
    
            
            
        
摘要:题目大意:找到字符串中所有和前缀字符串相同的子串的个数对于这种前缀的问题,通常通过扩展kmp来解决其实吧这是我第一次做扩展kmp的题目,原来确实看过这个概念,今天突然做到,所以这个扩展kmp的模板是做到这道题直接copy的这里用扩展kmp很好解决问题,_next[i],表示第i位开始所能匹配到的最大...
        阅读全文
            
        
            
    HDU 4622 Reincarnation
    
            
            
        
摘要:题目大意:给定一个基础字符串,再给多个字符串,求出基础字符串中能得到的不一样的子串的个数未出现在后面多个字符串当中这里以基础子串构建后缀自动机是没问题的后面的多个子串不断在后缀自动机上进行匹配,每次到达一个状态点,就要更新当前点所能达到的其他字符串抵达最大长度mx,那么未能匹配的长度就是cur->l...
        阅读全文
            
        
            
    HDU 4622 求解区间字符串中的不同子串的个数
    
            
            
        
摘要:题目大意:给定一个长度l - p->f->l ),也就是以当前点为最后节点所能得到的与之前不重复的子串的个数那么这个问题就很好解决了,共2000个位置,以每一个位置为起点构建一次后缀自动机,一直构建到最后一个字符,过程中不断记录所能得到的子串个数把这个个数动态保存到f[][]数组中那么打好了表,最后...
        阅读全文
            
        
            
    HDU 4641
    
            
            
        
摘要:动态更新后缀自动机,每次不断依据当前添加的节点不断往前寻找父节点上字符串最多可出现的次数这里为了减少运算,当父节点已经达到k次就不在往前寻找,因为之前的必然达到k次,也已经统计在内 1 #include 2 #include 3 #include 4 5 using namespace st...
        阅读全文
            
        
            
    HDU 4821 字符串hash
    
            
            
        
摘要:题目大意:希望找到连续的长为m*l的子串,使得m个l长的子串每一个都不一样,问能找到多少个这样的子串简单的字符串hash,提前预处理出每一个长度为l的字符串的hash值 1 #include 2 #include 3 #include 4 #include 5 #include 6 #in...
        阅读全文
            
        
            
    HDU 5242 利用树链剖分思想进行贪心
    
            
            
        
摘要:题目大意:在给定带权值节点的树上从1开始不回头走到某个底端点后得到所有经过的点的权值后,这些点权值修改为0,到达底部后重新回到1,继续走,问走k次,最多能得到多少权值之和这其实就是相当于每一次都走权值最大的那一条路径,进行贪心k次首先先来想想树链剖分的时候的思想:重儿子表示这个儿子对应的子树的节点数...
        阅读全文
            
        
            
    HDU 5245
    
            
            
        
摘要:题目大意:每次随机选择两个点,便把这两个点之间形成的子矩阵上的每一个方块涂色,问随机选择k次,整个m*n的矩阵中有多少个小方块被涂上了颜色这道题不难,但自己智商实在捉急,一直想不出来。。。因为这里n,m 2 #include 3 #include 4 #include 5 #include ...
        阅读全文
            
        
            
    HDU 3973 线段树+字符串hash
    
            
            
        
摘要:题目大意:不断修改字符串中的字母,然后询问区间字符串是否处于已给定的字符串集合中这里将原来的字符串集合保存到hash表中,当然用map,set都没有问题修改查询都用线段树实现,自己的query函数写的有问题,按照网上的改了就没问题写一下自己的理解,因为左右子树合并的时候,需要计算右子树生成的字符串的...
        阅读全文
            
        
            
    HDU 4334 5-sum
    
            
            
        
摘要:题目大意:从5个集合中个选取一个数出来,使5个数相加之和为0,判断是否存在这种可能因为集合数目最多200,那么200^3 = 8000000,那么这里很明显要把5个数拆成2个和3个计算,因为3个的话有8000000种可能,不好保存所以只先算前两个数40000种相加的可能性保存到hash表中,然后再后...
        阅读全文
            
        
            
    HDU 4418 高斯消元解决概率期望
    
            
            
        
摘要:题目大意:一个人在n长的路径上走到底再往回,走i步停下来的概率为Pi ,求从起点开始到自己所希望的终点所走步数的数学期望因为每个位置都跟后m个位置的数学期望有关E[i] = sigma((E[i+j]+j)*P[j])我们需要将模型转化一下,本来路径为012345这样,因为来回走,我们多定义n-...
        阅读全文
            
        
            
    HDU 3932 模拟退火
    
            
            
        
摘要:HDU3932题目大意:给定一堆点,找到一个点的位置使这个点到所有点中的最大距离最小简单的模拟退火即可 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 9 using nam...
        阅读全文
            
        
            
    HDU 1426 dancing links解决数独问题
    
            
            
        
摘要:题目大意:这是一个最简单的数独填充题目,题目保证只能产生一种数独,所以这里的初始9宫格较为稠密,可以直接dfs也没有问题但最近练习dancinglinks,这类数据结构解决数独无疑效率会高很多dancinglinks的数独限制条件是:1.每行有9个元素,共9行对应dlx81列2.每列有9个元素,共9...
        阅读全文
            
        
            
    hdu 2295 dlx重复覆盖+二分答案
    
            
            
        
摘要:题目大意:有一堆雷达工作站,安放至多k个人在这些工作站中,找到一个最小的雷达监控半径可以使k个工作人所在的雷达工作站覆盖所有城市二分半径的答案,每次利用dlx的重复覆盖来判断这个答案是否正确 1 #include 2 #include 3 #include 4 #include 5...
        阅读全文
            
        
            
    HDU 1695 莫比乌斯反演
    
            
            
        
摘要:题目大意:从1~b中取一个数作为x , 1~d中取一个数作为y令gcd(x,y) = k 的取法有多少种这里我们可以用莫比乌斯函数来解决问题这里用到的公式是[gcd(x,y)==1] = Σ(del|gcd(x,y))mu(del)Σ(1 2 #include 3 #include 4 5 u...
        阅读全文
            
        
            
    HDU 1800 hash 找出现最多次数的字符串的次数
    
            
            
        
摘要:乘法hash:这类hash函数利用了乘法的不相关性int Hash(char *str){ int seed = 131 , value=0; while(*str != '\0'){ value = value*seed+(*str++); } return value&0x7fffffff;}这...
        阅读全文
            
        
            
    HDU1074 Doing Homework 状态压缩dp
    
            
            
        
摘要:题目大意:根据完成任务的截止时间,超时一天罚1分,求完成所有任务后的最小罚时这里n最大为15,可以利用状态压缩来解决问题 1 /* 2 首先要明白的一点是状态1/0分别表示这件事做了还是没做 3 而1/0的位置表示这是哪一件事 4 比如说 5 可以表示为101,那么表示第一个和第三个任务已经完成 5...
        阅读全文
            
        
            
    HDU1024 多段最大和 DP
    
            
    
摘要:题目大意:在n个数,求不重复的m段中的数据总和的最大值令dp[i][j]表示将前j个数分成 i 段时得到的最大值(必取到第 j 个数)状态转移可列为 dp[i][j]=Max(dp[i][j-1]+a[j] , Max( dp[i-1][k] ) + a[j] ) 0 2 #include 3 #...
        阅读全文
            
        
 
                    
                     
                    
                 
                    
                 
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号