HDOJ4768(二分区间)
Flyer
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2795 Accepted Submission(s): 1051
#include <cstdio>
#include <algorithm>
using namespace std;
typedef long long LL;
const int MAXN = ;
const LL INF = 0x7fffffffffffffff;
struct Node{
LL a, b, c;
}soc[MAXN];
int n;
bool test(LL x)
{
LL s = ;
for(int i = ; i < n; i++)
{
LL l = min(x, soc[i].b);
if(l >= soc[i].a)
{
s += ((l - soc[i].a) / soc[i].c + );
}
}
return s & ;
}
int main()
{
while(scanf("%d", &n) != EOF)
{
LL mn = INF, mx = ;
for(int i = ; i < n; i++)
{
scanf("%I64d %I64d %I64d", &soc[i].a, &soc[i].b, &soc[i].c);
mn = min(mn, soc[i].a);
mx = max(mx, soc[i].b);
}
LL left = mn, right = mx;
if(!test(right))
{
printf("DC Qiang is unhappy.\n");
continue;
}
while(right > left)
{
LL mid = (left + right) >> ;
if(test(mid))
{
right = mid;
}
else
{
left = mid + ;
}
}
LL res = ;
for(int i = ; i < n; i++)
{
if(right > soc[i].b || right < soc[i].a) continue;
if((right - soc[i].a) % soc[i].c == )
{
res++;
}
}
printf("%I64d %I64d\n", right, res);
}
return ;
}
异或运算也能过。
#include <cstdio>
using namespace std;
typedef long long LL;
const int MAXN = ;
struct Node{
LL a, b, c;
}soc[MAXN];
int n;
int main()
{
while(scanf("%d", &n) != EOF)
{
for(int i = ; i < n; i++)
{
scanf("%I64d %I64d %I64d", &soc[i].a, &soc[i].b, &soc[i].c);
}
LL x = ;
for(int i = ; i < n; i++)
{
for(LL l = soc[i].a; l <= soc[i].b; l += soc[i].c)
{
x ^= l;
}
}
if(x != )
{
LL res = ;
for(int i = ; i < n; i++)
{
if(x > soc[i].b || x < soc[i].a) continue;
if((x - soc[i].a) % soc[i].c == )
{
res++;
}
}
printf("%I64d %I64d\n", x, res);
}
else
{
printf("DC Qiang is unhappy.\n");
}
}
return ;
}
HDOJ4768(二分区间)的更多相关文章
- HDU 4768 (二分区间---涨姿势)
题意:告诉n组A,B,C,按照A + k * C生成等差数列,问这n组数列中哪个数字出现了奇数次以及出现了几次,题目保证最多只会出现一个这种数字. 分析:读完题并没有思路,后来知道是二分区间,枚举是哪 ...
- HDU 5875 st+二分区间
题目大意:给你n个数,q次询问,每次询问区间[l, r],问a[i]%a[i + 1] % a[i + 2]...%a[j](j <= r)的值 思路:st预处理维护,再二分区间,复杂度n*(l ...
- 【BZOJ】1044: [HAOI2008]木棍分割 二分+区间DP
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1044 Description 有n根木棍, 第i根木棍的长度为Li,n根木棍依次连结了一起, ...
- 【NOIP2013模拟】终极武器(经典分析+二分区间)
No.2. [NOIP2013模拟]终极武器 题意: 给定你一些区间,然后让你找出\(1\sim 9\)中的等价类数字. 也就是说在任何一个区间里的任何一个数,把其中后\(k\)位中的某一位换成等价类 ...
- HDU - 4614 Vases and Flowers(二分+区间修改)
https://cn.vjudge.net/problem/HDU-4614 题意 n个花瓶,m个操作,花瓶里面有的有花,有的是空的.1操作是从a开始往右放b朵花,花瓶有了的不放,跳过,直到a右边都放 ...
- HDU 5289 Assignment (二分+区间最值)
[题目链接]click here~~ [题目大意]: 给出一个数列,问当中存在多少连续子序列,子序列的最大值-最小值<k [思路]:枚举数列左端点.然后二分枚举右端点,用ST算法求区间最值.(或 ...
- vijos1740 聪明的质监员 (二分、区间求和)
http://www.rqnoj.cn/problem/657 https://www.vijos.org/p/1740 P1740聪明的质检员 请登录后递交 标签:NOIP提高组2011[显示标签] ...
- Todd's Matlab讲义第5讲:二分法和找根
二分法和if ... else ... end 语句 先回顾一下二分法.要求方程\(f(x)=0\)的根.假设\(c = f(a) < 0\)和\(d = f(b) > 0\),如果\(f ...
- Codeforces Beta Round #75 (Div. 1 Only) B. Queue 线段树+二分
B. Queue Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 codeforces.com/problemset/problem/91/B Descrip ...
随机推荐
- 自己的第一个MapReduce程序
数据源:来自互联网招聘hadoop岗位的薪资数据,其中几行示例数据如下: 美团 3-5年经验 15-30k 北京 [够牛就来]hadoop高级工程... 北信源 3-5年经验 15-20k 北京 Ja ...
- OC中NSSet去重细节
我们都知道,NSSet在存储数据时,不允许存储相同数据?那么,这里的相同该如何理解呢? 很多人都简单的理解为按照其存储对象的内存地址进行评判.其实不然.经过个人实验证明:当类型为NSString,NS ...
- HIVE 2.1.0 安装教程。(数据源mysql)
前期工作 安装JDK 安装Hadoop 安装MySQL 安装Hive 下载Hive安装包 可以从 Apache 其中一个镜像站点中下载最新稳定版的 Hive, apache-hive-2.1.0-bi ...
- codeforces766E Mahmoud and a xor trip(按位统计+树形DP)
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- javascript的宿主环境
关于javascript语言,最有意思的是它必须要在一个宿主环境中运行,其中受欢迎的宿主环境当然就是浏览器了,但这并不是我们唯一的选择, javascript完全可以运行在服务器端,桌面以及富媒体环境 ...
- 国内的Git比GitHub快
GitHub的速度简直受不了! 被微软收购之后就堕落了! 用Gitee也挺好的,学习用吧!
- Asp.net WebAPI 使用流下载文件注意事项
public HttpResponseMessage Post(string version, string environment, string filetype) { var path = @& ...
- c# 判断一个ip通不通 能不能ping通
方法一: 已经证实能用的. using System; using System.Collections.Generic; using System.ComponentModel; using Sys ...
- (四) tensorflow笔记:常用函数说明
tensorflow笔记系列: (一) tensorflow笔记:流程,概念和简单代码注释 (二) tensorflow笔记:多层CNN代码分析 (三) tensorflow笔记:多层LSTM代码分析 ...
- python基础3 - 变量的基本使用和命名
4.变量的基本使用 4.1 变量定义 在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量 才会被创建 等号(=)用来给变量赋值 = 左边是变量名 = 右边是存储在变量中的值 变 ...