小白月赛1

目录

https://ac.nowcoder.com/acm/contest/85

A - 简单题

题目A
在这里插入图片描述
难点:θ=e=exp(1) exp(a)=e^a,printf("%.*f\n",c,m);结果保存c为小数

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c,t;
    double s,w,m;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d %d %d",&a,&b,&c);
        w=exp(a);
        m=b*w;
        printf("%.*f\n",c,m);
    }
}

B - 简单题2

在这里插入图片描述
难点:pow(a,b),b可以为小数

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c,t;
    double s,w,m;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d %d %d",&a,&b,&c);
        m=pow(a,exp(1))/b;
        printf("%.*f\n",c,m);
    }
}

C - 分元宵

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
    ll a,b,c,d,s,w=0,m,n=1;
    scanf("%lld %lld %lld %lld %lld",&a,&b,&c,&d,&s);
    while(b)
    {
        if(b&1)w=(w+a)%s;
        a=a*2%s;
        b>>=1;
    }
    while(c)
    {
        if(c&1)n=n*w%s;
        w=w*w%s;
        c>>=1;
    }
    c=d;
    w=n;
    n=1;
    while(c)
    {
        if(c&1)n=n*w%s;
        w=w*w%s;
        c>>=1;
    }
    printf("%lld\n",n%s);
}

D - 多项式乘法

在这里插入图片描述
// 暴力

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
int n,m;
int a[505],b[505],c[1001];
scanf("%d %d",&n,&m);
memset(c,0,sizeof(c));
for(int i=0;i<=n;i++){
    scanf("%d",&a[i]);
}
for(int i=0;i<=m;i++){
    scanf("%d",&b[i]);
    for(int f=0;f<=n;f++){
        c[i+f]=b[i]*a[f]+c[i+f];
    }
}
for(int i=0;i<n+m;i++)
{
    printf("%d ",c[i]);
}
printf("%d\n",c[n+m]);
}

E - 圆与三角形

在这里插入图片描述
// △ABC中,tanA/2tanB/2+tanB/2tanC/2+tanA/2*tanC/2=1;
//sinA越大,N越大,sinAmax=1;所以N=R+1

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
double n;
scanf("%lf",&n);
printf("%.2lf\n",n+1);
}

F - 三视图

在这里插入图片描述
//明确三个二维数组的行列对应x,y,z中的哪个

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int a[1000][1000];
int b[1000][1000];
int c[1000][1000];
int main()
{

    memset(a,0,sizeof(a));
    memset(b,0,sizeof(a));
    memset(c,0,sizeof(a));
    int x,y,z,n,x1,y1,z1,i=0;
    scanf("%d%d%d%d",&x,&y,&z,&n);//cout<<i<<endl;
    for(i=0; i<n; i++)
    {
        scanf("%d %d %d",&x1,&y1,&z1);
        a[x1-1][y1-1]=1;
        b[z1-1][y1-1]=1;
        c[x1-1][z-z1]=1;
       // cout<<i<<endl;
    }

    for(y1=y-1; y1>=0; y1--)
    {
        for(x1=0; x1<x; x1++)
        {
            if(a[x1][y1]==1)
            {
                printf("x");
            }
            else
            {
                printf(".");
            }

        }
        printf(" ");
        for(z1=0; z1<z; z1++)
        {
            if(b[z1][y1]==1)
            {
                printf("x");
            }
            else
            {
                printf(".");
            }
        }
        printf("\n");
    }
printf("\n");
    for(z1=z-1; z1>=0; z1--)
    {
        for(x1=0; x1<x; x1++)
        {
            if(c[x1][z1]==1)
            {
                printf("x");
            }
            else
            {
                printf(".");
            }
        }
        printf("\n");
    }

}

G - あなたの蛙は旅⽴っています

在这里插入图片描述

解析------动态规划(我不会)

H - 写真がとどいています

在这里插入图片描述

//音符有9个

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
    ios::sync_with_stdio(false);
    int n;
    char c,s[5005];
    memset(s,0,sizeof(s));
    cin>>n;
    for(int i=0; i<9; i++)
    {
        for(int f=0; f<n; f++)
        {
            cin>>c;
            if(c=='o')
            {
                switch(i)
                {
                case 0:
                    s[f]='F';
                    break;
                case 1:
                    s[f]='E';
                    break;
                case 2:
                    s[f]='D';
                    break;
                case 3:
                    s[f]='C';
                    break;
                case 4:
                    s[f]='B';
                    break;
                case 5:
                    s[f]='A';
                    break;
                case 6:
                    s[f]='G';
                    break;
                case 7:
                    s[f]='F';
                    break;
                case 8:
                    s[f]='E';
                    break;
                }
            }
            if(i==8&&c=='|')
            {
                s[f]='|';
            }
        }

    }
    for(int f=0; f<n; f++)
    {
        if(s[f]!=0)
            cout<<s[f];
        else
            cout<<' ';
    }
    cout<<endl;

}

I - あなたの蛙が帰っています!

在这里插入图片描述
//卡特兰数
//解析

#include<bits/stdc++.h>
#define M 998244353
using namespace std;
typedef long long ll;
int i,T,N;
int fastpow(ll a,int b)
{
    ll s=1;
    for(;b;a=a*a%M,b>>=1)if(b&1)s=s*a%M;
    return s;
}
int main()
{
    ll F[100005];
    for(F[0]=i=1;i<100001;i++)F[i]=F[i-1]*(4*i-2)%M*fastpow(i+1,M-2)%M;
    scanf("%d",&T);
    for(i=1;i<=T;i++)
    {
        scanf("%d",&N);
        printf("Case #%d: %d\n",i,(F[N]-F[N-1]+M)%M);
    }
    return 0;
}

J - おみやげをまらいました

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
    ios::sync_with_stdio(false);
    int n;
    string x1,x2,y1,y2,z1,z2,c;
    cin>>x1>>x2>>y1>>y2>>z1>>z2;
    cin>>n;
    while(n--)
    {
        cin>>c;
        if(c==x2)
        {
            cout<<x1<<endl;
        }
        else if(c==y2)
        {
            cout<<y1<<endl;
        }
        else if(c==z2)
        {
            cout<<z1<<endl;
        }
        else
        {
            cout<<"Fake"<<endl;
        }
    }
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值