hdu4279 找规律+小想法
题意:
蛋疼的题意,最后是泽神给我讲的题意,题意是对于一个数来说,如果他不能整除另一个数同时他和另一个数非互质,那么另一个数就是这个数的特别数,如10 的特别数有 4 6 8三个,同时题目还定义,有奇数个特别数的数是真数,现在给你一个范围,问你有多少个数字是真数.
思路:
先打表,看下真实数的规律,假如当前数字是a,真实数其实就是6 到 a之间偶数的个数 + 奇数的平方数(如 9,25,49..) - 偶数的平方数(16 ,36 ,64..)
就是 :
a / 2 - 2 + Sqrt(a) % 2 .
因为如果Sqrt(a)是奇数奇数平方数就比偶数平方数多1,否则相等,所以直接+ Sqrt(a) % 2,还有一点就是sqrt()对于__int64会失精度,所以用二分去找sqrt();
所以最后答案就是:
y / 2 - 2 + Sqrt(y) % 2 - ((x - 1) / 2 - 2 + Sqrt(x - 1) % 2 )
注意 x=1 和 x = 2的情况处理下,不然会错...下面是打表代码 和 AC代码
AC代码:
#include<stdio.h>
__int64 max_ = 3037000499; __int64 Sqrt(__int64 num)
{
__int64 low ,mid ,up;
low = 1 ,up = num;
if(up > max_) up = max_;
__int64 mk = 0;
while(low <= up)
{
mid = (low + up) / 2;
if(mid * mid > num)
{
up = mid - 1;
}
else
{
low = mid + 1;
mk = mid;
}
}
return mk;
} int main ()
{
__int64 x ,y ,t;
scanf("%I64d" ,&t);
while(t--)
{
scanf("%I64d %I64d" ,&x ,&y);
__int64 xx = (x-1) / 2 - 2 + Sqrt(x-1) % 2;
__int64 yy = y / 2 - 2 + Sqrt(y) % 2; if(x == 1 || x == 2) xx = 0;
if(y == 1) yy = 0;
printf("%I64d\n" ,yy - xx);
}
return 0;
} 打表代码:
#include<stdio.h> int main ()
{
int sss = 0;
for(int i = 1 ;i <= 100 ;i ++)
{
int now = i ,sum = 0;
for(int j = 2 ;j < i ;j ++)
{
if(i % j == 0)continue;
for(int ii = 2 ;ii <= j ;ii ++)
if(i % ii == 0 && j % ii == 0)
{
sum++;
break;
}
}
if(sum % 2) printf("%d " ,i);
}
getchar();
getchar();
getchar();
return 0;
}
hdu4279 找规律+小想法的更多相关文章
- [CSP-S模拟测试]:小盆友的游戏(数学 or 找规律)
题目传送门(内部题110) 输入格式 第一行一个整数$N$,表示小盆友的个数. 第二行$N$个整数$A_i$,如果$A_i=-1$表示$i$目前是自由身,否则$i$是$A_i$的跟班. 输出格式 一个 ...
- 51nod_1831: 小C的游戏(Bash博弈 找规律)
题目链接 此类博弈不需要考虑sg函数,只需要确定必胜态和必败态,解题思路一般为打败先打表找规律,而后找规律给出统一的公式.打表方式:给定初始条件(此题中为ok[0]=ok[1]=0),然后从低到高枚举 ...
- 51nod 1831: 小C的游戏(Bash博弈 找规律)
题目链接 此类博弈不需要考虑sg函数,只需要确定必胜态和必败态,解题思路一般为打败先打表找规律,而后找规律给出统一的公式.打表方式:给定初始条件(此题中为ok[0]=ok[1]=0),然后从低到高枚举 ...
- hdu4952 Number Transformation (找规律)
2014多校 第八题 1008 2014 Multi-University Training Contest 8 4952 Number Transformation Number Transform ...
- BZOJ-1228 E&D 博弈SG+找啊找啊找规律
讨厌博弈,找规律找半天还是错的.... 1228: [SDOI2009]E&D Time Limit: 10 Sec Memory Limit: 162 MB Submit: 666 Solv ...
- hdu 3032 Nim or not Nim? (SG函数博弈+打表找规律)
Nim or not Nim? Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Sub ...
- HDU 4910 Problem about GCD 找规律+大素数判断+分解因子
Problem about GCD Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- HDU 4861 Couple doubi (数论 or 打表找规律)
Couple doubi 题目链接: http://acm.hust.edu.cn/vjudge/contest/121334#problem/D Description DouBiXp has a ...
- 【数论,找规律】Uva 11526 - H(n)
原来做过的题再看还是没想出来,看来当时必然没有真正理解.这次回顾感觉理解更透彻了. 网上的题解差不多都是一个版本,而且感觉有点扯.根据n=20猜出来的? 好吧哪能根据一个就猜到那么变态的公式.其实这题 ...
随机推荐
- CVE-2019-12409-Apache Solr JMX服务远程代码执行
漏洞分析 https://www.freebuf.com/vuls/218730.html 漏洞介绍 该漏洞源于默认配置文件solr.in.sh中的ENABLE_REMOTE_JMX_OPTS配置选项 ...
- FreeBSD 12.2 发布
FreeBSD 团队宣布 FreeBSD 12.2 正式发布,这是 FreeBSD 12 的第三个稳定版本. 本次更新的一些亮点: 引入了对无线网络堆栈的更新和各种驱动程序,以提供更好的 802.11 ...
- P4285 [SHOI2008]汉诺塔 题解 (乱搞)
题目链接 P4285 [SHOI2008]汉诺塔 解题思路 提供一种打表新思路 先来证明一个其他题解都没有证明的结论:\(ans[i]\)是可由\(ans[i-1]\)线性递推的. (\(ans[i] ...
- go语言实现数组去重
import ( "fmt" ) func main() { a := []int{2, 1, 2, 5, 6, 3, 4, 5, 2, 3, 9} z := Rm_duplica ...
- wget 爬取网站网页
相应的安装命名 yum -y install wget yum -y install setup yum -y install perl wget -r -p -np -k -E http:// ...
- 攻防世界 reverse 2ex1
2ex1 CISCN-2018-Quals mark 1 import base64 2 3 std_base= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijk ...
- RepVGG
RepVGG: Making VGG-style ConvNets Great Again 作者:elfin 资料来源:RepVGG论文解析 目录 1.摘要 2.背景介绍 3.相关工作 3.1 单 ...
- WPF3D立方体图形展开动画思路
WPF3D立方体图形展开动画 效果图: 规定: 立方体中心为(000),棱长为2,则(111)(-1-1-1)等1,-1三维组合的八个点为其顶点 坐标系: 补充: WPF 3D 分为中心对称旋转(Ro ...
- PAT (Advanced Level) Practice 1008 Elevator (20 分) 凌宸1642
PAT (Advanced Level) Practice 1008 Elevator (20 分) 凌宸1642 题目描述: The highest building in our city has ...
- 第16 章 : 深入理解 etcd:基于原理解析
深入理解 etcd:基于原理解析 本文将主要分享以下三方面的内容: 第一部分,会为大家介绍 etcd 项目发展的整个历程,从诞生至今 etcd 经历的那些重要的时刻: 第二部分,会为大家介绍 etcd ...