随笔分类 - ACM-CSU
CSU 1325 莫比乌斯反演
摘要:题目大意:一、有多少个有序数对(x,y)满足1 2 #include 3 #include 4 #include 5 6 using namespace std; 7 #define ll long long 8 #define N 10005 9 #define M 1000000010 ...
阅读全文
COJ 1287 求匹配串在模式串中出现的次数
摘要:这里要在后缀自动机的节点中维护一个从到达当前位置出现的字符串总个数这里新添加进来的节点的状态出现的次数必然为1另外包含所能达到这个节点所能到达的状态一定是将它作为父亲的点那么说明将它作为父亲的点添加进来一定会使它的所有父亲状态数都+1所以直接在添加节点结束后不断向上更新 1 #include 2 ...
阅读全文
COJ 1208 矩阵快速幂DP
摘要:题目大意:f(i)是一个斐波那契数列,求sum(f(i)^k)的总和由于n极大,所以考虑矩阵快速幂加速我们要求解最后的sum[n]首先我们需要思考sum[n] = sum[n-1] + f(i+1)^k那么很显然sum[n-1]是矩阵中的一个元素块那么f(i+1)^k怎么利用f(i) , f(i...
阅读全文
CSU 1605 数独
摘要:题目大意:9宫格每个位置都有对应的分数,填完数独后根据对应位置的分数相加之和求个最大值,不存在输出-1说什么用位运算加速可以解决问题,但是对着标程还是T,最近学了dlx,发现这样解决数独快了很多位运算加速我确实写不出了,直接用dlx来做这道题目 1 #include 2 #include ...
阅读全文
COJ 1211 大整数开平方
摘要:手写求大整数开根号所得到的值,具体计算过程参考别人的资料,最后利用java的大整数得到答案别人博客链接:http://www.cnblogs.com/Rinyo/archive/2012/12/16/2820450.html1.举例上式意为65536的开平方为256。手开方过程类似于除法计算。为了方...
阅读全文
CSU 1554 SG Value (集合类的学习)
摘要:题目大意:2种操作1 a:往集合中添加一个元素a2: 询问这个集合中的元素任意组合相加所不能得到的最小数的值这道题总是不断地去找当前所能处的最小值能否被当前的最小值加上其前部的一堆可抵达数到达当前位置也就是 minn Set、multiset都是集合类,差别在与set中不允许有重复元素,multis...
阅读全文
CSUOJ 1542 线段树解决括号反向问题
摘要:题目大意:根据初始给定的合法的小括号排序,每次进行一个操作,将第a位的括号反向,找到一个尽可能靠前的括号反向后是整个括号排列合法数据量十分大,不断进行查询,要用线段树进行logn的复杂度的查询首先最简单的考虑 '('->')' , 稍微想一下可以知道因为要尽可能靠前,所以其实把最前面的那个 )改成 ...
阅读全文
COJ 1163 乘法逆元的求解
摘要:乘法逆元就是求一个 a/b = c(mod m)在已知a%m , b%m 的条件下 求c的解 1 #include 2 #include 3 4 using namespace std; 5 #define ll long long 6 const int N = 100005; 7 int ...
阅读全文
COJ 1351 Tree Counting 动态规划
摘要:题目大意是:给定一个n,k,表示树上共有n个节点,每个节点最多有k个叶子,问一共多少种摆法,答案对1000000007取模这里定义一个dp[i]表示 i 个节点对应有多少种方法f[i][j] 表示一个除去顶点的树中,这个顶点延伸出 j 个子树 , 这j个子树中共有i 个点那么只要在f[i][j]上添...
阅读全文
COJ 1156 Switching bulbs
摘要:一道模拟题目对于所有0 还是 1 我们都可以想象做均为 0 的状态v[i]表示原来的值但是对于原来为1的要加上其所在的值作为初始值然后转化后 a[i] = -v[i] , 如果原来为0 , 那就直接赋值我们总是希望将尽可能大的值先加 ,所以将a由大到小排个序 , 一直加到负数的时候需要考虑这个负数取...
阅读全文
浙公网安备 33010602011771号