HDOJ 2017 ,祝你AC

来源:互联网 发布:java多线程运用场景 编辑:程序博客网 时间:2024/06/18 13:15

//字符串处理  A hdoj1727#include<stdio.h>#include<string.h>using namespace std;char num[10][10]={"zero","one","two","three","four","five","six","seven","eight","nine"};char num1[11][10]={"","ten","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"};char num2[10][10]={"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"};int main(){int n;while(~scanf("%d",&n)){if(n==0){printf("zero\n");continue;}int flag=0;if(n/1000){printf("%s",num[n/1000]);printf(" thousand");flag=1;}n=n%1000;if(n/100){if(flag)printf(" and ");printf("%s",num[n/100]);printf(" hundred");flag=1;}if(n%100){n=n%100;if(n/10>=2){if(flag)printf(" and ");printf("%s",num1[n/10]);if(n%10)printf("-%s",num[n%10]);}else if(n/10==1){if(flag)printf(" and ");printf("%s",num2[n%10]);}else{if(flag)printf(" and ");printf("%s",num[n%10]);}}printf("\n");}return 0;}
//数学推论 C hdoj1719#include<stdio.h>int main(){int n;while(~scanf("%d",&n)){if(n==0){printf("NO!\n");continue;}n+=1;while(n%2==0)n/=2;while(n%3==0)n/=3;if(n==1)printf("YES!\n");elseprintf("NO!\n");}return 0;}


//简单大数处理   D hdoj 1715 大斐波数#include<stdio.h>#include<string.h>int a[1005][500];void init(){memset(a,0,sizeof(a));a[0][0]=0;a[1][0]=1;a[2][0]=1;int d=0;for(int i=3;i<=1000;i++){d=0;for(int j=0;j<499;j++){a[i][j]=a[i-1][j]+a[i-2][j]+d;d=a[i][j]/10;a[i][j]%=10; }}}int main(){int t,n;scanf("%d",&t);init();while(t--){scanf("%d",&n);int k=499;while(a[n][k]==0)k--;k++;while(k--){printf("%d",a[n][k]); }  printf("\n");}return 0; } 

//简单DP   E hdoj2391#include<stdio.h>int map[1017][1017];int main(){int t,n,m;scanf("%d",&t);for(int k=1;k<=t;k++){scanf("%d%d",&n,&m);for(int i=0;i<n;i++){for(int j=0;j<m;j++){scanf("%d",&map[i][j]);}}for(int i=0;i<n;i++){int d=-1000000;for(int j=0;j<m;j++){if(i-1>=0){d=d>map[i-1][j]?d:map[i-1][j];}if(j-1>=0){d=d>map[i][j-1]?d:map[i][j-1];}if(d>0){map[i][j]+=d;}}}printf("Scenario #%d:\n",k);printf("%d\n\n",map[n-1][m-1]);}}

//二分或处理技巧 (我用的二分)  F hdoj 3762#include<stdio.h>#include<algorithm>#include<string.h>using namespace std;int a[1000004];int main(){int n,m;while(~scanf("%d%d",&n,&m)&&(m||n)){memset(a,0x3f,sizeof(a));int num=0;for(int i=0;i<n;i++){scanf("%d",&a[i]);}int k;for(int i=0;i<m;i++){scanf("%d",&k);int len=lower_bound(a,a+n,k)-a;if(len<n&&a[len]==k)++num;}printf("%d\n",num);}}


原创粉丝点击