随笔分类 - acm模板
摘要:题目链接:https://vjudge.net/problem/HDU-5977 题意:给一颗树,每个结点上有一个权值a[i],a[i]<=10,求有多少条路径满足这条路径上所有权值的结点都出现了。 思路: 首先利用二进制的思想,将a[i]转化为1<<(a[i]-1)。我们在子树中,计算出结点到重心
        阅读全文
                
摘要:点分治的写法1: 题目链接:https://www.luogu.org/problem/P3806 题意:给出一颗带边权的树,结点数n<=1e4,每条边有权值<=1e4,有m组询问(m<=100),每组询问为一个k,表示是否存在一条路经长度为k,存在输出AYE,不存在输出NAY。 思路:点分治模板题
        阅读全文
                
摘要:题目链接:https://vjudge.net/problem/POJ-3252 题意:求[l,r]之间的Round Number数,RN数即化为二进制后0的个数不少于1的个数的数。 思路:之前用组合数求写过,最近学数位dp,又用数位dp来写一次。用dp[pos][n0][n1]表示长为pos+1的
        阅读全文
                
摘要:LCS--Longest Common Subsequence,即最长公共子序列,一般使用DP来解。 常规方法: dp[i][j]表示字符串s1前i个字符组成的字符串与s2前j个字符组成的字符串的LCS的长度,则当s1[i-1]==s2[j-1]时,dp[i][j]=dp[i-1][j-1]+1,否
        阅读全文
                
摘要:题目链接:http://poj.org/problem?id=1631 这个题题目有些难看懂hhh,但实质就是求LIS--longest increasing sequence。 以下介绍LIS的解法模板: 一.O(n^2)解法 用a数组存储数据,f[i]表示以a[i] 结尾的最长子序列的长度,这样
        阅读全文
                
摘要:在位数很大到超过long long的大小的时候需要使用高精度,即使用数组存储数,并模拟数的运算和进位。当然会java,python的可以学一学它自带的函数,十分方便。 附上加减乘除的代码:
        阅读全文
                
 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号