UVa 2678 Subsequence / 二分
来源:互联网 发布:lvs和nginx的区别 编辑:程序博客网 时间:2024/04/30 21:18
求长度最短的连续序列 它的和大于等于s 输出长度
枚举起点和终点会超时
求出前缀和 都是正整数 所以前缀和是递增的
如果对于前缀和 sum[i]要使得长度最小 那么应该找出最大的j 使得 sum[i]-sum[j]>=s sum[j] <= sum[i]-s 即二分sum[i]-s 找到最大的sum[j]
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 100010;int a[maxn];int sum[maxn];int main(){int n, s;while(scanf("%d %d", &n, &s) ==2 ){for(int i = 1; i <= n; i++){scanf("%d", &a[i]);sum[i] = sum[i-1] + a[i];}int ans = n+1;for(int i = 1; i <= n; i++){int l = 0;int r = i;int k = sum[i] - s;if(k < 0)continue;while(l <= r){int m = (l + r) >> 1;if(sum[m] <= k)l = m + 1;elser = m - 1;}ans = min(ans, i-l+1);}if(ans == n+1)ans = 0;printf("%d\n", ans);}return 0;}
0 0
- UVa 2678 Subsequence / 二分
- UVA live 2678 - Subsequence
- LA 2678 UVA 1121 - Subsequence
- Uva 1121 Subsequence(前缀和+二分找下界)
- Subsequence-二分
- Subsequence--二分查找
- LA_2678 - Subsequence( 二分 )
- uva1121 Subsequence 【二分】
- Subsequence 二分搜索
- poj 3061 Subsequence 二分
- Subsequence (二分)【POJ】-3061
- UVA 10069 Distinct Subsequence
- Uva-1121-Subsequence
- uva 1121 - Subsequence
- UVA 11654Arithmetic Subsequence
- UVA 11404 Palindromic Subsequence
- UVA 11404 Palindromic Subsequence
- UVA 11404 Palindromic Subsequence
- all about Oracle memory - Oracle的内存架构组成
- Cubieboard安装Debian在Nand中
- 为Cubieboard打造完美Debian系统
- c# [ImportDll()] 知识小结
- Hadoop 权限管理
- UVa 2678 Subsequence / 二分
- Clover
- android Suspicious method call; should probably call "draw" rather than "onDraw"
- uva 10755 - Garbage Heap(最大和问题)
- HBase设计与开发性能优化
- 书本例子strindex函数
- Flex 读写xml文件的方法_Flex
- poj2923 状压记忆化搜索
- 第四届(2013年十月)福建省大学生程序设计竞赛