【t083】买票
来源:互联网 发布:java短信发送验证代码 编辑:程序博客网 时间:2024/05/02 00:34
【题目链接】:http://noi.qz5z.com/viewtask.asp?id=t083
【题解】
可以看一下;
钱数很小;
最大才10000;
即使每张票都是1元;
最多也只能买10000张票;
于是考虑二分最后连续的票数m;
如果存在连续m张票的和小于等于f;
就增大m;否则减小m;
这里判断有没有m张票的和小于等于f需要趋近于O(N)的复杂度;
所以最坏就是
O(log2(f)*N)吧.
实际情况更好一点吧。因为过了;
【完整代码】
#include <cstdio>#include <algorithm>using namespace std;#define rei(x) scanf("%d",&x)#define rep1(i,x,y) for (int i = x;i <= y;i++)const int MAXN = 1e6;int n,f;int a[MAXN],pre[MAXN];bool ok(int num){ for (int l = 1,r = num;r<=n;l++,r++) { int t = pre[r]-pre[l-1]; if (t<=f) return true; } return false;}int main(){ //freopen("F:\\rush.txt","r",stdin); rei(n);rei(f); rep1(i,1,n) { rei(a[i]); pre[i] = pre[i-1]+a[i]; } int l = 0,r = min(f,n),ans = 0; while (l <= r) { int m = (l+r)>>1; if (ok(m)) { ans = m; l = m+1; } else r = m-1; } printf("%d\n",ans); return 0;}
0 0
- 【t083】买票
- 沁园春-买票
- 沁园春 买票
- 买票难
- 买票找零
- 沁园春,买票
- 买票找零
- 买票事务
- 买票找零
- 买票问题
- 买票找零
- codevs 买票
- 【codevs1666】买票
- 排队买票
- 排队买票
- 买票系统
- 多线程买票
- 排队买票
- java判断文件是否是一个lnk快捷方式
- HDU-1839-二分下限+spfa
- 如何阅读别人的代码(转自coney)
- Python脚本结合UiAutomator自动化采集Activity的FPS
- NYOJ457 - 大小写互换
- 【t083】买票
- 通过native sql来获取多个表的杂交类
- 路由器Lan、Wan短接问题
- 线性规划与网络流24——运输问题
- sqlserver插入当前电脑时间
- 三星召开发布会 公布Note 7燃损事件的根源
- psd快速转化html模版(切图)
- 原型模式
- Spring中使用到的各个对象的详细介绍