摘要: 题目大意:将两个二进制数的GCD用二进制数表示出来。 题目分析:这道题可以用java中的大数类AC。 代码如下: 不过,也可以用二进制来求GCD。 gcd(a,b)=gcd(a/2,b/2)*2 (a,b均为偶数) gcd(a,b)=gcd(a,b/2) (a为奇数,b为偶数) gcd(a,b)=g 阅读全文
posted @ 2016-03-19 21:48 20143605 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 题目大意:n堆石子围成一圈,每堆石子的块数已知,每次可以将相邻的两堆合并到一堆,块数变为两堆之和,代价也为两堆石子块数之和。求合并到一堆的最小代价。 题目分析:先通过将前n-1依次个移到第n个后面,将环变成线。定义状态dp(i,j)表示将区间(i,j)的石子合并所需的最小代价,则状态转移方程为dp( 阅读全文
posted @ 2016-03-19 16:31 20143605 阅读(1620) 评论(0) 推荐(0) 编辑
摘要: 题目大意:将n个数分成m组,将每组的最大值与最小值的平方差加起来,求最小和。 题目分析:先对数排序。定义状态dp(i,j)表示前 j 个数分成 i 组得到的最小和,则状态转移方程为dp(i,j)=min(dp(i,k-1)+w(k,j)),其中w(i,j)=(a[i]-s[j])*(a[i]-a[j 阅读全文
posted @ 2016-03-19 11:12 20143605 阅读(423) 评论(0) 推荐(1) 编辑