2022/1/24学习总结

做补题题组(8h)

 

#include <stdio.h>
int a[4];
int k=0,s=0;
void tt(int x,int y,int z);
int main()
{
    int i;
    for(i=0;i<4;i++)
        scanf("%d",&a[i]);
    tt(a[0],a[1],a[2]);
    tt(a[3],a[1],a[2]);
    tt(a[0],a[1],a[3]);
    tt(a[0],a[3],a[2]);
    if(k!=0)printf("TRIANGLE");
    if(k==0&&s!=0)printf("SEGMENT");
    if(k==0&&s==0)printf("IMPOSSIBLE");
    return 0;
}

void tt(int x,int y,int z)
{
    int i,j,t;
    int kk[3];
    kk[0]=x;kk[1]=y;kk[2]=z;
    for(i=0;i<2;i++)
        for(j=0;j<2-i;j++)
    {
        if(kk[j]>kk[j+1])
        {
            t=kk[j];
            kk[j]=kk[j+1];
            kk[j+1]=t;
        }
    }
    if(kk[0]+kk[1]>kk[2])k++;
    if(kk[0]+kk[1]==kk[2])s++;
}

 

#include <stdio.h>
int main()
{
    int a,b;
    scanf("%d %d",&a,&b);
    int k=a;
    if(a<b)k=b;
    if(k==1)printf("1/1");
    if(k==2)printf("5/6");
    if(k==3)printf("2/3");
    if(k==4)printf("1/2");
    if(k==5)printf("1/3");
    if(k==6)printf("1/6");
    printf("0/1");
    return 0;
}
暴力

 

#include <stdio.h>
#include <string.h>
int main()
{
    int a,b;
    scanf("%d",&a);
    scanf("%d",&b);

    int s[200];
    int i=0;
    while(a>0)
    {
        s[i]=a%10;
        a=a/10;
        i++;
    }
    int k=i-1;
    int j,t;
    for(i=0;i<k;i++)
    {
        for(j=0;j<k-i;j++)
        {
            if(s[j]<s[j+1])
            {
                t=s[j];
                s[j]=s[j+1];
                s[j+1]=t;
            }
        }
    }
    for(i=k;i>=0;i--)
    {
        if(s[k]!=0)break;
        if(s[i]!=0)
        {
            s[k]=s[i];
            s[i]=0;

            break;
        }

    }
    int sum=0,ss=1;
    for(i=0;i<=k;i++)
    {
        sum=sum+s[i]*ss;
        ss=ss*10;
    }
    if(sum==b)printf("OK");
    else printf("WRONG_ANSWER");


    return 0;
}

 

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int main()
{
    int n,d,m,l;
    scanf("%d %d %d %d",&n,&d,&m,&l);
    long long int ff=d;
    int k=m;
    long long int ss,kk;
    while(1)
    {
        ss=ff/k;
        if(ss==n)
            break;
        kk=ff%k;
        if(kk>l)
            break;
        ff=ff+d;
    }
    printf("%lld",ff);
    return 0;
}
超时超时淦
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int main()
{
    long long  n,d,m,l;
    scanf("%lld %lld %lld %lld",&n,&d,&m,&l);
    long long  ff,kk,i;
    for(i=1;i<=n;i++)
    {
        ff=(i-1)*m+l;
        kk=i*m-1;
        if(ff/d!=kk/d)
            break;
    }
    printf("%lld",ff/d*d+d);
    return 0;
}
这个彳亍

 

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int main()
{
    int t;
    scanf("%d",&t);
    while(t!=0)
    {
        int n,m;
        scanf("%d %d",&n,&m);
        char s[300];
        scanf("%s",s);
        int i,head=0,sum=0;
        for(i=0;i<n;i++)
        {
            if(s[i]=='('){
                
                head++;
            }
            if(s[i]==')'&&head!=0)
            {
                head--;
                sum++;
            }
        }
        if(sum>=m)printf("1\n");
        else printf("0\n");
        t--;
    }
    return 0;
}
匹配括号
能匹配的括号组数量比m大就ok
光看翻译真看不懂啥意思

 

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int a,b;
int sum=0;
void kk(int x,int y);


int main()
{
    scanf("%d %d",&a,&b);
    kk(1,0);
    if(sum>0)printf("Yes");
    else printf("No");
    return 0;
}

void kk(int x,int y)
{
    if(x==b&&y==a)
    {
        sum++;
        return ;
    }
    if(x>b||y>a)
        return ;
    kk(x+1,y+1);
    if(y>0)
        kk(x,y+2);
}

搜索,枚举

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int main()
{
    int t;
    scanf("%d",&t);
    int l;
    for(l=0;l<t;l++)
    {
        int n;
        scanf("%d",&n);
        int a[2*n],b[2*n];
        int i;
        for(i=0;i<2*n;i++)
        {
            scanf("%d",&a[i]);
        }
        for(i=0;i<2*n;i++)
        {
            scanf("%d",&b[i]);
        }
        int aa=n,bb=n;
        for(i=0;i<2*n;i++)
        {
            if(a[i]==b[i])
            {
                if(aa>0)
                {
                    aa--;
                    if(a[i]==1)
                        a[i]=3;
                    else a[i]--;
                }
                else
                {
                    if(bb>0)
                    {
                        bb--;
                        if(b[i]==3)
                        {
                            b[i]=1;
                        }
                        else b[i]++;
                    }
                }
            }
            else
            if(b[i]-a[i]==1||(a[i]==3&&b[i]==1))
                1;
            else if(a[i]-b[i]==1||(a[i]==1&&b[i]==3))
            {

                if(aa>0)
                {
                    aa--;

                    if(b[i]==1)
                        a[i]=3;
                    else a[i]=b[i]-1;
                }
                else if(bb>0)
                {
                    bb--;

                    if(a[i]==3)
                        b[i]=1;
                    else b[i]=a[i]+1;
                }
            }
        }
        printf("%d\n",2*n);
        for(i=0;i<2*n;i++)
        {
            printf("%d ",a[i]);
        }
        printf("\n");
        for(i=0;i<2*n;i++)
        {
            printf("%d ",b[i]);
        }
        printf("\n");
    }
    return 0;
}
每队都能改n人
那分数最高肯定就是全赢咯
完事再遍历判断改数字就行了

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值