原题:poj3061

题意:给你一个数s,再给出一个数组,要求你从中选出m个连续的数,m越小越好,且这m个数之和不小于s

这是一个二分查找优化题,那么区间是什么呢?当然是从1到数组长度了。比如数组长度为10,你先找5,去枚举每一个区间为5的连续的数,发现存在这样的数,那么就可以继续往左找,反之则往右找,直到左右区间重合,即为正确答案,(有可能是右区间小于左区间,所以每次都应该求区间中点值)

#include"iostream"
#include"set"
#include"cstring"
#include"cstdio"
#include"algorithm"
using namespace std;
const int maxn=100000+10;
int a[maxn];
long long sum[maxn];
int n,s;
bool guess(int c)
{
int temp;
for(int i=0;i<=n-c;i++)
{
temp=sum[c+i]-sum[i];
if(temp>=s) return true;
}
return false;
} int main()
{
while(cin>>n>>s)
{
sum[0]=0;
for(int i=0;i<n;i++)
{
cin>>a[i];
sum[i+1]=a[i]+sum[i];
}
if(sum[n]<s) cout<<0<<endl;
else
{
int l=0,r=n-1,m,ans=10000;
while(l<r)
{
m=(r+l)/2;
if(guess(m)) {r=m;}
else l=m+1;
}
m=(r+l)/2;
cout<<m<<endl;
}
}
return 0;
}

最新文章

  1. Linux环境安装Eclipse及配置hadoop插件
  2. 20140207 - Java and Mac OS X Retina
  3. 单选框的回显c:if
  4. wamp下Apache2.4.x局域网访问403的解决办法
  5. Android EditText截获与监听输入事件
  6. C++ 迭代器类别
  7. js标签放在html的什么位置比较好
  8. ***CI分页:为CodeIgniter写的分页类
  9. 浅谈JavaBean,Entity Bean,Enterprise Bean等Bean以及POJO的含义
  10. 解决cocos2d-X 2.0版本后创建的Android项目提示org.cocos2dx.lib.Cocos2dxActivity找不到问题
  11. UOJ 52 元旦激光炮
  12. 项目实践中--Git服务器的搭建与使用指南(转)
  13. myeclipse中,项目上有个叉报错,文件没有错误
  14. Git显示漂亮日志的小技巧
  15. gem install bundler
  16. 浅谈C#中的斐波拉契数列
  17. Java常用类(三)之StringBuffer与StringBuidler
  18. WPF自定义控件(二)の重写原生控件样式模板
  19. canvasJS
  20. Could not find method google() for arguments [] on repository container.

热门文章

  1. Python实现判断回文串
  2. bzoj2333[SCOI2011]棘手的操作 洛谷P3273 [SCOI2011]棘手的操作
  3. 题解报告:hdu 1235 统计同成绩学生人数
  4. OSW
  5. 怎么将ts文件快速合成一个文件
  6. vijos P1629八 容斥原理
  7. 用nowrap实现div内的元素不换行
  8. springmvc 的配置 annotation-config/annotation-drive/ component-scan 区别
  9. Java方法注释模板
  10. 最后一个非零数字(POJ 1604、POJ 1150、POJ 3406)