2017 乌鲁木齐赛区网络赛 Half-consecutive Numbers(【规律题】)
2017-10-10 21:30
381 查看
题目链接:https://nanti.jisuanke.com/t/16954
【中文题意】
找到这样的i,使得i*(i+1)=2*k^2。其中k为任意整数,i为整数。
然后输入n,输出不小于n的这个i。
【思路分析】遇到这样的题目,我们先打表出前几组数据然后找规律。
1,8,49,288,1681,9800
1*1,4*9,25*49,144*289,841*1681,4900*9801
(1*1)^2,(2*3)^2,(5*7)^2,(12*17)^2,(29*41)^2,(70*99)^2
然后我们可以发现除了第一项,每一项的第一个数是上一项的两个数之和,第二个数是:这一项的第一个数的平方*2,如果是奇数项就-1,偶数项就+1,然后开根号的结果。这里我是使用Pair实现的。
【AC代码】
【中文题意】
找到这样的i,使得i*(i+1)=2*k^2。其中k为任意整数,i为整数。
然后输入n,输出不小于n的这个i。
【思路分析】遇到这样的题目,我们先打表出前几组数据然后找规律。
1,8,49,288,1681,9800
1*1,4*9,25*49,144*289,841*1681,4900*9801
(1*1)^2,(2*3)^2,(5*7)^2,(12*17)^2,(29*41)^2,(70*99)^2
然后我们可以发现除了第一项,每一项的第一个数是上一项的两个数之和,第二个数是:这一项的第一个数的平方*2,如果是奇数项就-1,偶数项就+1,然后开根号的结果。这里我是使用Pair实现的。
【AC代码】
#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<vector> using namespace std; #define LL long long int main() { pair<LL,LL >p[105]; LL re[105]; p[1]=make_pair(1,1); re[1]=1; LL cnt=1; for(LL i=2;i<=105;i++) { p[i].first=p[i-1].first+p[i-1].second; LL ans=p[i].first*p[i].first*2; if(ans%2==0) p[i].second=(LL)sqrt(ans+1); else { p[i].second=(LL)sqrt(ans-1); } //printf("%lld %lld\n",p[i].first,p[i].second); re[i]=p[i].second*p[i].second; if(i%2==0) re[i]-=1; //printf("%lld\n",re[i]); cnt++; if(re[i]>1e16) { break; } } LL n,t,iCase=0; scanf("%lld",&t); while(t--) { scanf("%lld",&n); for(int i=1;i<=cnt;i++) { if(n<=re[i]) { printf("Case #%lld: %lld\n",++iCase,re[i]); break; } } } return 0; }
相关文章推荐
- 计蒜客-2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛-E-Half-consecutive Numbers
- 计蒜客 16954 Half-consecutive Numbers(2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 E)
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 E.Half-consecutive Numbers
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 E. Half-consecutive Numbers
- E. Half-consecutive Numbers 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 E.Half-consecutive Numbers
- 2017 icpc 乌鲁木齐赛区 E.Half-consecutive Numbers(找规律)
- E. Half-consecutive Numbers 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛---Half-consecutive Numbers
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 E. Half-consecutive Numbers
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 E: Half-consecutive Numbers
- [计蒜客16958] Colored Graph [2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 I]
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛- A. Banana
- 2017乌鲁木齐赛区网络赛 I Colored Graph(完全图边定向构造)
- 计蒜客-2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛H题Skiing(拓扑序求DAG最长路)
- 【2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 】H Skiing 【求DAG图的最长路】
- 【2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛】 J Our Journey of Dalian Ends 【拆点费用流】
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 C. Coconut
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 F island
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 H. Skiing