摘要:
http://codeforces.com/problemset/problem/149/D 题意: 给一个给定括号序列,给该括号上色,上色有三个要求 1、只有三种上色方案,不上色,上红色,上蓝色 2、每对括号必须只能给其中的一个上色 3、相邻的两个不能上同色,可以都不上色 求0-len-1这一区间 阅读全文
摘要:
输出一个串里面能匹配的括号数 状态转移方程: if(s[i]=='('&&s[j]==')'||s[i]=='['&&s[j]==']') dp[i][j]=dp[i+1][j-1]+2; 然后再区间合并 阅读全文
摘要:
题意:切一个凸边行,如果不是凸包直接输出。然后输出最小代价的切割费用,把凸包都切割成三角形。 先判断是否是凸包,然后用三角形优化。 dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+w[i][k]+w[j][k]); w[i][j]代表i到j点的切割费用。 dp[i][ 阅读全文
摘要:
【动态规划】凸多边形最优三角剖分 枚举三角行,再递归三角形旁边的两个多边形。 【动态规划】凸多边形最优三角剖分 枚举三角行,再递归三角形旁边的两个多边形。 阅读全文
摘要:
dp[i]][j]=min(dp[i+1][j]+1,dp[i+1][k-1]+dp[k][j]) 表示第i天到j的最小数量。如果第i天的衣服只自己穿的话,不考虑后面的就是dp[i][j]=dp[i+1][j]+1.否则就是dp[i][j]=dp[i+1][k-1]+dp[k][j],其中第k天的衣 阅读全文
摘要:
石子合并(GarsiaWachs算法) 只能用该算法过!!! 详解看代码 1 //#pragma comment(linker, "/STACK:167772160")//手动扩栈~~~~hdu 用c++交 2 #include<cstdio> 3 #include<cstring> 4 #incl 阅读全文
摘要:
状态转移方程在代码中标出 本题注意是圆形,所以之前要预先处理一下s数组。处理之后总长度为2*n-1.第一个合并的起点有n个,所以总的方案数是n 注释在代码中标出 http://www.rqnoj.cn/problem/490 石子合并问题推荐几篇很好的文章 http://blog.csdn.net/ 阅读全文
摘要:
思路:a/n*b/n=lcm/gcd 所以这道题就是分解ans.dfs枚举每种素数情况。套Miller_Rabin和pollard_rho模板 1 //#pragma comment(linker, "/STACK:167772160")//手动扩栈~~~~hdu 用c++交 2 #include< 阅读全文
摘要:
Miller_Rabin就是以概论大小来判断素数 可以判断2^63范围的数 pollard_rho推荐两个很好的博客来理解:整数分解费马方法以及Pollard rho和[ZZ]Pollard Rho算法思想 1 //#pragma comment(linker, "/STACK:167772160" 阅读全文
摘要:
Tree2cycle dfs 不是根节点:如果边数大于等于2,则删除与父节点的边。并且是一条环,那么每个点的度数是2,则还要删除num(每个节点儿子数)-2,只留两个儿子。当然删除边的儿子也要连到环上,又是一个num(每个节点儿子数)-2次操作。最后不同分支之间还要连一条边。所以复杂度为:2*(nu 阅读全文