4.16 360 笔试编程题 技术B卷

第一题

给定n个人,每个人有能力值,是一个排列,每次第一个人和第二个人比赛,
输的一方会放在最后面,当有一个人连续赢了m场比赛结束,
问总共经过几场比赛。
按题意deque 模拟。

#include<bits/stdc++.h>
using namespace std;
#define me(a,x) memset(a,x,sizeof(a))
#define sc scanf
#define pr printf
#define IN freopen("in.txt","r",stdin);
#define OUT freopen("out.txt","w",stdout);
typedef long long ll;
typedef unsigned long long ull;
const int N=1e6+6;
const int mod=1e9+7;
int O(){putchar('\n');return 0;}template<typename T,typename... Ty>
int O(const T& a,const Ty&... b){cout<<a<<' ';return O(b...);}
void I(){}template<typename T,typename... Ty>void I(T& a,Ty&... b){cin>>a;I(b...);}
template<typename T>void db(T *bg,T *ed){while(bg!=ed)cout<<*bg++<<' ';pr("\n");}
inline ll mul_64(ll x,ll y,ll c){return (x*y-(ll)((long double)x/c*y)*c+c)%c;}
inline ll ksm(ll a,ll b,ll c){ll ans=1;for(;b;b>>=1,a=a*a%c)if(b&1)ans=ans*a%c;return ans;}
int n,m;
int a[N]={0};
deque<int>q;
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        int u;sc("%d",&u);
        q.push_back(u);
        a[u]=0;
    }
    if(n==1)return O(m);
    int ans=0;
    while(true){
        int t=q.front();
        if(t==n)break;
        q.pop_front();
        int k=q.front();
        q.pop_front();
        ans++;
        if(t<k){
            a[t]=0;
            a[k]++;
            if(a[k]==m){
                return O(ans);
            }
            q.push_back(t);
            q.push_front(k);
        }else {
            a[k]=0;
            a[t]++;
            if(a[t]==m){
                return O(ans);
            }
            q.push_back(k);
            q.push_front(t);
        }
    }
    return O(ans+m-a[n]);   
}

第二题
给你一个,一个

,

问你的概率是多少。
简单概率dp,设 表示 的区间是的概率,按照题目意思转移就行。

#include<bits/stdc++.h>
using namespace std;
#define me(a,x) memset(a,x,sizeof(a))
#define sc scanf
#define pr printf
#define IN freopen("in.txt","r",stdin);
#define OUT freopen("out.txt","w",stdout);
typedef long long ll;
typedef unsigned long long ull;
const int N=1e6+6;
const int mod=1e9+7;
int O(){putchar('\n');return 0;}template<typename T,typename... Ty>
int O(const T& a,const Ty&... b){cout<<a<<' ';return O(b...);}
void I(){}template<typename T,typename... Ty>void I(T& a,Ty&... b){cin>>a;I(b...);}
template<typename T>void db(T *bg,T *ed){while(bg!=ed)cout<<*bg++<<' ';pr("\n");}
inline ll mul_64(ll x,ll y,ll c){return (x*y-(ll)((long double)x/c*y)*c+c)%c;}
inline ll ksm(ll a,ll b,ll c){ll ans=1;for(;b;b>>=1,a=a*a%c)if(b&1)ans=ans*a%c;return ans;}
double dp[105][105]={0};
int main(){
    int n,a0;
    sc("%d%d",&n,&a0);
    for(int i=0;i<=a0;i++)dp[1][a0-i]=1.0/(1+a0);
    for(int i=1;i<=n;i++){
        for(int j=0;j<=a0;j++){
            for(int k=0;k<=j;k++){
                dp[i+1][j-k]+=dp[i][j]*(1.0/(1+j));
            }
        }
    }
    pr("%.5f\n",dp[n][0]);
}
#360后端研发笔试360笔试##笔试题目##360公司#
全部评论
厉害了
点赞 回复
分享
发布于 2020-04-16 17:36
太强了
点赞 回复
分享
发布于 2020-04-16 17:38
百信银行
校招火热招聘中
官网直投
tql
点赞 回复
分享
发布于 2020-04-16 17:38
c++两题ac代码:https://pasteme.cn/33461
点赞 回复
分享
发布于 2020-04-16 17:44
第一题顺序n-1次比较后就是最强的人在擂台上了,后面一定是全赢直接加上剩余需要场次就好了
点赞 回复
分享
发布于 2020-04-16 17:48
老哥们,谁能给我讲解一下第二题什么是概率哦?是1/区间长度么?那随机的数字,我怎么知道长度是多少呀,小白哭晕。先谢谢啦😭
点赞 回复
分享
发布于 2020-04-16 17:58
收到360面试通知了吗
点赞 回复
分享
发布于 2020-04-27 00:56
面的什么岗位呢?
点赞 回复
分享
发布于 2020-06-01 23:36
请问是校招还是社招
点赞 回复
分享
发布于 2020-08-03 23:30

相关推荐

哈喽,大家好,今天我们来聊个话题,前端Leader究竟要不要写代码?理想哥也曾做过一段时间的管理,积累了一些管理经验,我觉得前端Leader&nbsp;究竟要不要写代码需要取决于团队是否需要,如果Leader写代码可以给团队带来效益最大化,那就写,如果不能,那就不需要写。具体其实可以根据你的团队人数规模来决定。如果团队人数小于10人,那Leader应该大部分时间以写代码为主,不仅写代码,还需要承担团队疑难问题的攻坚者和解决者,必须得起到技术兜底的作用。核心的代码甚至你应该自己亲自写,免得后续不断地因为手下人经验不足而不断返工。写代码之外,少部分时间用来管理。如果团队人数10-20人时,Leader就会感觉自己的时间被碎片化了,因为要不断地去处理各种问题,需要不断出决策方案。这个时候确实很难投入很多时间在写代码上,需要找一个技术上的backup,由这个backup来做核心代码的编写,自己可以从日常代码编写中抽出身来做架构设计和一些code&nbsp;review工作,这个时候,可能需要投入60%时间用来做管理,40%时间来做研发了。如果团队人数超过20人,Leader的时间就会更加碎片化,需要去处理一个个团队的突发事件,还要去和各个部分撕逼,帮组里面小朋友成长提高升职加薪,还要做各种PPT等等。这个时候就要尽可能的让自己从代码编写中脱身出来,把具体的代码编写交给一个个的小组长,让团队成长,靠团队出结果,自己应该从全局角度去思考,去做,如何提升团队整体的战斗力,当然,如果实在手痒,也可以挑选一些重要但是不紧急的开发任务,比如写一些自动化工具啥的给团队来用。理想哥也建议大家做管理后,还是应该不断地去学习技术,精进技术,时常找机会写写代码,让自己不断保持手感和对技术的敏感度,只要有技术傍身,找工作时就有底气。最后呢,欢迎大家来聊聊,你们公司的前端Leader写代码吗?欢迎评论区留言。#前端##前端面试必备宝典##前端爆了#
点赞 评论 收藏
转发
6 22 评论
分享
牛客网
牛客企业服务