POJ 3061 · Subsequence【子序列】【二分】
来源:互联网 发布:seo赚钱 编辑:程序博客网 时间:2024/05/17 20:33
【题意】
给定长度为n的数列整数
限制条件:
【提炼】
略。
【分析】
前提条件:所有元素都大于零。
要求:子序列
那么,为了方便求解,利用
立即推:
sum数组时间复杂度
利用二分搜索思想,当子序列的起点s确立后,遍历一遍用二分算法可求出序列和不小于S的结尾t的最小值。
【时间复杂度】
【代码】
/* coder: Tangent Chang date: 2017/5/9 I love coding.*/#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <string>#include <algorithm>using namespace std;const int maxn = 100005;int d[maxn];int sum[maxn];int main() { int T; scanf("%d", &T); while (T--) { int n, S; bool flag = 1; memset(sum, 0, sizeof(sum)); scanf("%d%d", &n, &S); for (int i = 0; i < n; ++i) { scanf("%d", &d[i]); sum[i + 1] = sum[i] + d[i]; } if (sum[n] < S) { flag = 0; } int t; int res = n; for (int s = 0; sum[s] + S <= sum[n]; ++s) { t = lower_bound(sum + s, sum + n, sum[s] + S) - sum; res = min(res, t - s); } if (flag) printf("%d\n", res); else printf("0\n"); } return 0;}
0 0
- POJ 3061 · Subsequence【子序列】【二分】
- POJ 3061 · Subsequence【子序列】【尺取法】
- poj 3061 Subsequence 二分
- Subsequence (二分)【POJ】-3061
- POJ 3061 Subsequence (迟取法_预处理,连续子序列)
- POJ No.3061-Subsequence(连续子序列)
- POJ 2533--Longest Ordered Subsequence【最长递增子序列 + 二分优化】
- poj Common Subsequence 最长公共子序列
- POJ 1458:Common Subsequence【最长子序列】
- POJ 3061 Subsequence (二分查找)
- 【POJ】3061---Subsequence(二分)
- poj 1458Common Subsequence(最长公公子序列)
- poj 2533 Longest Ordered Subsequence (最长子序列)
- poj-2533-Longest Ordered Subsequence-最长上升子序列
- poj 2533 Longest Ordered Subsequence(LIS(最长上升子序列))
- 最长公共子序列(LCS, Longest Common Subsequence), POJ 1458
- Poj 2533-Longest Ordered Subsequence(最长有序子序列)
- POJ 1458 Common Subsequence(求最长公共子序列)
- nodejs + multer 实现文件上传与下载
- Qt中QObject::sender()的用法
- LeetCode19. Remove Nth Node From End of List
- 设计模式之适配器模式Java实现
- win10 基本操作
- POJ 3061 · Subsequence【子序列】【二分】
- Spring学习九:自定义事件
- 530 Error: A secure connection is requiered(such as ssl). More information at http://service.mail.qq
- Python3 高阶函数
- Uninstalling will remove the application data
- 数据库强开第一弹
- iOS 组件化 —— 路由设计思路分析
- [编程之美-05]字符串转换成整数
- 进制转换