LA_2678 - Subsequence( 二分 )
来源:互联网 发布:apk软件编写 编辑:程序博客网 时间:2024/05/01 07:14
題意:一個序列S,其中的元素全部都是正整數,求最短連續的子序列,使得其和小於等於s分析:由於全部元素是正整數,設f[i]爲前i個的和,那麼f是遞增的f[j]-s >= f[i],其中i越大連續序列的長度越小,所以這裏可以使用二分求出i,時間複雜度O(nlogn).Code:#include <cstdio>#include <cstring>#include <map>#include <algorithm>using namespace std;#define MAXN 100000 + 10#define INF 0x3f3f3f3fint f[MAXN];int main(int argc, char **argv){#ifndef ONLINE_JUDGE freopen("test.in", "r", stdin);#endif int ans, n, s, v; while( ~scanf("%d %d", &n, &s) ) { ans = INF, f[0] = 0; for(int i = 1; i <= n; i ++) { scanf("%d", &v); f[i] = f[i-1]+v; int idx = lower_bound(f+1, f+i, f[i]-s)-f; if( 1 == idx ) { continue; } ans = min(ans, i-idx+1); } printf("%d\n", INF == ans? 0 : ans); } return 0;}
- LA_2678 - Subsequence( 二分 )
- Subsequence-二分
- Subsequence--二分查找
- UVa 2678 Subsequence / 二分
- uva1121 Subsequence 【二分】
- Subsequence 二分搜索
- poj 3061 Subsequence 二分
- Subsequence (二分)【POJ】-3061
- POJ 3061 Subsequence (二分查找)
- 【POJ】3061---Subsequence(二分)
- UVA1121 Subsequence 二分+前缀数组
- POJ 3061 Subsequence 二分或者尺取法
- POJ 3061 Subsequence 二分或者尺取法
- POJ 3061 Subsequence(二分/尺取法)
- POJ-2533 Longest Ordered Subsequence(二分)
- 【POJ】2061 - Subsequence(STL & 二分)
- Poj 3061 Subsequence(二分+前缀和)
- poj 3061 Subsequence(二分,尺取法)
- 第六次作业
- 如何修改ubuntu 的Grub来修改启动项
- 复制不完全和自我赋值问题
- 设计优秀API的五大规则
- 一语中的
- LA_2678 - Subsequence( 二分 )
- JAVA坏境变量中的JAVA_HOME path classpath 的设置与作用
- struts拦截器拦截ajax异步调用失败问题
- shell基础一
- DataGridView控件在VB.Net中的操作技巧
- Qt工程文件配置Features
- WideCharToMultiByte和MultiByteToWideChar函数的用法
- 作品:《奇迹mu之远航》
- Hadoop中的各种排序