Oier们的幸运数字
题目描述
JerryC对数字痴迷到了一种非正常的境界。每天JerryC都有喜欢的一些数字。第 iii 天JerryC就喜欢Ai−BiA_i-B_iAi−Bi中的数字。但是他觉得这样并不是很有趣,于是他就定义了一个函数
f(i)=i∗∑j=1i(i mod j)f(i)=i*\sum^{i}_{j=1}(i\ mod\ j)f(i)=i∗j=1∑i(i mod j)
但是JerryC还是觉得不够有趣,于是她觉得只有满足
∑i=ABf(i)\sum^{B}_{i=A}f(i)i=A∑Bf(i)
为奇数的一天才是她特别高兴的一天。
现在告诉你最近TTT天JerryC喜欢的数的区间,请你猜猜她每一天会不会特别高兴。
解释:
第一个式子就是表示 f(i)f(i)f(i) 等于 iii 乘以 iii 的约数个数。
第二个式子就是求出 [A,B][A, B][A,B] 区间内所有的 f(i)f(i)f(i) 的和。
输入输出格式
输入格式:
第111行一个整数TTT表示有多少天。
第2−(T+1)2-(T+1)2−(T+1)行两个非负整数Ai, BiA_i,\ B_iAi, Bi表示每天JerryC喜欢的数的区间。
输出格式:
TTT行。每行为"YesYesYes“或”NoNoNo",表示第 iii 天是不是JerryC特别高兴的一天。
输入输出样例
输入样例:
333
1 101\ 101 10
11 1511\ 1511 15
5 125\ 125 12
#####输出样例:
NoNoNo
NoNoNo
YesYesYes
数据范围
0<=T<=106, 1<=Ai<=Bi<=10180<=T<=10^6,\ 1<=A_i<=B_i<=10^{18}0<=T<=106, 1<=Ai<=Bi<=1018
Solution\text{Solution}Solution
我们发现,只有f(c2), cf(c^2),\ cf(c2), c是奇数的情况才能对答案产生贡献。设c=⌈a⌉, d=bc=\lceil\sqrt a\rceil,\ d=\sqrt bc=⌈a⌉, d=b。
对于区间[a,b][a,b][a,b],只有[c,d][c,d][c,d]区间长度中的奇数对答案有贡献。我们求出[c,d][c,d][c,d]区间长度便可以求出答案。
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#define reg register
typedef long long ll;
int n,ans;
ll a,b;
ll c,d;
//读入优化
inline ll read(){
ll x=0;char c;
do c=getchar(); while(c<'0'||c>'9');
while(c>='0'&&c<='9')
x=x*10+c-48,c=getchar();
return x;
}
int main(){
scanf("%d",&n);
for(reg int i=1;i<=n;++i){
a=read(),b=read();
c=ceil(sqrt(a)),d=sqrt(b);
if(a==b)//特判
{
printf(c*c==a&&(c&1)?"Yes\n":"No\n");
continue;
}
//如果c是偶数,他对答案不产生贡献
if(!(c&1)) c++;
printf(((d-c)/2+1)&1?"Yes\n":"No\n");
}
}
Oier们的幸运数字的更多相关文章
- [SCOI2016]幸运数字 树链剖分,线性基
[SCOI2016]幸运数字 LG传送门 为了快乐,我们用树剖写这题. 强行树剖,线段树上每个结点维护一个线性基,每次查询暴力合并. 瞎分析一波复杂度:树剖两点之间\(\log n\)条重链,每条重链 ...
- BZOJ 1853 【Scoi2010】 幸运数字
Description 在中国,很多人都把6和8视为是幸运数字!lxhgww也这样认 为,于是他定义自己的"幸运号码"是十进制表示中只包含数字6和8的那些号码,比如68,666,8 ...
- BZOJ 4568 幸运数字
题目传送门 4568: [Scoi2016]幸运数字 Time Limit: 60 Sec Memory Limit: 256 MB Description A 国共有 n 座城市,这些城市由 n-1 ...
- BZOJ 1853: [Scoi2010]幸运数字
1853: [Scoi2010]幸运数字 Time Limit: 2 Sec Memory Limit: 64 MBSubmit: 2117 Solved: 779[Submit][Status] ...
- 【BZOJ-4568】幸运数字 树链剖分 + 线性基合并
4568: [Scoi2016]幸运数字 Time Limit: 60 Sec Memory Limit: 256 MBSubmit: 238 Solved: 113[Submit][Status ...
- 【BZOJ-1853&2393】幸运数字&Cirno的完美算数教室 容斥原理 + 爆搜 + 剪枝
1853: [Scoi2010]幸运数字 Time Limit: 2 Sec Memory Limit: 64 MBSubmit: 1817 Solved: 665[Submit][Status] ...
- BZOJ1853 [Scoi2010]幸运数字
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
- 【bzoj1853】 Scoi2010—幸运数字
http://www.lydsy.com/JudgeOnline/problem.php?id=1853 (题目链接) 今天考试考了容斥,结果空知道结论却不会写→_→ 题意 求区间中不含6,8两个数字 ...
- 幸运数字(number)
幸运数字(number) Time Limit:1000ms Memory Limit:64MB [题目描述] LYK最近运气很差,例如在NOIP初赛中仅仅考了90分,刚刚卡进复赛,于是它决定使用 ...
随机推荐
- windows安装mingw和LuaJIT
1,安装mingw64 先下载mingw64压缩包(不建议下载exe安装包,在线安装太慢),地址如下: https://nchc.dl.sourceforge.net/project/mingw-w6 ...
- 松软科技课堂:数据库-主键(PrimaryKey)
主键就是一个表中每个数据行的唯一标识.不会有重复值的列才能当主键.一个表可以没有主键,但是会非常难以处理,因此没有特殊理由表都要设定主键 主键有两种选用策略:业务主键和逻辑主键.业务主键是使用有业务意 ...
- 【C/C++】qsort函数的使用方法和细节
函数概述 qsort 为quick_sort的简写,意为快速排序,主要用于对各种数组的排序. 因为数组的元素可能是任何类型的,甚至是结构或者联合,所以必须高数函数qsort如何确定两个数组元素哪一个& ...
- [C++] C++中的宏定义详解
转载自:C++中的宏定义 和 C++宏定义详解 一.#define解析 #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率 ...
- 【linux】【jenkins】自动化运维二 安装插件
gitlab安装教程参考:https://www.cnblogs.com/jxd283465/p/11525629.html 1.Maven Integration Plugins Jenkins安装 ...
- 用Python帮你实现IP子网计算
目录 0. 前言 1. ipaddress模块介绍 1.1 IP主机地址 1.2 定义网络 1.3 主机接口 1.4 检查address/network/interface对象 1.4.1 检查IP版 ...
- 数据结构与算法(C/C++版)【排序】
第八章<排序> 一.直接插入排序 //直接插入排序 //算法思想:每趟将一个待排的关键字按照其值的大小插入到已经排好的部分有序序列的适当位置上,直到所有待排关键字都被插入到有序序列中为 ...
- 设计模式-Builder和Factory模式区别
Builder和Factory模式区别 Builder模式结构: Factory模式一进一出,Builder模式是分步流水线作业.当你需要做一系列有序的工作或者按照一定的逻辑来完成创建一个对象时 Bu ...
- Spring 梳理 - ContentNegotiatingViewResolver
ContentNegotiatingViewResolver,这个视图解析器允许你用同样的内容数据来呈现不同的view.它支持如下面描述的三种方式: 1)使用扩展名http://localhost:8 ...
- js数组的增删改查
array 数组的增删改: push 从数组后面推入一个元素或多个元素 var arr = [1,2,3]; // 返回:修改后数组的长度 arr.push(4,5,6); pop 删除数组最后一 ...