Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 0 Accepted Submission(s): 0
1 #include <bits/stdc++.h>
2 #define ll long long int
3 #define N 1000005
4 using namespace std;
5 int k[N];
6 void fa(){
7 memset(k,0,sizeof(k));
8 k[0]=k[1]=0;
9 for(int i=2;i<N;i++){
10 if(i%2==0){
11 k[i]=i/4*2+k[i-2];
12 }else{
13 k[i]=(i+1)/4+k[i-1]-1;
14 }
15 }
16 }
17 int main(){
18 int n;
19 fa();
20 scanf("%d",&n);
21 while(n--){
22 int x;
23 scanf("%d",&x);
24 for(int i=0;i<N;i++){
25 if(k[i]>=x){
26 printf("%d\n",i);
27 break;
28 }
29 }
30 }
31 return 0;
32 }
原文:http://www.cnblogs.com/zllwxm123/p/7397280.html