我是靠谱客的博主 犹豫皮带,最近开发中收集的这篇文章主要介绍牛客寒假算法集训营(4),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

链接   牛客寒假算法训练营(四)

A 取石子游戏

签到题 先手必赢

B 走方格

 

C 走迷宫

 

E 涂颜色

显然  题目要求 相邻方格颜色不能一样  又只有黑白两种颜色

那么一行就只有两种涂色方法   所以n行  就是2的n次方

然后需要注意的是  这个题是大数   我们需要用欧拉降幂   关于欧拉降幂

c++代码

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
typedef long long ll;
const int maxn=1e6+7;
const int mod=1e9+7;
char a[maxn],b[maxn];
ll pow_mod(ll x,ll n){//快速幂
    ll ans=1;
    x=x%mod;
    while(n!=0){
        if(n&1)
            ans=ans*x%mod;
        n>>=1;
        x=x*x%mod;
    }
    return ans;
}
int main(){
    scanf("%s%s",a,b);
    int l=strlen(a);
    ll n=0;
    //欧拉降幂
    for(int i=0;i<l;i++){
        n=(n*10+a[i]-'0')%(mod-1);
    }
    printf("%lldn",pow_mod(2,n));
    return 0;
}

当然 对于大数问题   我们可以用python(没学过  临时试了一下py) 

  py代码

def pow_mod(a,b,c):
    ans=1
    while b>0:
        if b&1:
            ans=ans*a%c
        b>>=1
        a=a*a%c
    return ans%c
n,m = map(int,input().split())
n=n%1000000006
ans = pow_mod(2,n,1000000007)
print(ans)

赛后知道了  py里面有一个算幂的函数  pow   这个函数可以进行a的b次方mod n  的运算  而且不用降幂

果然 python就是可以为所欲为  附上代码

n,m = list(map(int,input().split()))
print(pow(2,n,1000000007))
//读一个数的方法
n= int(input())

I 回文串

 

J 减肥计划

这个题也算是本场签到题

给了两个力和角度  求合力

余弦定理就好了

注意一下使用三角函数 传参应该是弧度制  所以先把题目给的角度转换成弧度制

代码

#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<string.h>
#include<math.h>
using namespace std;
typedef long long ll;
const int maxn=1e5+7;
const int INF=0x3f3f3f3f;
const double PI=acos(-1.0);
int n,x,y;
int main(){
    double a,b,r;
    scanf("%lf%lf%lf",&a,&b,&r);
    r=r*PI/180;//转换弧度制
    r=PI-r;
    double ans=a*a+b*b-2*a*b*cos(r);//余弦定理
    printf("%.10fn",sqrt(ans));
    return 0;
}

 

 

 

 

 

最后

以上就是犹豫皮带为你收集整理的牛客寒假算法集训营(4)的全部内容,希望文章能够帮你解决牛客寒假算法集训营(4)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部