535C - Tavas and Karafs

思路:对于满足条件的r,max(h,hl+1 ,hl+2 ,......,hr )<=t(也就是hr<=t)且∑hi<=t*m。所以通过这个条件二分找出最大的r。

二分的下界为1,上界为使得hi等于t的i(hi=t    ==>    a+(i-1)*b=t    ==>    i=(t-a)/b+1)

代码:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mem(a,b) memset((a),(b),sizeof(a))
const int N=1e6+5;
int a,b,n;
int l,t,m;
ll cal(int i){return (ll)a+(ll)(i-1)*b;}bool check(ll r)
{if((cal(l)+cal(r))*(r-l+1)/2>(ll)m*t)return false;return true;
}int main()
{scanf("%d%d%d",&a,&b,&n);while(n--){scanf("%d%d%d",&l,&t,&m);if(cal(l)>t)printf("-1\n");else{ll L=l,R=(t-a)/b+1,m=(L+R)>>1;while(L<=R){if(check(m))L=m+1;else R=m-1;m=(L+R)>>1;}printf("%d\n",m); }}return 0;
}

转载于:https://www.cnblogs.com/widsom/p/7357000.html

Codeforces 535C - Tavas and Karafs相关推荐

  1. codeforces 536a//Tavas and Karafs// Codeforces Round #299(Div. 1)

    题意:一个等差数列,首项为a,公差为b,无限长.操作cz是区间里选择最多m个不同的非0元素减1,最多操作t次,现给出区间左端ll,在t次操作能使区间全为0的情况下,问右端最大为多少. 这么一个简单题吞 ...

  2. CF535C Tavas and Karafs 二分 + 结论

    传送门 题意: 定义第iii个数是a+(i−1)∗ba+(i-1)*ba+(i−1)∗b,先有qqq个询问,每次询问给你l,t,ml,t,ml,t,m代表你可以操作ttt次,每次可以将最多mmm个数减 ...

  3. Tavas and Karafs 二分+结论

    二分比较容易想到 #include<map> #include<set> #include<cmath> #include<queue> #includ ...

  4. 2017寒假练习题解 第四周 2.6-2.12

    2.6 Problem A Quasi Binary 题意:给出 n ,输出n至少由k个只含 01的数组成 简析:按照 n 的位数如果相应的一位不是0的话,就填 1 ,再减去,直到减到 n 为0 1 ...

  5. 连飞学长的爱 解题报告 Apare_xzc

    连飞学长的爱 解题报告 2019/2/22 vj链接 A-A CodeForces - 560A 题意: 有一套纸币,有n个币种,问是否能构成任意面值? input: n a1 a2 - an 数据范 ...

  6. DFS Codeforces Round #299 (Div. 2) B. Tavas and SaDDas

    题目传送门 1 /* 2 DFS:按照长度来DFS,最后排序 3 */ 4 #include <cstdio> 5 #include <algorithm> 6 #includ ...

  7. Codeforces Round #299 (Div. 2) D. Tavas and Malekas kmp

    题目链接: http://codeforces.com/problemset/problem/535/D D. Tavas and Malekas time limit per test2 secon ...

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

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

  9. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

最新文章

  1. 学好Linux必备知识
  2. hdu 3117 Fibonacci Numbers
  3. 成功解决AttributeError: 'list' object has no attribute 'ndim'
  4. java 英文分词器使用代码_java文本英文分词
  5. 实现ABP中Person类的权限功能
  6. 如何利用FineBI做财务分析
  7. Delphi判断是否有全屏程序
  8. bing翻译接口appID申请教程【TranslateApiException: AppId is over the quota 】
  9. android应用程序开发宝典,android应用程序开发宝典.pdf
  10. 梁宁产品思维 一张图
  11. 推荐系统(十八)Gate网络(一):新浪微博GateNet
  12. 我是一名朝九晚五的程序员
  13. 几种室内定位技术方案对比,室内定位种类的优缺点一目了然-新导智能
  14. 馄饨 (hún tun)
  15. 一份最全的excel下拉列表攻略
  16. 洛谷P4094 - [TJOI2016]字符串
  17. centos7虚拟机安装elasticsearch5.0.x-安装篇
  18. TanDEM-X 90m数字高程模型(下载)
  19. javascript实现页面倒计时
  20. 个人收藏系列之360个人图书馆 轻松解除网页防复制难题

热门文章

  1. JavaBean中DAO设计模式介绍
  2. O(N)的时间复杂度找出a[N]中那个重复的数字
  3. linux 学习过程中的坑之 find 正则表达式
  4. ORA-09817:Write to audit file failed
  5. iOS正则匹配手机号
  6. 寻找兄弟单词(2012.5.6百度实习)
  7. input输入系统中是如何实现按键重复
  8. 谈谈android反编译和防止反编译的方法
  9. Android系统默认Home应用程序(Launcher)的启动过程源代码分析(3)
  10. linux修改主机名+免密认证+关闭防火墙