几道hdu题

来源:互联网 发布:淘宝技术模式分析 编辑:程序博客网 时间:2024/05/17 08:27

都是以前周赛的题目,以后会慢慢更新。


HDOJ--1020

水题

#include<iostream>#include<cmath>#include<cstring>#include<cstdio>#include<algorithm>using namespace std;char a[10005];int main(){    int t,i,l,sum;    char c;    scanf("%d",&t);    while(t--)    {        int flag=1;        sum=1;        scanf("%s",a);        l=strlen(a);        c=a[0];        for(i=0;i<l-1;i++)        {            if(a[i]!=a[i+1])            {                if(sum>1)   printf("%d",sum);                sum=1;                printf("%c",c);                c=a[i+1];                if(i+1==l-1)    {printf("%c",a[i+1]);flag=0;}            }            else    sum++;        }        if(flag==1)        {            printf("%d%c",sum,c);        }        printf("\n");    }    return 0;}


HDOJ--1032

水题

#include<iostream>#include<cmath>#include<cstring>#include<cstdio>#include<algorithm>using namespace std;char a[10005];int main(){    int x,y,i,sum,max;    while(scanf("%d%d",&x,&y)!=EOF)    {        printf("%d %d ",x,y);        if(x>y)        {            int t=x;            x=y;            y=t;        }        max=0;        for(i=x;i<=y;i++)        {            sum=1;            int n=i;            while(n>1)            {                if(n==1)    break;                if(n%2) n=3*n+1;                else    n=n/2;                sum++;            }            if(sum>max) max=sum;        }        printf("%d\n",max);    }    return 0;}


HDOJ--1037

水题

#include<iostream>#include<cmath>#include<cstring>#include<cstdio>#include<algorithm>using namespace std;char a[10005];int main(){    int x,y,z;    scanf("%d%d%d",&x,&y,&z);    if(x<=168)  printf("CRASH %d\n",x);    else if(y<=168) printf("CRASH %d\n",y);    else if(z<=168) printf("CRASH %d\n",z);    else printf("NO CRASH\n");    return 0;}


HDOJ--1050

贪心题,注意对门也不能搬运,WA出翔了

#include<iostream>#include<cmath>#include<cstring>#include<cstdio>#include<algorithm>using namespace std;int main(){    int a[205],t,n,x,y,i;    scanf("%d",&t);    while(t--)    {        memset(a,0,sizeof(a));        scanf("%d",&n);        for(i=0;i<n;i++)        {            scanf("%d%d",&x,&y);            x=(x+1)/2;            y=(y+1)/2;            if(x>y)            {                int temp=x;                x=y;                y=temp;            }            for(int j=x;j<=y;j++)                a[j]++;        }        int max=a[1];        for(i=1;i<201;i++)            if(a[i]>max)    max=a[i];        printf("%d\n",max*10);    }    return 0;}


HDOJ--1062

水题

#include<cstdio>#include<iostream>#include<cmath>#include<cstring>#include<string.h>#include<ctype.h>#include<stack>#include<queue>#include<set>#include<algorithm>#include<limits.h>#define PI acos(-1)using namespace std;char a[1005],b[1005];int main(){    int t,l,i,j,k;    char c,temp;    scanf("%d",&t);    c=getchar();    while(t--)    {        memset(a,0,sizeof(a));        memset(b,0,sizeof(b));        k=0;        gets(a);        l=strlen(a);        for(i=0;i<l;i++)        {            if(a[i]==' ')            {                for(j=0;j<(k+1)/2;j++)                {                    temp=b[j];                    b[j]=b[k-1-j];                    b[k-1-j]=temp;                }                if(a[i]==' ')   printf("%s ",b);                memset(b,0,sizeof(b));                k=0;            }            else    b[k++]=a[i];        }        for(j=0;j<(k+1)/2;j++)        {            temp=b[j];            b[j]=b[k-1-j];            b[k-1-j]=temp;        }        printf("%s\n",b);    }    return 0;}


HDOJ--1106

水题

#include<cstdio>#include<iostream>#include<cmath>#include<cstring>#include<string.h>#include<ctype.h>#include<stack>#include<queue>#include<set>#include<algorithm>#include<limits.h>#define PI acos(-1)using namespace std;char a[1005];int b[1000];int main(){    int i,l,k,x;    char c[20];    while(gets(a))    {        memset(c,0,sizeof(c));        k=x=0;        l=strlen(a);        for(i=0;i<l;i++)        {            if(a[i]=='5')            {                if(k)                {                    c[k]='\0';                    b[x++]=atoi(c);                    memset(c,0,sizeof(c));                    k=0;                }            }            else    c[k++]=a[i];        }        if(k)        {            c[k]='\0';            b[x++]=atoi(c);        }        sort(b,b+x);        for(i=0;i<x-1;i++)            printf("%d ",b[i]);        printf("%d\n",b[i]);    }    return 0;}


HDOJ--1016

DFS

和哈密顿那道题有点像,不过比那个简单,坑爹的地方在于是个多CASE,INPUT里没写,OUTPUT有句“Print a blank line after each case.”是提示

#include<iostream>#include<algorithm>#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#include<string>#include<vector>#include<set>#include<queue>#include<stack>#include<stdlib.h>#include<ctime>#define PI acos(-1)using namespace std;int lu[25],n,m;int visit[25];bool prime(int x){    int i;    for(i=2;i*i<=x;i++)    {        if(x%i==0)  return false;    }    return true;}void dfs(int m,int cnt){    int i;    if(cnt==n)    {        if(prime(lu[1]+lu[n]))        {            for(i=1;i<=n-1;i++)                printf("%d ",lu[i]);            printf("%d\n",lu[i]);        }    }    if(cnt>n)   return ;    if(visit[m])    return ;    else    {        visit[m]=1;        for(i=1;i<=n;i++)        {            if(prime(m+i)&&!visit[i])            {                lu[cnt+1]=i;                dfs(i,cnt+1);            }        }        visit[m]=0;    }}int main(){    int k=1;    while(scanf("%d",&n)!=EOF)    {        memset(visit,0,sizeof(visit));        printf("Case %d:\n",k++);        lu[1]=1;        dfs(1,1);        printf("\n");    }    return 0;}