ZCMUOJ2014: 一生之敌 2017浙江中医药校赛(usigned long long )
来源:互联网 发布:清除下载器数据 编辑:程序博客网 时间:2024/04/29 21:20
点击打开链接
解析:
因为a,b都是整数,所以最后可以将满足条件的b化简成
b=2*k*(2*k*k+1) k=1,2,3,.....
因为n最大可以到10^19次方
所以要用usigned long long(0-2^128-1)
最后直接用一个STL库里面的函数来二分查找满足条件的值点击打开链接
ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于等于值val的位置。
ForwardIter upper_bound(ForwardIter first, ForwardIter last, const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于值val的位置。
这题也有用大数模板加分块过的。。。但本人没有试过。。
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;typedef unsigned long long ull;const int MAXN = 1400000 + 100;const ull INF = 1000000000000000000;ull ans[MAXN];int main(){ int t; scanf("%d",&t); ull n; ull i; for(i=1;i<MAXN;i++) { ans[i]=2*i*(2*i*i+1); //printf("%llu\n",ans[i]); //if(ans[i]>INF) break; } while(t--) { scanf("%llu",&n); int kk=lower_bound(ans,ans+MAXN,n)-ans; printf("%llu\n",ans[kk]); } return 0;}
阅读全文
0 0
- ZCMUOJ2014: 一生之敌 2017浙江中医药校赛(usigned long long )
- 一生之敌-2017浙江中医药大学程序设计
- 2017年浙江中医药大学大学生程序设计竞赛-B:一生之敌(思维)
- 【2017年浙江中医药大学大学生程序设计竞赛】B一生之敌 【二分+精度】
- unsigned long转换为usigned int
- ZCMU2016: 不存在的树 (2017浙江中医药校赛) (树链剖分)
- C++之long long
- std::string类型与usigned long类型相互转换
- 2017年浙江中医药大学大学生程序设计竞赛(重现赛)
- 2017年浙江中医药大学大学生程序设计竞赛(重现赛)-H剪纸
- 【2017年浙江中医药大学大学生程序设计竞赛(重现赛)】A B E F G
- Long
- 寻找zcmu-2017浙江中医药大学程序设计
- 2017-04-21(#考虑是否使用long long !!!!!!!!!)
- 2017年浙江中医药大学大学生程序设计竞赛-A:不存在的树(树链剖分)
- 2017年浙江中医药大学大学生程序设计竞赛-D:CC的神奇背包(思维)
- 1591 浙江中医药大学
- 1531 浙江中医药大学
- Redis发布订阅
- 一个简单的Springboot项目
- 1.13 Java和Internet
- Android studio自带模拟器开机出现decryption unsuccessful
- 分治法-归并排序
- ZCMUOJ2014: 一生之敌 2017浙江中医药校赛(usigned long long )
- 官方文档对比
- 第4条:通过私有构造器来强化不可实例化能力
- 嵌入式系统
- 英文名句(2)
- HDU
- 搜狐一面
- linux高性能服务器编程学习笔记九:信号
- 蓝桥杯 算法提高 新建Microsoft Word文档