【链接】 我是链接,点我呀:)
【题意】

给你一个规则,让你知道第i根萝卜的高度为si = A+(i-1)*B
现在给你n个询问;
每次询问给你一个固定的起点l;
让你找一个最大的右端点r;
使得l..r这一段能够在t次"m吃操作"内被吃完.

【题解】

如果l..r里面的最大值大于t了;则无解

最大值小于等于t的话.
每次可以取m个。
然后可以取t次。
也就是说
这一段里面的和<=m*t;

只要A+(i-1)*B大于1e6了就停下来
最坏情况就是A和B都为1

写个rmq+二分就好

【代码】

#include <bits/stdc++.h>
using namespace std;
#define ll long longconst int N = 1e6+10;ll a[N+100],pre[N+100];
ll A,B,Q;
int n;const int MAXL = 20;//log2�������?�
const int INF = 0x3f3f3f3f;//��ֵ����ֵ�����ֵstruct abc{ll pre2[MAXL+5],need[N+10];ll fmax[N+10][MAXL+5];void init(int n){pre2[0] = 1;for (int i = 1;i <= MAXL;i++){pre2[i] = pre2[i-1]<<1;}need[1] = 0; need[2] = 1;int temp = 2;for (int i = 3; i <= n; i++)//need[i]��ʾ����Ϊi��2�Ķ��ٴη�,�������Ϊ[log2i]if (pre2[temp] == i)need[i] = need[i - 1] + 1, temp++;elseneed[i] = need[i - 1];}void getst(ll *a,int n){for (int i = 1;i <= n;i++)//�±��0��ʼ�͸ijɶ�Ӧ�ľͺ�fmax[i][0] = a[i];for (int l = 1;pre2[l]<=n;l++)for (int i = 1;i <= n;i++){if (i+pre2[l]-1<=n)fmax[i][l] = max(fmax[i][l-1],fmax[i+pre2[l-1]][l-1]);}}int getmax(int l,int r){int len = need[r-l+1];return max(fmax[l][len],fmax[r-pre2[len]+1][len]);}}ST;bool ok(int l,int r,ll t,ll m){if (r > n) return false;int ma = ST.getmax(l,r);if (ma>t) return false;ll ju = t*m;ll sum = pre[r]-pre[l-1];if (sum <= ju){return true;}return false;}int main(){#ifdef LOCAL_DEFINEfreopen("rush_in.txt", "rt", stdin);#endifscanf("%lld%lld%lld",&A,&B,&Q);for (int i = 1; ;i++){a[i] = A + (i-1)*B;if (a[i]>(int)1e6){n = i-1;break;}}ST.init(n);ST.getst(a,n);for (int i = 1;i <= n;i++){pre[i] = pre[i-1] + a[i];}while (Q--){int l;ll t,m;scanf("%d%lld%lld",&l,&t,&m);if (l > n){puts("-1");continue;}int L = l,R = N+10,temp = -1;while (L<=R){int mid = (L+R)>>1;if (ok(l,mid,t,m)){temp = mid;L = mid+1;              }             else{R = mid-1;}}printf("%d\n",temp);}return 0;
}

转载于:https://www.cnblogs.com/AWCXV/p/7800737.html

【Codeforces Round #299 (Div. 2) C】 Tavas and Karafs相关推荐

  1. 【Codeforces Round #299 (Div. 2) B】Tavas and SaDDas

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 每次取出最小的数字,在后面加上一个4或一个7就好; 会发现最后的数字很少的. [代码] #include <bits/stdc ...

  2. 【Codeforces Round #424 (Div. 2) C】Jury Marks

    [Link]:http://codeforces.com/contest/831/problem/C [Description] 有一个人参加一个比赛; 他一开始有一个初始分数x; 有k个评委要依次对 ...

  3. 【Codeforces Round #422 (Div. 2) C】Hacker, pack your bags!(二分写法)

    [题目链接]:http://codeforces.com/contest/822/problem/C [题意] 有n个旅行计划, 每个旅行计划以开始日期li,结束日期ri,以及花费金钱costi描述; ...

  4. 【Codeforces Round #420 (Div. 2) B】Okabe and Banana Trees

    [题目链接]:http://codeforces.com/contest/821/problem/B [题意] 当(x,y)这个坐标中,x和y都为整数的时候; 这个坐标上会有x+y根香蕉; 然后给你一 ...

  5. 【Codeforces Round #430 (Div. 2) D】Vitya and Strange Lesson

    [链接]点击打开链接 [题意] 给出一个数组,每次操作将整个数组亦或一个数x,问得到的数组的结果中的mex.mex表示为自然数中第一个没有出现过的数. [题解] 异或的效果是可以累加的,所以不用每次都 ...

  6. 【Codeforces Round #446 (Div. 2) C】Pride

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 想一下,感觉最后的结果肯定是从某一段开始,这一段的gcd为1,然后向左和向右扩散的. 则枚举那一段在哪个地方. 我们设这一段中所有的 ...

  7. 【Codeforces Round #430 (Div. 2) B】Gleb And Pizza

    [链接]点击打开链接 [题意] 在这里写题意 [题解] 根据圆心到原点的距离这个东西判断一下圆在不在那个环里面就好 [错的次数] 0 [反思] 在这了写反思 [代码] #include <cst ...

  8. 【Codeforces Round #452 (Div. 2) C】 Dividing the numbers

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] n为偶数. l = 1, r = n (l,r)放在一组 l++,r-- 新的l,r放在另外一组 直到l+1==r 这个时候,判断两 ...

  9. 【Codeforces Round #442 (Div. 2) A】Alex and broken contest

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 注意是所有的名字里面,只出现了其中某一个名字一次. [代码] #include <bits/stdc++.h> usin ...

  10. 【Codeforces Round #450 (Div. 2) B】Position in Fraction

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 找循环节就好. ->其实可以不用找出来整个循环节. 有找到c就直接输出. 找到了循环节还没找到的话,直接输出无解. [代码] ...

最新文章

  1. 设计模式(中介者模式)
  2. python表达式3 2 3的值为_Python3中的表达式运算符
  3. 改变select组件的option选中状态的快捷方法
  4. mysql 修改前缀_批量修改mysql的表前缀
  5. VS2013过期激活,VS2013激活,vs2013序列号,VS2013密钥,VS013产品密匙
  6. oracle基础|什么是数据字典|数据字典的作用
  7. npm init 自动创建 package.json 文件
  8. macos可以升级到指定版本吗_从Mac os High Sierra 升级到 Mac os Majove指定系统版本
  9. 小程序入口传参:关于带参数的小程序扫码进入的方法
  10. Flask框架的学习——04—(模版继承、静态文件的配置、豆瓣APP界面案例实现)
  11. 【阶段一】菜学21.11
  12. Rainbow portal 研究
  13. Java JCEF集成Chromium
  14. Gitlab与Jaeger集成,实现Tracing链路追踪
  15. 小程序报错:Failed to load local image resource /pages/goods/NaN加载资源失败问题解决
  16. 内江人物--(张大千、骆成骧)秀才、美女、黏鱼
  17. [cesium] | 视频融合 | 自定义视频投放
  18. 蹲175年的号子?维基解密阿桑奇动了谁的奶酪?
  19. 用Tkinter打造自己的Python IDE开发工具(7)变量数据共享机制及小白量化策略编写
  20. Linux命令行太长或删除整行

热门文章

  1. JAVA反射性能约慢三个量级
  2. 修改文字处理布局及文字绘制,一个字的感受:太糙
  3. 源码文件编码问题,导致编译的程序运行错误
  4. 项目总结,要做哪些内容
  5. LINUX命令必备技能
  6. C调用Python的崩溃
  7. 连文件搜索都不会用,也不自己反省一下?
  8. 所有自然数相加的和是-1/12,你信吗?
  9. linux没有启用的仓库_在RHEL/CentOS 4-6中安装并启用RPMForge仓库
  10. 支付宝的授权回调目录只能配置一个域名吗_腾讯QQ授权登录(asp.net + angular)...