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 ...
随机推荐
- Android电容屏(二):驱动调试分析【转】
本文转载自:http://blog.csdn.net/xubin341719/article/details/7833383 以goodix的gt8105为例 一.总体架构 硬件部分:先看一个总体的图 ...
- Kubernetes addon-manager
Addon-manager 附加组件管理器(Addon-manager)是运行在 Kubernetes 集群 Master 节点.用来管理附加组件(Addons)的服务.它管理着 $ADDON_PAT ...
- codeforces 353D 递推 找规律
题意:一组男生女生在排队,每秒钟所有排在女生左边的男生与她相邻的女生交换位置,求女生全部换到男生前面的时间. 思路: 解法一:队伍最前面的那些女生不需要交换,后面的女生有两种状态:畅通无阻,前一个女生 ...
- 【bzoj1318】[Spoj744] Longest Permutation(乱搞)
题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=1318 这道题的大意是要求一个长度为len,并包含1~len所有数,并使len最大的子区 ...
- springcloud一些概念知识
1.Eureka 1)Eureka服务治理体系支持跨平台 2)三个核心概念:服务注册中心.服务提供者以及服务消费者 3)服务续约:注册完服务之后,服务提供者会维护一个心跳来不停的告诉Eureka Se ...
- java深入探究12-框架之Hibernate
1.引入SSH框架 Struts框架,基于MVC 模式的应用层框架技术 Hibernate,基于持久层框架(数据访问层使用) Dao代码编写的几种方式: 1.原始jdbc操作,Connection/S ...
- MapReduce-join连接
join连接 MapReduce能够执行大型数据集间的连接(join)操作.连接操作的具体实现技术取决于数据集的规模及分区方式连接操作如果由mapper执行,则称为“map端连接”:如果由reduce ...
- vlan 配置
在RedHat上配置vlan: ~]$ modinfo 8021q在ethX接口上配置vlan逻辑子接口: DEVICE=ethX. BOOTPROTO=none ONBOOT=yes IPADDR= ...
- review09
String类在java.lang包中,由于java.lang包中的类被默认引入,所以可以直接使用String类.String对象的创建可以直接使用带字符串参数的构造方法 String s = new ...
- C语言基础一
C语言学习 C语言的特点 语言简单.紧凑.使用方便.灵活 运算符丰富 数据类型丰富 具有结构化的控制语句 语法限制不太严格,程序设计自由度大 C语言允许直接访问物理地址,可以对硬件进行直接操作 生成代 ...