摘要: 题目大意:给一个矩阵,找出一个元素之和最大的子矩阵。 可以暴力枚举,不过是时间复杂度是O(n6),通过利用一个sum数组保存已计算的和可以提高效率(sum[i][j]保存从矩阵左上角到m[i][j]的所有元素和),把时间复杂度降为O(n4),都说这是DP,可是我怎么感觉不出来?对DP理解不够深刻的原因吗? 1 #include 2 #define MAXN 105 3 4 int a[MAXN][MAXN], sum[MAXN][MAXN]; 5 6 int main() 7 { 8 #ifdef LOCAL 9 freopen("in", "r", s 阅读全文
posted @ 2013-08-16 20:53 xiaobaibuhei 阅读(395) 评论(0) 推荐(0)
摘要: 题目大意:给出一些点,找到一个位置使这个位置到所有的点的距离的和最短。 很明显,排序,找中位数。关于中位数:有n个从小到大的数,k=(n+1)/2,若n为奇数,k为中位数,若n为偶数,k为中间那两个数中左侧的数。在c语言中,数组以0开始,中位数可以表示为k=(n-1)/2。 1 #include 2 #include 3 #include 4 using namespace std; 5 #define MAXN 500+10 6 7 int a[MAXN]; 8 9 int main()10 {11 #ifdef LOCAL12 freopen("in", "r 阅读全文
posted @ 2013-08-16 19:44 xiaobaibuhei 阅读(330) 评论(0) 推荐(0)