概述
小白月赛1
- 目录
- A - 简单题
- B - 简单题2
- C - 分元宵
- D - 多项式乘法
- E - 圆与三角形
- F - 三视图
- G - あなたの蛙は旅⽴っています
- H - 写真がとどいています
- I - あなたの蛙が帰っています!
- J - おみやげをまらいました
目录
https://ac.nowcoder.com/acm/contest/85
A - 简单题
难点:θ=e=exp(1) exp(a)=e^a,printf("%.*fn",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("%.*fn",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("%.*fn",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("%lldn",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("%dn",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("%.2lfn",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: %dn",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;
}
}
}
最后
以上就是单纯石头为你收集整理的小白月赛1目录的全部内容,希望文章能够帮你解决小白月赛1目录所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复