洛谷P1348 Couple number
洛谷P1348 Couple number
emmm很容易去想用暴力去解题啊……但是看上去这题正解就不是暴力了~
首先要明确平方差公式这一存在
a^2-b^2=(a+b)(a-b)
二话不说打个表看看规律
#include<cstdio>
using namespace std;
int main(){freopen("in.txt","w",stdout);for(int i=0;i<20;i++){for(int j=i;j<20;j++)printf("%d ",j*j-i*i); puts("");}return 0;
}
0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361
0 3 8 15 24 35 48 63 80 99 120 143 168 195 224 255 288 323 360
0 5 12 21 32 45 60 77 96 117 140 165 192 221 252 285 320 357
0 7 16 27 40 55 72 91 112 135 160 187 216 247 280 315 352
0 9 20 33 48 65 84 105 128 153 180 209 240 273 308 345
0 11 24 39 56 75 96 119 144 171 200 231 264 299 336
0 13 28 45 64 85 108 133 160 189 220 253 288 325
0 15 32 51 72 95 120 147 176 207 240 275 312
0 17 36 57 80 105 132 161 192 225 260 297
0 19 40 63 88 115 144 175 208 243 280
0 21 44 69 96 125 156 189 224 261
0 23 48 75 104 135 168 203 240
0 25 52 81 112 145 180 217
0 27 56 87 120 155 192
0 29 60 93 128 165
0 31 64 99 136
0 33 68 105
0 35 72
0 37
0
从第一列可以看出0是一个CP数;
证明:N=a^2-b^2当a=b时a^2=b^2所以N=0
从第二列可以看出数由1开始递增,而且是所有的奇数
又这列都是由(a+1)^2与a^2的差
证明:N=a^2-b^2当a=b+1时N=(b+1)^2-b^2=b^+2b+1-b^=2b+1当b为任意非负数时,N可以为任意奇数
证明2:(a+b)(a-b)=N(a+b)与(a-b)的奇偶性一致所以(a+b)和(a-b)都是奇数时他们的积也一定是奇数!
然后第三列全是偶数,而且都是4的倍数,其他非奇数列都满足是4的倍数这一性质,于是猜想:CP数是奇数+4的倍数
为了证明所有CP数中的非奇数(也就是偶数)全是4的倍数
于是写了程序用来验证
#include<cstdio>
using namespace std;
int main(){freopen("in.txt","r",stdin);for(int i=1;i<=10000;i++){if(i%2==0){if(i%4!=0){puts("NO");return 0;}}}puts("YES");return 0;
}
程序最后输出YES
证明:(a+b)(a-b)=N(a+b)与(a-b)的奇偶性一致所以当(a+b)与(a-b)都是偶数时(a+b)和(a-b)都是2的倍数所以两数相乘必有2*2=4所以两数会被4整除
证出CP数的性质后就可以上代码了!
#include<cstdio>
using namespace std;
int main(){int a,b;scanf("%d%d",&a,&b);int ans=0;for(int i=a;i<=b;i++){if(i&1==1)ans++;else{if(i%4==0)ans++; } }printf("%d",ans);return 0;
}
这里是枚举了这个给定范围的所有数,然后判断是否是奇数或者4的倍数
虽然这份代码能AC这道题
但是如果数据范围一大1e9那种级别的
岂不是很尴尬~~~
所以有没有公式能直接算出来呢??
#include<cstdio>
using namespace std;
int main(){int a,b;scanf("%d%d",&a,&b);int c=a,d=b;int ans=0;if(a%2==0)a++;if(b%2==0)b--;if(a<=b)ans=(b-a)/2+1;while(c%4!=0)c++;while(d%4!=0)d--;if(c<=d)ans+=(d-c)/4+1;printf("%d",ans);return 0;
}
这样时间上就大大的节约了!
转载于:https://www.cnblogs.com/Neworld2002/p/8470848.html
洛谷P1348 Couple number相关推荐
- 洛谷 P1348 Couple number
洛谷 P1348 Couple number 链接 https://www.luogu.org/problem/P1348 题目 题目描述 任何一个整数N都能表示成另外两个整数a和b的平方差吗?如果能 ...
- 洛谷——P1348 Couple number(java实现)
对于一个整数 nn,若存在正整数 a, ba,b,满足 n = a^2 - b^2n=a 2 −b 2 ,则称 nn 是 Couple number. 请求出 [a, b][a,b] 范围内有多少个 ...
- 洛谷——P1348 Couple number
https://www.luogu.org/problemnew/show/P1348 题目描述 任何一个整数N都能表示成另外两个整数a和b的平方差吗?如果能,那么这个数N就叫做Couple numb ...
- C++千题千解 | P1348 Couple number(洛谷)
目录 题目 答案 结语 题目 题目描述 对于一个整数 nn,若存在两个自然数 x, yx,y,满足 n = x^2 - y^2n=x 2−y 2,则称 nn 是 Couple number.给出 a, ...
- 洛谷 2953 [USACO09OPEN]牛的数字游戏Cow Digit Game
洛谷 2953 [USACO09OPEN]牛的数字游戏Cow Digit Game 题目描述 Bessie is playing a number game against Farmer John, ...
- 记录奥林比克/课程录制 洛谷P2255 [USACO14JAN]
题面在最下方. 本题贪心可解,我也不是很懂动规解法(双线程DP?) 先把各个课程(比赛)按结束时间从小到大排序,记录两个摄像机的结束时间. 然后枚举课程,如果某个课程的开始时间早于任何一台摄像机的结束 ...
- [洛谷P1074] 靶形数独
洛谷题目链接:靶形数独 题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教,Z 博 ...
- 洛谷P1246C语言,codevs1246 丑数
题目描述 Description 对于一给定的素数集合 S = {p1, p2, ..., pK}, 来考虑那些质因数全部属于S 的数的集合.这个集合包括,p1, p1p2, p1p1, 和 p1p2 ...
- 洛谷 P3184 [USACO16DEC]Counting Haybales数草垛
洛谷 P3184 [USACO16DEC]Counting Haybales数草垛 题目描述 Farmer John has just arranged his NN haybales (1 \leq ...
最新文章
- Android怎么自定义listview布局,android – 如何将listView标头添加为自定义布局
- Modbus RTU 通信工具设计
- 洛谷P1541 乌龟棋
- mysql alter算法_MySQL ALTER语法的运用方法 操作索引和字段
- vim技巧之删除引号之间的的快捷键
- 【干货】TensorFlow 2.0官方风格与设计模式指南(附示例代码)
- 第二章. node中的模块和require
- 去哪儿-13-city-vuex
- 二分查找算法(C#实现)
- 奶爸业余单片机学习之:C语言基础——for循环及for嵌套
- Navicat 11 Premium中文破解版使用心得
- 大数据平台监控界面和报表
- 【渝粤题库】陕西师范大学202013 民法专论 作业
- 利用手机传感器测量高度
- AWS Lambda重大更新,跨越编程语言差异之门?
- 强制修改.ko文件中的内核版本号与内核对应
- python爬房源信息_Python:爬取airbnb房源信息(Selenium)
- 51单片机学习篇-- --基于51单片机的串口通信协议
- 开源消息总线eventBus学习
- Hadoop的原理是什么
热门文章
- jar包过大?手把手教你分析Maven依赖,完美“瘦身”优化!
- 腾讯安全2020年区块链成绩单出炉
- 计算机在生活中的作用80字英文作文,关于电脑的80字英语作文强调电脑的功能以及人们日常怎样用...
- 经纬度在线查询,地名(批量)查询经纬度,经纬度(批量)查询地名
- MATLAB中能对三角函数降幂嘛,初中数学三角函数降幂公式
- jquery实现滑动滚动条出现对联广告
- Python 画沿着高对称性的能带图
- Leetcode 14.最长公共前缀(Longest Common Prefix)
- 适量饮酒,对身体好?医生说:恰恰相反!
- 使用百度天气API制作天气组件