zoukankan      html  css  js  c++  java
  • 2020上海高校程序设计竞赛暨第18届上海大学程序设计联赛夏季赛(同步赛)

     A 同源

     规律:n=n/k;

    如果n%k≠0,则一定输出-1 -1 -1,去掉这个判断,通过率只有37.5%

    举个例子,n=25,k=2;程序实际输出的是4 6 14,这三个数加起来等于24,不等于25,这是一个wa点

    只要输出一组数据即可

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    ll gcd(ll a,ll b)
    {
        return (b>0)?gcd(b,a%b):a;
    }
    int main()
    {
        ll t;
        scanf("%lld",&t);
        while(t--)
        {
            ll f=1;
            ll n,k;
            scanf("%lld%lld",&n,&k);
            if(n%k==0)
            {
                n/=k;
                for(ll i=2; i<=10; i++)
                {
                    for(ll j=2; j<=10; j++)
                    {
                        ll kk=n-i-j;
                        if(kk<=1)
                            continue;
                        if(gcd(i,j)==1&&gcd(i,kk)==1&&gcd(j,kk)==1&&i!=j&&i!=kk&&j!=kk)
                        {
                            f=0;
                            printf("%lld %lld %lld
    ",i*k,j*k,kk*k);
                            break;
                        }
                    }
                    if(f==0)
                        break;
                }
            }
            if(f)
                printf("-1 -1 -1
    ");
        }
    }

    循环体中的kk表示的是第三个数,第三个数有可能会存在比2小的数,在这里需要对kk做一个特判,如果小于2则跳过j++,否则根据题目意思进行判断,找到了用f标记一下,f=0即为找到,直接跳出两个for循环体,未找到,将在循环外输出默认的-1 -1 -1。

    为了让运行时间更短对i和j进行了限制,规定循环均只从2~10,至于kk只要大于等于2即可,大大压缩了时间。

    B 分子

     字符串模拟

    s表示最终的分子量,sum表示部分的分子量,为临时变量,num表示数字下标

    读到'('的时候把临时变量sum加到s上,清空sum内容,准备读取括号内部的分子量。如果读到数字,从左到右一位一位的读入到num中,若下一个字符是非数字字符(包括后括号和字母),则清空num中的内容,同理读到')',也是一样的。

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    string str;
    ll ele(ll i)
    {
        if(str[i]=='C')
            return 13;
        if(str[i]=='H')
            return 1;
        if(str[i]=='O')
            return 17;
    }
    int main()
    {
        cin>>str;
        ll len=str.length();
        ll s=0,sum=0,e,num=0;
        ll i=0;
        while(i<len)
        {
            if(str[i]=='C'||str[i]=='H'||str[i]=='O')
            {
                e=ele(i);
                i++;
                while(str[i]>='0'&&str[i]<='9')
                {
                    num=num*10+str[i]-'0';
                    i++;
                }
                if(num)
                {
                    e*=num;
                    num=0;
                }
                sum+=e;
            }
            if(str[i]=='(')
            {
                i++;
                s+=sum;
                sum=0;
            }
            if(str[i]==')')
            {
                i++;
                while(str[i]>='0'&&str[i]<='9')
                {
                    num=num*10+str[i]-'0';
                    i++;
                }
                if(num)
                {
                    sum*=num;
                    num=0;
                }
                s+=sum;
                sum=0;
            }
        }
        printf("%lld
    ",s+sum);
    }

    C 爵士

     水题,用getline读取每一行的字符串,判断更字符串内是否含有2,s2++,输出 s/ 全部字符串(n) ,保留10位小数。

    #include <bits/stdc++.h>
    #define T int t ;cin >> t;while(t--)
    using namespace std ;
    typedef long long ll;
    int main()
    {
        T
        {
            ll n;
            scanf("%lld",&n);
            double s2=0,sall=n;
            string s;
            getchar();
            while(n--)
            {
                getline(cin,s);
                for(ll j=0; j<s.length(); j++)
                {
                    if(s[j]=='2')
                    {
                        s2++;
                        break;
                    }
                }
            }
            double sum=0;
            sum=s2/sall;
            printf("%.10lf
    ",sum);
        }
    }

     

    E-内存

     

    大模拟

    F 游戏

    不管如何,输出Yes就对了

    C++14最短代码:

    #include<cstdio>
    main(){int t;scanf("%d",&t);while(t--)printf("Yes
    ");}
  • 相关阅读:
    Golang手动分页,按等份拆分数据
    GORM无法映射到结构体上
    VSCODE GOLANG运行多个服务
    解决,MAVEN
    Properties配置文件常见错误写法以及转义字符说明
    Pentaho Data Integration (PDI/Kettle)与Java版本支持关系
    MYSQL之读写分离搭建方案
    Windows下创建软件快速启动命令
    Sonar的一些使用总结
    使用SVG Path绘图
  • 原文地址:https://www.cnblogs.com/jackwang-sparrow/p/13444845.html
Copyright © 2011-2022 走看看