2019年安徽大学ACM/ICPC实验室新生赛(公开赛)(回顾补题)

A 素数分布

https://ac.nowcoder.com/acm/contest/2720/A

模拟

#include<bits/stdc++.h>
using namespace std;
int main(){
    int t;
    while(~scanf("%d",&t)) {
        while(t--) {
            int n,ans=0;
            scanf("%d",&n);
            for(int i=2;i<=n;i++) {
                bool flag=false;
                for(int j=2;j<=sqrt(i);j++) {
                    if(i%j==0) {
                        flag=true;
                        break;
                    }
                }
                if(!flag)
                    ans++;
            }
            printf("%d\n",ans);
        }
    }
    return 0;
}

B 食物分配

https://ac.nowcoder.com/acm/contest/2720/B

三个人分四分食物,那么当第一小+第二小的食物份量==第一大的食物份量==第二大的食物份量才可以

#include<bits/stdc++.h>
using namespace std;
vector<long long> p;
int main(){
    int t;
    while(~scanf("%d",&t)) {
        while(t--) {
            p.clear();
            long long ans=0,A,B,C,D;
            scanf("%lld%lld%lld%lld",&A,&B,&C,&D);
            ans=A+B+C+D;
            if(ans%3==0) {
                long long sum1=ans/3;
                p.push_back(A);
                p.push_back(B);
                p.push_back(C);
                p.push_back(D);
                sort(p.begin(),p.end());
                if((p[0]+p[1])==sum1&&p[2]==sum1&&p[3]==sum1)
                    printf("%lld\n",sum1);
                else
                    puts("-1");
            } else
                puts("-1");
        }
    }
    return 0;
}

C AHUICPC (Easy Version)

https://ac.nowcoder.com/acm/contest/2720/C

Special judge 可以发现字符串的个数和其中字符出现的数目有关,可以选择直接打表

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    while(~scanf("%d",&n)) {
        if(n<10) {
            for(int i=1; i<=n; ++i) printf("A");
            printf("HUICPC\n");
        }
        else printf("AAHHHHHUICPC\n");
    }
    return 0;
}

D 不定方程

https://ac.nowcoder.com/acm/contest/2720/D

GCD

#include<bits/stdc++.h>
using namespace std;
int main(){
    int t;
    while(~scanf("%d",&t)) {
        while(t--) {
            long long x,y;
            scanf("%lld%lld",&x,&y);
            long long sum1=__gcd(x,y);
            if(sum1!=1) {
                puts("-1");
                continue;
            }
            long long ans1=(x/sum1)*y;
            printf("%lld %lld %lld\n",y/sum1,x/sum1,ans1);
        }
    }
    return 0;
}

E 蕊蕊识数

https://ac.nowcoder.com/acm/contest/2720/E

我没有想到这是一个暴力,唯一说的可能是初始值的大数取模操作注意一下,可惜可惜

#include<bits/stdc++.h>
using namespace std;
string s;
bool ok(int p) {
    int d=0;
    for(int i=0;i<s.size();++i) {
        d=d*10+s[i]-'0';
        d%=p;
    }
    return d==0;
}
int main(){
    int t;
    while(~scanf("%d",&t)) {
        while(t--) {
            cin>>s;
            if(s.size()==1) 
                printf("2\n");
            else {
                vector<int> v;
                int now=0;
                for(int i=0;i<s.size();++i) 
                    now+=s[i]-'0';
                v.push_back(now);
                while(now>=10) {
                    int tp=0;
                    while(now) 
                        tp+=now%10,now/=10;
                    v.push_back(tp);
                    now=tp;
                }
                int ans=0;
                for(int i=2; ; ++i) {
                    int f=ok(i);
                    int ff=1;
                    for(int j=0; j<v.size(); ++j) {
                        if((v[j]%i==0)!=f) { 
                            ff=0; 
                            break; 
                        }
                    }
                    if(ff) { 
                        ans=i; 
                        break; 
                    }
                }
                printf("%d\n", ans);
            }
        }
    }
    return 0;
}

F 蕊蕊乘车去上学

https://ac.nowcoder.com/acm/contest/2720/F

概率求期望,直接上公式

#include<bits/stdc++.h>
using namespace std;
int main(){
    double a,b;
    while(~scanf("%lf%lf",&a,&b)) {
        printf("%.2lf\n",(a*a+b*b)/(a+b));
    }
    return 0;
}

AHUICPC (Hard Version)

https://ac.nowcoder.com/acm/contest/2720/G

不会待补

H 无尽大军

https://ac.nowcoder.com/acm/contest/2720/H

写了一个搜索然后超时,待补

发布了45 篇原创文章 · 获赞 1 · 访问量 6766

猜你喜欢

转载自blog.csdn.net/Ls_attack/article/details/104065604