【牛客】牛客小白月赛1(数学)

Posted on 2018-03-18 11:15  som_nico  阅读(417)  评论(0编辑  收藏  举报

极限  输出格式(小数点后X位)   快速幂   排列   map

 

 

A 简单题

链接:https://www.nowcoder.com/acm/contest/85/A
来源:牛客网
Etéreo 是个爱学习的好孩子。在年假期间,他依然热情于数学。他最近发现了一个高大上的东西:

他觉得这里的  非常的厉害!然后他又告诉你:


他会告诉你  和  ,想请你告诉他  的值。当然这是一个小数,所以请你在小数点后保留  位。
Etéreo 是个“问题小子”,有很多询问,请你一一回答。 
注意,题中  都是实数。 

输入描述:

第一行一个整数 

 ,表示 Etéreo 的询问个数。 
接下去

 行,每行三个整数 

 ,表示一个询问,意义同题目描述。 

输出描述:

输出共 

 行,每行一个小数,表示答案 

示例1

输入

2
5 196 1
3 60 4

输出

29089.0
1205.1322

备注:





题中小数请尽量取精确值。
解题:

(C语言)当X是变量的时候可以用printf("%*lf\n",x,a);     *来匹配X。

(CPP)cout<<fixed<<setprecision(x)<<a<<endl;


#include<bits/stdc++.h>
using namespace std;
int main()
{
    int m;
    cin>>m;
    while(m--)
    {
        int a,b,c;
        double e=2.718281828459045,n;
        cin>>a>>b>>c;
        n=pow(e,a);
        cout<<fixed<<setprecision(c)<<n*b<<endl;
    }
    return 0;
}

 

 

C 分元宵

链接:https://www.nowcoder.com/acm/contest/85/C
来源:牛客网

题目描述

毕竟是元宵节,晚上还是要吃几个元宵。 Etéreo 家可是个大家庭,元宵的数量,甚至是餐具的数量,都多的惊人。现在,爱数学的 Etéreo 又来问你有趣的数学题了,快来秒掉它!   Etéreo 家里有  种元宵馅,  种元宵皮,每个元宵可以选择任意一种元宵馅和任意一种元宵皮。同时有  张桌子,每张桌子上放了  只碗,每只碗能放一只元宵。每只碗都要装一只元宵。Etéreo 会告诉你  的值,想请问你有多少种装元宵的方式。答案对  取模。 
两种方式被认为是不同的当且仅当至少有一只碗存在于两种方式的同一个位置但是里面有至少一个元宵不同。 
两个元宵被认为是不同的当且仅当元宵馅不同或者元宵皮不同。 
碗和桌子都是有编号的,但是你不能改变碗或桌子的编号。 
你可以认为碗和桌子都是固定的,你只能改变元宵的种类和位置。

输入描述:

输入共一行,五个整数 
 ,意义同题目描述。

输出描述:

每行一个整数,表示答案。
示例1

输入

1 2 1 3 998244353

输出

8

备注:




 
题解: a^b ,b不能取余
 
#include<bits/stdc++.h>
using namespace std;

long long quickmod(long long a,long long b,long long m)
{
    long long ans = 1;
    while(b)//用一个循环从右到左便利b的所有二进制位
    {
        if(b&1)//判断此时b[i]的二进制位是否为1
        {
            ans = (ans*a)%m;//乘到结果上,这里a是a^(2^i)%m
            b--;//把该为变0
        }
        b/=2;
        a = a*a%m;
    }
    return ans;
}
int main()
{
    long long s,v,w,g,A;
    cin>>s>>v>>w>>g>>A;
    s=s%A;
    v=v%A;
    s=s*v%A;
    if(s==0)printf("0\n");
    else
    cout<<quickmod(s,w*g,A)<<endl;
    return 0;

}

 

 

D 多项式乘法

 
链接:https://www.nowcoder.com/acm/contest/85/D
来源:牛客网

Etéreo 吃完了元宵,又开始思考数学问题了。这次他拿了两个多项式  和  。他知道这两个多项式的乘积也是一个多项式,但他不清楚每一项的系数。所以他又来请问你咯。

输入描述:

输入共三行。 
第一行两个整数
 ,表示多项式 
 的最高次项次数 
 的最高次项次数 
 。 
第二行
 个整数,表示多项式 
 的每一项的系数。按次数从小到大的顺序排列。 
第三行
 个整数,表示多项式 
 的每一项的系数。按次数从小到大的顺序排列。

输出描述:

输出共一行,
 个整数,表示乘积多项式的每一项的系数。按次数从小到大排列。
示例1

输入

2 3
2 1 3
1 2 0 2

输出

2 5 5 10 2 6

说明

备注:



 系数 
#include<bits/stdc++.h>
using namespace std;
int x[507],y[507],z[1010];
int main()
{
    int m,n,i,j;
    cin>>n>>m;
    for(i=0;i<=n;i++)
    {
        cin>>x[i];
    }
    for(i=0;i<=m;i++)
    {
        cin>>y[i];
    }
    memset(z,0,sizeof(z));
    for(i=0;i<=n;i++)
    {
        for(j=0;j<=m;j++)
        {
            z[i+j]+=x[i]*y[j];
        }
    }
    for(i=0;i<m+n;i++)
        cout<<z[i]<<" ";
    cout<<z[i]<<endl;
    return 0;

}

 E 圆与三角形

链接:https://www.nowcoder.com/acm/contest/85/E
来源:牛客网

成功解决了小马喝水问题之后, Etéreo 感到无比的兴奋。他迫不及待地又开始了圆与三角形间关系的研究。在图书馆里泡了一天之后, Etéreo 神秘兮兮的找到你,给了你一个圆,一个内接三角形,和一个公式 :


那么问题来了,对于给定半径  的圆,在其所有的内接三角形中,  的值最大可以是多少?

输入描述:

输入共一行,一个实数 

 ,表示给定圆的半径。

输出描述:

输出共一行,一个实数,最大的 

 值,保留两位小数(四舍五入)。

示例1

输入

1.00

输出

2.00

备注:

题解: tana/2tanb/2+tanb/2tanc/2+tanc/2tana/2=1    sina*r最大值四舍五入之后即为r  

#include<bits/stdc++.h>
using namespace std;
int main()
{
    double a;
    int c=2;
    cin>>a;
    cout<<fixed<<setprecision(c)<<a+1<<endl;
    return 0;
}