立方数(清北学堂济南刷题冲刺)
来源:互联网 发布:js控制class 编辑:程序博客网 时间:2024/04/27 19:26
立方数1
Time Limit:1000ms Memory Limit:128MB
题目描述
LYK定义了一个数叫“立方数”,若一个数可以被写作是一个正整数的3次方,则这个数就是立方数,例如1,8,27就是最小的3个立方数。
现在给定一个数P,LYK想要知道这个数是不是立方数。
当然你有可能随机输出一些莫名其妙的东西来骗分,因此LYK有T次询问~
输入格式(cubic.in)
第一行一个数T,表示有T组数据。
接下来T行,每行一个数P。
输出格式(cubic.out)
输出T行,对于每个数如果是立方数,输出“YES”,否则输出“NO”。
输入样例
3
8
27
28
输出样例
YES
YES
NO
数据范围
对于30%的数据p<=100。
对于60%的数据p<=10^6。
对于100%的数据p<=10^18,T<=100。
题解(二分):
#include<iostream>#include<cstdio>#include<cstring>#include<set>#include<vector>using namespace std;long long a[1000000+10];int main(){ int n; scanf("%d",&n); for(long long i=1;i<=1000000;i++) { a[i]=i*i*i; } for(int i=1;i<=n;i++) { long long x; cin>>x; int l=0,r=1000001; bool flag=0; while(l<=r) { int mid=(l+r)/2; if(a[mid]<x) { l=mid+1; } else if(a[mid]==x) { flag=1; break; } else { r=mid-1; } } if(flag) { printf("YES\n"); } else { printf("NO\n"); } } return 0;}
立方数2(cubicp)
Time Limit:1000ms Memory Limit:128MB
题目描述
LYK定义了一个数叫“立方数”,若一个数可以被写作是一个正整数的3次方,则这个数就是立方数,例如1,8,27就是最小的3个立方数。
LYK还定义了一个数叫“立方差数”,若一个数可以被写作是两个立方数的差,则这个数就是“立方差数”,例如7(8-1),26(27-1),19(27-8)都是立方差数。
现在给定一个数P,LYK想要知道这个数是不是立方差数。
当然你有可能随机输出一些莫名其妙的东西,因此LYK有T次询问~
这个问题可能太难了…… 因此LYK规定P是个质数!
输入格式(cubicp.in)
第一行一个数T,表示有T组数据。
接下来T行,每行一个数P。
输出格式(cubicp.out)
输出T行,对于每个数如果是立方差数,输出“YES”,否则输出“NO”。
输入样例
5
2
3
5
7
11
输出样例
NO
NO
NO
YES
NO
数据范围
对于30%的数据p<=100。
对于60%的数据p<=10^6。
对于100%的数据p<=10^12,T<=100。
思路:如果p是立方差数且为质数,p一定是两个相邻数字(即相差为1)的立方差和。
立方差公式:
二分右边界到1e6。
题解:
#include<iostream>#include<cstdio>using namespace std;int main(){ int n; scanf("%d",&n); for(int i=1;i<=n;i++) { long long x; cin>>x; bool flag=0; long long l=0,r=100000+1; while(l<=r) { long long mid=(l+r)/2; if(mid*mid*mid-(mid-1)*(mid-1)*(mid-1)<x) { l=mid+1; } else if(mid*mid*mid-(mid-1)*(mid-1)*(mid-1)>x) { r=mid-1; } else if(mid*mid*mid-(mid-1)*(mid-1)*(mid-1)==x) { flag=1; break; } } if(flag) { printf("YES\n"); } else { printf("NO\n"); } } return 0;}
- 立方数(清北学堂济南刷题冲刺)
- 清北学堂济南刷题班day1
- 【清北学堂济南刷题班】集合
- 【清北学堂济南刷题班】仓库
- 2017国庆 济南清北学堂 8天乐
- 济南刷题冲刺 Day1 上午
- 济南刷题冲刺 Day1 下午
- 济南刷题冲刺 Day3 下午
- 济南刷题冲刺 Day1 下午
- 济南刷题冲刺 Day2 上午
- 济南刷题冲刺 Day2 下午
- 清北学堂&TYVJ NOIP金秋冲刺训练营杯大奖赛
- 【清北学堂】 死亡(death)
- 清北学堂游记(1)
- 清北学堂游记(2)
- 清北学堂总结(未完待续。。。。。。。)
- 【清北学堂】number
- 【清北学堂】dwarf
- 版本差异对比(三) -- 文件迭代压缩与解压缩
- jsp easyui
- HTML5播放音乐,视频
- 【持续更新】C++中string类使用总结
- java的命名大小写
- 立方数(清北学堂济南刷题冲刺)
- js 回车事件兼容多个浏览器
- NOIP模拟11.1
- 给新手程序员的16个工作必备小妙招
- linux中通过shell脚本复制文件,并用时间戳命名
- php的call_user_func()函数 --实例详解
- 【入门篇】Activiti利用流程定义坐标定位当前流程运行处
- Android 设计模式之常见设计模式总结
- 03HttpClient androidStudio中的基础使用