士兵杀敌(二) n 116

摘要: 我理解的还不太到位,这个似乎是对数组的 分块 求和,利用c数组实现a数组的分块分层求和,复杂度降为log2N南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军经常想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。南将军的某次询问之后士兵i可能又杀敌q人,之后南将军再询问的时候,需要考虑到新增的杀敌数。输入只有一组测试数据第一行是两个整数N,M,其中N表示士兵的个数(1<N<1000000),M表示指令的条数。(1<M<100000)随后的一行是N个整数,ai表示第i号士兵杀敌数目。(0<=ai<=1 阅读全文
posted @ 2011-12-03 17:55 java课程设计例子 阅读(237) 评论(0) 推荐(0)

士兵杀敌(一) n 108

摘要: 尽量采用存前n项和的方法存储,可能其他方法会超时(我没有试),,,看到此篇推荐看士兵杀敌(二)#include<stdio.h> int a[1000010]; int main() { int N, M, num, i, from, to; scanf("%d%d", &N, &M); a[0] = 0; for(i=1;i<=N;i++) { scanf("%d", &num); a[i] = a[i-1] + num; } while(M--) { scanf("%d... 阅读全文
posted @ 2011-12-03 16:42 java课程设计例子 阅读(120) 评论(0) 推荐(0)

hdu 1421 搬寝室 dp问题

摘要: 以前虽然写过dp问题,但思想上过不去,觉得dp跟递归似乎是一样的,今天写过这道题后才顿悟:dp与递归不是一样的。状态方程dp[n][k]=min(dp[n-1][k],dp[n-2][k-1]+(w[i]-w[j])^2);唉,终于发现思想上有所改变了,不过代码实现能力不足,在对dp[]数组初始化的问题上浪费了n多精力和时间(当然浪费这么多精力也因事先没考虑好初始化后会有的漏洞),嗯,加点注释#include<stdio.h> #include<stdlib.h> #include<string.h> #include<limits.h> int 阅读全文
posted @ 2011-12-03 11:27 java课程设计例子 阅读(123) 评论(0) 推荐(0)