Bob's Problem
来源:互联网 发布:网格优化的流程及思路 编辑:程序博客网 时间:2024/04/29 20:53
Bob's Problem
Accepted : 47Submit : 307Time Limit : 1000 MSMemory Limit : 65536 KB题目描述
Bob今天碰到一个问题,他想知道x 3 +y 3 = c 是否存在正整数解?
输入
第一行是一个整数K(K≤20000),表示样例的个数。 以后每行一个整数c(2≤c≤10 9)
输出
每行输出一个样例的结果,如果存在,输出“Yes”,否则输出“No”。(引号不用输出)
样例输入
22827
样例输出
YesNo一开始我用的是二重循环,每个的上限是pow(c,1/3.0),结果TLE。后来我想用数组先把可行解存起来,范围太大。后来又读了一遍题,想到i和j的取值范围实际上是一样的,且这个范围<=1000.因为c<=10^9故每一个i或j不可能超过1000。所以可以先将1~1000内的每个数的立方算出并存到数组a中。接下来用二分查找s减每个小于s的a[i]。在减小时间复杂度的思考过程中很有感觉。
我的代码:
#include<cstdio>#include<cstring>#include<cmath>int a[1005];int bs(int x){int l=1,r=1000,mid;while(r>=l){mid=(l+r)/2;if(a[mid]==x)return 1;else if(a[mid]<x)l=mid+1;elser=mid-1;}return 0;}int main(){int k,i,j,flag,s,c;for(i=1;i<=1000;i++){a[i]=i*i*i;}scanf("%d",&k);while(k--){flag=true;scanf("%d",&c);for(i=1;i<=1000;i++){s=c-a[i];if(bs(s)){printf("Yes\n");flag=false;break;}}if(flag)printf("No\n");}return 0;}题解:用到了set集合,STL还未系统学习,暂不分析。
#include <iostream>#include <cstring>#include <cstdio>#include <set>#include <algorithm>using namespace std;int nb[3000],tot=0;int main(){ freopen("std.in","r",stdin); freopen("out.txt","w",stdout); set<int> st; st.clear(); for(int i=1;i<1010;i++) { nb[tot++]=i*i*i; } for(int i=0;i<tot;i++) { for(int j=i;j<tot;j++) { st.insert(nb[i]+nb[j]); } } int a,T_T;while(scanf("%d",&T_T)!=EOF){while(T_T--){ scanf("%d",&a); int flag=st.count(a); if(flag) puts("Yes"); else puts("No");}} return 0;}
0 0
- Bob's Problem
- Bob's Problem
- Bob's Problem
- XTU 1185 Bob's Problem
- XTU-1185 Bob's Problem
- 湘潭大学1185 Bob's Problem
- bob's Blog
- Problem 471: Alice and Bob
- hdu 4213 Bob’s Race
- HDU 4123 - Bob’s Race
- hdu 4123 Bob’s Race
- ZOJ Problem Set - 3655 Alice and Bob
- HDU 5055 Bob and math problem
- 【BestCoder】 HDOJ 5055 Bob and math problem
- hdu 5055 Bob and math problem
- HDU 5055 Bob and math problem
- hdu5055——Bob and math problem
- HDOJ 5055 Bob and math problem
- Unity3D Shader编程实践——“Hello Shader"
- Android中解析XML_DOM_SAX_PULL
- SSE3和SSSE3 Intrinsics各函数介绍
- 2012蓝桥杯C++本科 密码发生器
- A Love Letter
- Bob's Problem
- 【bzoj1088】[SCOI2005]扫雷Mine(9018p1289)
- Let us learn C in Code <1>
- java中多线程并发的处理方式
- boost库文件名的含义
- htmlDOM操作1
- gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-2ubuntu1~12.04) 编译器的一个BUG(不是bug)
- python获得OS平台信息
- 《Unity 4.x Cookbook》 之中文版《Unity开发实战》内容简介