codeforces B.Fence 解题报告
2013-11-19 16:09
120 查看
题目链接:http://codeforces.com/problemset/problem/363/B
题目意思:给定整数n和k,需要从n个数中找出连续的k个数之和最小,输出这连续的k个数中的第一个数的下标。
直接暴力果断TLE,于是想到之前做的那条332B - Maximum Absurdity DP题的做法,决定开多一个额外的数组b[],在输入的时候把a[i]中前i个数的和都记录到b[i]中,这样通过b[i] - b[i-k]即可得出序列h1, h2, ..., hn (1 ≤ hi ≤ 100) 所有连续的k个数之和。特别要注意,当i-k >= 0的时候才能进行相减的操作,防止数组下标越界。
还有另外mint 的设置要足够的大。考虑到 hi 最大为100,k最大为1.5·105, 即连续k个数的和最大为1.5 * 10^7 ,那么mint初始时要比这个数大,这里我设为100000000 。
题目意思:给定整数n和k,需要从n个数中找出连续的k个数之和最小,输出这连续的k个数中的第一个数的下标。
直接暴力果断TLE,于是想到之前做的那条332B - Maximum Absurdity DP题的做法,决定开多一个额外的数组b[],在输入的时候把a[i]中前i个数的和都记录到b[i]中,这样通过b[i] - b[i-k]即可得出序列h1, h2, ..., hn (1 ≤ hi ≤ 100) 所有连续的k个数之和。特别要注意,当i-k >= 0的时候才能进行相减的操作,防止数组下标越界。
还有另外mint 的设置要足够的大。考虑到 hi 最大为100,k最大为1.5·105, 即连续k个数的和最大为1.5 * 10^7 ,那么mint初始时要比这个数大,这里我设为100000000 。
#include <iostream> #include <cstdio> #include <cstdlib> using namespace std; const int maxn = 2 * 1e6; int a[maxn], b[maxn], s[maxn]; int main() { int i, k, n, mini, tmpi, mint, sum; while (scanf("%d%d", &n, &k) != EOF) { mint = 100000000; mini = 1; for (i = 1; i <= n; i++) { scanf("%d", &a[i]); if (i == 1) b[i] = a[i]; else b[i] = b[i-1] + a[i]; if (i-k >= 0) { sum = b[i] - b[i-k]; tmpi = i-k+1; if (sum < mint) // 每当当前的sum比mint小都要更新mini的值,表示sum里面中的第一个数的下标 { mint = sum; mini = tmpi; } } } printf("%d\n", mini); } return 0; }
相关文章推荐
- POJ 3126 Prime Path 解题报告(BFS & 双向BFS)
- CQUPT WEEKLY TRAINING (6)DIV2 解题报告
- 【LeetCode】443. String Compression 解题报告
- HDU1301 Jungle Roads 解题报告--prim
- LeetCode 122. Best Time to Buy and Sell Stock II 解题报告
- 【LeetCode】747. Largest Number At Least Twice of Others 解题报告
- SPOJ AMR12E Dyslexic Gollum 解题报告
- [COGS383]单向双轨道解题报告
- NOIP2013 积木大赛 解题报告(贪心)
- [Leetcode] 666. Path Sum IV 解题报告
- [codeforces解题报告]More Reclamation
- POJ 1979 解题报告
- noj 1001解题报告
- POJ 1942 Paths on a Grid 解题报告(double妙用)
- LeetCode: Symmetric Tree 解题报告
- LeetCode 387. First Unique Character in a String 解题报告
- 【LeetCode】121.Best Time to Buy and Sell Stock(Easy)解题报告
- POJ 3292 Semi-prime H-numbers 解题报告(筛选)
- 解题报告-南阳理工学院16级新生十一检测
- Codeforces Round #271 (Div. 2) 解题报告