混沌DM

DM Hunter

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

摘要: 题目意思: 给定n, expect, a, b 要求你构造一组array[],存放一个1..n的排列,使的下面的程序能输出YES 题目所示代码: 1 bool less_than(x, y) { 2 T++; 3 return x = r) return; 7 swap(array[(l * A + r * B) / (A + B)], array[r]); 8 int index = l; 9 for (i = l; i 1当然根据经验得到,i应该是取x/2的时候最好,跑了一下,mi数组也确实没变。。当然跑n^2的应该时间也够。而且实际上... 阅读全文
posted @ 2013-09-22 23:13 混沌DM 阅读(631) 评论(2) 推荐(2) 编辑

2014年8月4日

摘要: 首先 m = 1 时 ans = 0对于 m > 1 的 情况 由于 1 到 m-1 中所有和m互质的数字,在 对m的乘法取模 运算上形成了群 ai = ( 1 2的情况,只需求a^2 = 1 (mod m)的解的个数是不是4的倍数a^2 = 1 (mod m) 等价变换(a + 1)(a -... 阅读全文
posted @ 2014-08-04 13:05 混沌DM 阅读(478) 评论(0) 推荐(2) 编辑

2013年9月18日

摘要: 比赛的时候就预感到这题能出,但是会耗时比较多。结果最后是出了,但是有更简单的题没出。是不是错误的决策呢?谁知道呢题目意思: 定义f(x) = x分解质因数出来的因子个数 如 x = p0 * p0 * p0 * p1 * p2,则f(x) = 5 特殊的, f(1) = 0 求 i = [1..n], j = [1..m]组成的n*m组(i, j)对中,有多少组f( gcd(i,j) ) = p? 0 : 1 )喜闻乐见,形如for(i = 1;i18时,答案就为n*m代码如下: 1 #include 2 #include 3 #include 4 #include 5... 阅读全文
posted @ 2013-09-18 15:32 混沌DM 阅读(1197) 评论(0) 推荐(0) 编辑

2013年7月12日

摘要: 首先要感谢叉姐的指导Orz这一类问题的DP方程都有如下形式dp[i] = w(i) + max/min(a(i)*b(j) + c(j)) ( 0 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 typede... 阅读全文
posted @ 2013-07-12 14:21 混沌DM 阅读(479) 评论(0) 推荐(0) 编辑

2013年4月29日

摘要: 写感想的时候,距离比赛结束已经快有两个星期了。不过,比赛时的细节,到现在也还是能完全回忆起来,是因为这是第一次做项目啊!哪怕以后再有机会参加项目,或者再有机会参加腾讯编程马拉松,恐怕都不会有这次这么多的感触吧。 其实一开始,还是有点害怕参加的。虽然说代码量不算少,但是项目经验为0,哪怕就说ACM来说,也完全不能和到现场的大牛相比。但是想到能和大牛见面,一起做项目,特别是听说有各种零食全程供应!!哪怕死的很难看也是值了!然后就抱着必死的决心去了。进区域决赛是运气,幸好好奇心杀死猫,不然没参加比赛的话,真的将是莫大的遗憾!因为除了比赛之外,哪怕只是去了一次腾讯,也让我从一个不同的角度认识了腾讯公. 阅读全文
posted @ 2013-04-29 00:53 混沌DM 阅读(2307) 评论(0) 推荐(0) 编辑

2013年3月22日

摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4512题目意思:给定一个序列,求最长回文子序列,满足从中点到两端依次递减。先看LCIS最长公共上升子序列。 dp[i]表示当前以下标i结束的最长公共上升子序列。我们让第一个序列为原序列,第二个序列为原系列的反向。则,也就是说,第二个序列的顺序为原序列的下标[n-1,0],设为j当j枚举到k时,对于dp[0] ~ dp[k-1],都可以得到原序列的一个长度为2*dp[i]的题目要求的子序列。可是对于,dp[k],我们怎么判断此时,两个序列是否存在交集呢?假如存在交集,此时题目要求的子序列长度为2*dp[k] . 阅读全文
posted @ 2013-03-22 23:16 混沌DM 阅读(854) 评论(3) 推荐(1) 编辑

2013年2月6日

摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4483题目意思: 给定一个n*n的广场,问选取三个整点构成三角形的方案数。今天做hust的练习赛的时候,碰到了UVALive3295,是求n*m的矩阵上的方案数。不过那题n,m没这题大。然后就讲到这题,就做了一下,还是很神奇的一题。整体思路:总方案数 - 三点成线方案数。n*n的矩阵,整点数为(n+1)*(n+1),以下讨论,直接另n = n+1总方案数C(n*n, 3)三点构成的线与坐标轴平行,C(n, 3)*n*2本题重点就在求三点成斜线的方案数。我们来这么考虑三个点,让三个点的横坐标依次增大把旁边两个. 阅读全文
posted @ 2013-02-06 21:09 混沌DM 阅读(388) 评论(0) 推荐(0) 编辑

2013年2月3日

摘要: http://codeforces.com/contest/269/problem/B题目意思 n颗植物,种类有m种。种在一个长度无限的实数轴上。 现在可以通过改变一些植物的坐标,使得最后所有植物的种类沿x轴正方向为不下降序列。 求最少要改变多少植物的位置。解法一: 这是我现场的解法,复杂度O(n*m) dp[i][j],表示到第j颗植物,使其以种类i结尾,最少需要改变的数量。 dp[1][j],特殊算出。 dp[i][0] = 0 dp[i][j]=min(dp[i-1][k]+sum[j][i]-sum[k][i])| 0<=k<=j) = min(dp[i-1][k] -.. 阅读全文
posted @ 2013-02-03 23:05 混沌DM 阅读(402) 评论(0) 推荐(0) 编辑

2013年1月21日

摘要: http://codeforces.com/problemset/problem/264/C题目意思: n个小球排成一列,每个小球有两个属性:颜色ci,权值vi 然后有q次询问,每次给出两个整数a和b 求一个权值最大的小球子序列: 一个序列的权值这样计算: 当一个小球前面有小球,且颜色相同时,权值为a*vi 否则为b*vi 序列的权值为所有小球权值之和。 长度为0的序列权值视为0,所以本题答案至少为0很容易写出状态转移方程dp[i]表示以小球i结束的序列的最大权值dp[i] = max( max(dp[j] + (ci == cj?a:b)*vi) (0<=j<... 阅读全文
posted @ 2013-01-21 20:07 混沌DM 阅读(474) 评论(0) 推荐(0) 编辑

摘要: http://codeforces.com/problemset/problem/264/B题目意思 给定一个上升子序列,要你求一个最长子序列的长度,满足任意相邻两项均不互质。首先注意一下,长度至少为1,而且当长度为1时,序列 1 也是可以的。虽然1与任何数都互质,但长度为1的序列没有任意相邻两项,不过好在这组数据一开始就在测试数据中。不然这题的hack就要精彩很多了。首先很容易想到n^2的DP,dp[j]表示以第j个数结尾的序列的最长长度。 dp[j] = max(dp[k] + 1, 0<=k<j && gcd(num[k], num[j])>1)大量的工 阅读全文
posted @ 2013-01-21 19:36 混沌DM 阅读(472) 评论(0) 推荐(0) 编辑