题意:给定你一条直线,直线上面有n个点,你可以移动k个点,求所有点到重心距离的平方和最小值为多少。解题思路:这里可以知道 保持一段不移动然后把所有的点都移动到这一段的重心才是最优解,那我们很容易想到枚举这一段的端点,但是如果枚举端点,时间复杂度会高达n^2,所以我们要知道区间之间的关系,假设 lsu...
分类:
其他好文 时间:
2014-10-22 20:07:49
阅读次数:
258
题目大意:总共有0~10个位置,gameboy站在5的位置上。给你馅饼
掉落的时间的位置。gameboy每秒只能到自己位置临近的位置接馅饼。
比如在5的位置上只能接到4 5 6的馅饼。在7的位置上只能接到 6 7 8的
馅饼。问gameboy最后最多能接到多少馅饼。
思路:动态规划的思想。
将位置整体右移一个单位。位置为1~11。这样方便计算。
建立二维数组。一维代表时间,二维代表位置。点上的值代表馅饼的个数。
按时间顺序存储馅饼个数。
最后从底往上递推。每次比较馅饼位置i和馅饼位置i-1和馅饼位置i+1的...
分类:
其他好文 时间:
2014-10-22 10:05:37
阅读次数:
216
现在要把这几种常见的算法给理清弄明白了,要不然只能做个低级程序员了。
动态规划DP是求解决策过程的最优化的数学方式。动态规划一般分为线性动规,区域动规,树形动规,背包动规。
动态规划是一种方法,但不是一种算法,一般用于多决策中的最优化问题,具有递推的思想。动态规划与分治法类似,基本思想都是把待解问题分解成若干个子问题,先求解子问题,然后由这些子问题的解得到原问题的解。但分治法中分解得到...
分类:
其他好文 时间:
2014-10-21 21:35:23
阅读次数:
214
描述 Description给定一个整数n,求一个整数m,满足mn,输出前一个。因为保证最小所以只乘一次,因为p/(p-1)单调减,所以从小的开始选。高精度写错搞了好久,然后有卡了几次时才过了代码: 1 #include 2 3 #include 4 5 #include 6 7...
分类:
其他好文 时间:
2014-10-21 16:58:38
阅读次数:
179
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5015
题目大意:给你一个n*m(n
解题思路:由于n较小,所以我们可以一列一列的推,即矩阵递推如下:
/**
本题是一个n * m的矩阵(m比较大)
a[0][1]=233 a[0][2]=2333 ...
a[1][0] a[1][1]...
分类:
其他好文 时间:
2014-10-21 10:26:49
阅读次数:
203
容易得出简单的递推方程如下
f[i] = min{f[j] + sum[i] - sum[j] - (i-j) *x[j+1] }
然后发现复杂度太高
这时可以看出是一个比较经典的斜率优化
f[i] = min{f[j] +j *x[j+1] -sum[j] -i *x[j+1]} +sum[i]
按照http://blog.csdn.net/sdj22...
分类:
其他好文 时间:
2014-10-21 01:08:17
阅读次数:
174
减一技术,与二分搜索一样,是一种通用算法设计技术。它是分治法的一种特殊形式,通过建立问题实例P(n) 与问题实例P(n-1)的递推求解关系式而实现;最经典的例子莫过于插入排序了。这里,给出减一技术在生成排列组合方面的应用。(一) 排列问题: 生成自然数 1,2,,,,,n 的所有排列。算法描述:使用...
分类:
编程语言 时间:
2014-10-20 20:57:13
阅读次数:
204
http://acm.hdu.edu.cn/showproblem.php?pid=4474
如果A%n ==B %n (A
犯得二逼错误:
1、需要记录每一位,不是mod%10就是每一位
2、第一位枚举1~9,但是仍然需要%n
3、必然需要高精度,开始ll WA到死
#include
#include
#include
#include
using namespace s...
分类:
其他好文 时间:
2014-10-20 17:17:57
阅读次数:
251
第一题:题目大意:求由N个1,M个0组成的排列的个数,要求在排列的任意一个前缀中,1的个数不少于0的个数。N,M<=5000。解题过程:1.看到N,M的范围就明确肯定不会是dp,因为起码要用二维表示状态,就算转移是O(1),也要5000*5000的时间,况且还要高精度,绝对超时。2.于是想到可以根据...
分类:
其他好文 时间:
2014-10-20 17:03:16
阅读次数:
249
http://acm.nyist.net/JudgeOnline/problem.php?pid=737石子归并:先枚举要合并的区间长,然后枚举相应的区间左端点,最后枚举区间中间的划分点,这样,就可以由小到大递推解决区间问题了。转移方程:dp[i][j]=min(dp[i][j],dp[i][k]+...
分类:
其他好文 时间:
2014-10-20 09:50:04
阅读次数:
249