本宝宝实在太弱了,心态不好,实力太差,最后还是决定以后努力刷题补题了!
实在太坑了,最后看标程才知道考察的是字符串处理与数字的转化问题,宝宝心好累啊,原本以为确定两个数之间只有一个空格的,跟之前一次BC犯了同样的错误,宝宝要多多刷题,学习经验!
1 #include<stdio.h> 2 #include<math.h> 3 #include<string.h> 4 #include<stdlib.h> 5 #include<ctype.h> 6 #include <map> 7 #include <set> 8 #include <cmath> 9 #include <deque> 10 #include <queue> 11 #include <stack> 12 #include <cstdio> 13 #include <cctype> 14 #include <string> 15 #include <vector> 16 #include <cstdlib> 17 #include <cstring> 18 #include <iostream> 19 #include <algorithm> 20 #define LL long long 21 #define INF 0x7fffffff 22 using namespace std; 23 #define N 100005 24 25 int main() 26 { 27 int a[N],b[N],c[N]; 28 char str[2*N]; 29 while(gets(str)!=NULL){ 30 for(int i=0;i<N;i++){ 31 a[i]=0; 32 } 33 int len=strlen(str); 34 int i=0,len1=1; 35 while(i<len){ 36 int flag=0; 37 while(str[i]>=‘0‘&&str[i]<=‘9‘){ 38 // cout<<"xiaobiao"<<i<<" "<<str[i]<<endl; 39 a[len1]=a[len1]*10+str[i]-‘0‘; 40 i++; 41 flag=1; 42 } 43 // cout<<len1<<"a"<<a[len1]<<" "; 44 if(flag==1)len1++; 45 i++; 46 } 47 len1-=1; 48 // for(int i=1;i<=len1;i++) 49 // cout<<a[i]<<" "; 50 // cout<<endl; 51 int len2=0,len3=0; 52 for(i=1;i<=len1;i++) { 53 if(i%3==0){ 54 c[len3++]=a[i]; 55 continue; 56 } 57 if(i%2==0){ 58 b[len2++]=a[i]; 59 } 60 } 61 // printf("len2=%d\tlen3=%d\n",len2,len3); 62 sort(b,b+len2); 63 sort(c,c+len3); 64 reverse(c,c+len3); 65 int j=0; 66 for(i=1;i<=len1;i++){ 67 if(i%3==0){ 68 a[i]=c[i/3-1]; 69 continue; 70 } 71 if(i%2==0){ 72 a[i]=b[j]; 73 j++; 74 // printf("tttt%d\t",a[i]); 75 } 76 } 77 for(int i=1;i<len1;i++){ 78 printf("%d ",a[i]); 79 } 80 printf("%d\n",a[len1]); 81 } 82 return 0; 83 }
本宝宝脑子抽风了,暴力是一个无脑儿暴力,事实上判断最大数1000000中各个数位的数字之和最多是9*5=45,所以找到一个初始值设置略小于(n-45),之后判断到n就可以了
1 #include<stdio.h> 2 #include<math.h> 3 #include<string.h> 4 #include<stdlib.h> 5 #include<ctype.h> 6 #include <map> 7 #include <set> 8 #include <cmath> 9 #include <deque> 10 #include <queue> 11 #include <stack> 12 #include <cstdio> 13 #include <cctype> 14 #include <string> 15 #include <vector> 16 #include <cstdlib> 17 #include <cstring> 18 #include <iostream> 19 #include <algorithm> 20 #define LL long long 21 #define INF 0x7fffffff 22 using namespace std; 23 #define N 1000000 24 25 int main() 26 { 27 // freopen("schout.txt","w",stdout); 28 int i; 29 while(cin>>i){ 30 int res=0; 31 for(int j=i-55;j<i;j++){ 32 int sum=j,k=j; 33 while(k){ 34 sum+=k%10; 35 k=k/10; 36 } 37 if(sum==i){ 38 res=j; 39 break; 40 } 41 } 42 printf("%d\n",res); 43 } 44 return 0; 45 }
H squee_spoon and his Cube VI (simple)
还是脑抽,反正debug很久才过的,白天重写一遍,上代码
原文:http://www.cnblogs.com/sunshiniing/p/5022691.html