B. Fence----前缀和
来源:互联网 发布:apache common实现orm 编辑:程序博客网 时间:2024/06/09 03:07
There is a fence in front of Polycarpus's home. The fence consists of n planks of the same width which go one after another from left to right. The height of the i-th plank is hi meters, distinct planks can have distinct heights.
Polycarpus has bought a posh piano and is thinking about how to get it into the house. In order to carry out his plan, he needs to take exactly k consecutive planks from the fence. Higher planks are harder to tear off the fence, so Polycarpus wants to find such kconsecutive planks that the sum of their heights is minimal possible.
Write the program that finds the indexes of k consecutive planks with minimal total height. Pay attention, the fence is not around Polycarpus's home, it is in front of home (in other words, the fence isn't cyclic).
The first line of the input contains integers n and k (1 ≤ n ≤ 1.5·105, 1 ≤ k ≤ n) — the number of planks in the fence and the width of the hole for the piano. The second line contains the sequence of integers h1, h2, ..., hn (1 ≤ hi ≤ 100), where hi is the height of the i-th plank of the fence.
Print such integer j that the sum of the heights of planks j, j + 1, ..., j + k - 1 is the minimum possible. If there are multiple such j's, print any of them.
7 31 2 6 1 1 7 1
3
In the sample, your task is to find three consecutive planks with the minimum sum of heights. In the given case three planks with indexes 3, 4 and 5 have the required attribute, their total height is 8.
题目链接:http://codeforces.com/contest/363/problem/B
题目的意思是说让你找出连续的一段最小的和,输出其起始下标。
我们根据数据范围直接可以看出暴力是不可以的,很显然,我们可以用前缀和去记录。
代码:
#include <cstdio>#include <cstring>#include <iostream>#define inf 0x3f3f3f3fusing namespace std;int a[300000];int main(){ int n,k; scanf("%d%d",&n,&k); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); a[i]+=a[i-1]; } int ans=1; int mix=inf; for(int i=k;i<=n;i++){ //printf("%d %d\n",a[i]-a[i-k],mix); if(a[i]-a[i-k]<mix){ ans=i-k+1; mix=a[i]-a[i-k]; } } cout<<ans<<endl; return 0;}
- B. Fence----前缀和
- B. Fence
- B. Fence
- CF-608B 前缀和
- CodeForces 738B - Spotlights(前缀和)
- CSU1642-Problem B-前缀和数组/模拟
- codeforces835 b贪心 c 二维前缀和
- Wannafly挑战赛1 B Xorto 前缀和
- Codeforces 816B (前缀和算法)
- CF 363B Fence(和最小的k个数)
- codeforces #145 B Fence
- CodeForces - 363B Fence
- CodeForces 363B - Fence
- Codeforces 363B Fence
- codeforces 363B Fence
- (Codeforces 873B)B. Balanced Substring [前缀和]+思维
- 洛谷Oj-A % B Problem-前缀和(部分和)
- Gym 100712B Rock-Paper-Scissors (前缀和维护)
- Android下对接Java写的WebServer接口的实现
- 【腾讯TMQ】米少熬好粥——数据有限时怎样调优深度学习模型
- SSM开发初体验
- 程序员技术人生思考
- jQuery选择器
- B. Fence----前缀和
- mysql-5.6安装+Percona 监控
- 重放攻击(Replay Attacks)[转载]
- linux 内核修炼之道——系统调用
- INF文件在批处理中的应用
- LeNet-5模型详解及其TensorFlow代码实现
- 部分总结
- spring拦截器
- Angular 基础部分 1.2 创建投票网站