百度笔试 10.15 题解 麻将卷

百度麻将笔试 10.15 题解
后端卷

第一题 贪心
n选k 如果选择的数的下一个数没被选,积分+1
所以最后一个数一定能拿一分,而在 n/2的转折处
1 (2) 3 (4) 5 (6)(n = 6, k = 3) 可以拿三分
k = 4 时
(1) (2) 3 (4) 5 (6) 仍然可以拿三分,也就是选择了这个1 不会得分但也不会丢分
然后注意数字范围取long long 
while(t --){
        long long int n;
        long long int k;
        cin>>n>>k;
        //n个数里最多可以得n/2 ……
        //1 - n里假如 n 是奇数 1,2,3可以选2两个数
        //假如是偶数那可以选
        long long int res = 0;
        if(n % 2 == 1) res = n/2 + 1;
        else res = n/2;
        //到这里是最多能拿多少分,之后每选一个还得扣
        if(k <= res) cout<<k<<endl;
        else{
            long long int tmp = n + 1;
            cout<<tmp - k << endl;
        }
    }

第二题 约瑟夫环问题
注意到每一次选择一个数,都能确定下来结果的一位数
比如 1 2 3 4
第一次1到队尾,我们就能确定2是结果里的第一位,并且每一次都能确定下来一位
所以本质是约瑟夫环问题
代码就不放了,我是用队列模拟的

第三题 麻将
想了半天dp想不出来,那就搜索一下试试,刚好过了
——————
//dp想破头想不出来
//试一下搜索
//广度优先搜索
//每一轮找刻子或者顺子
//然后四轮后找雀头
//找得到就res ++
//数据量应该支持
//哈希表记录一下string

unordered_set<string> uset;
void dfs(vector<int> &amp;amp;v,int round){
    if(round == 4){
        for(int i = 0;i<v.size();i++){
            if(v[i] >= 2){
                v[i] -=2;
                string tmp;
                for(int j = 0;j < v.size();j++){
                    tmp.push_back(v[j] + '0');
                    tmp.push_back(j + '0');
                }
                v[i] += 2;
                uset.insert(tmp);
            }
        }
        return;
    }
    //dfs
    //先搜刻子,再搜顺子
    for(int i = 0;i<v.size();i++){
        if(v[i] >= 3){
            v[i] -= 3;
            dfs(v, round + 1);
            v[i] += 3;
        }
    }
    for(int i = 1;i < v.size()-1;i++){
        if(v[i-1] >= 1 &amp;amp;&amp;amp; v[i] >= 1 &amp;amp;&amp;amp; v[i + 1] >= 1){
            v[i - 1] --;
            v[i] --;
            v[i + 1] --;
            dfs(v,round + 1);
            v[i - 1] ++;
            v[i] ++;
            v[i + 1] ++;
        }
    }
}
int main() {
    int n;
    cin>>n;
    if(n <= 3) cout<<0;
    else{
        vector<int> vo(n);
        fill(vo.begin(),vo.end(),4);
        dfs(vo, 0);
        cout<<uset.size()<<endl;
    }
    
}
全部评论
请问佬是三道全a了吗?有约面吗?
点赞 回复 分享
发布于 2024-10-16 16:57 辽宁

相关推荐

秋招结束已经一段时间了&nbsp;一直在忙着毕业的事情&nbsp;浅浅总结一下自己的秋招经历吧~本人BG双非硕&nbsp;后端选手&nbsp;有一段小厂+腾讯暑期实习腾讯暑期转正loser秋招结束已经结束了有一段时间了总结一下秋招历程最大的感受就是秋招比起暑期更加卡学历秋招总共投了60多家吧一直面&nbsp;一直挂也投了两家银行科技岗&nbsp;都走到终面体检了都拒了(总体感觉本地的银行还是挺容易过的)可能本人更想去私企&nbsp;并且银行也挺卷听说一直到11月就只有一家小厂的offer并签约当保底然后也突然被WXG捞了&nbsp;本来都不对腾讯抱有希望了可能经过一整个秋招的面试积累吧&nbsp;以及本人有ACM经历&nbsp;WXG整体面试以做题偏多(一二面做了5道题&nbsp;4道hard)&nbsp;比较合自己胃口&nbsp;差不多半个月就把五轮面试过了进入录用评估&nbsp;但也一直没有结果到后面也陆陆续续有几家中厂也终面过泡池子一直到12月初华子给开了base杭州&nbsp;14a因为华子公积金的原因&nbsp;和小厂薪资上差距不大&nbsp;所以也一直犹豫是否毁约签华子&nbsp;但是内心也还对WXG抱有一丝幻想(虽然一直没有保温也没有任何消息)然后一直到12月中下旬&nbsp;华子要求去现场签约了&nbsp;但是WXG还是没有消息&nbsp;然后就连续发邮件和打电话催了好多次&nbsp;还是回复耐心等待直到华子签约那天&nbsp;经过内心挣扎已经决定毁约签华子了&nbsp;可能还是想平台更大一点吧&nbsp;然后最戏剧性的一幕来了&nbsp;就在我发毁约邮件没有5秒&nbsp;WXG打电话开奖了&nbsp;并且开奖也十分有诚意&nbsp;最终还是没有签约成功华子&nbsp;研究生期间也打了很多次华子的比赛还是对华子有感情的555整个秋招都是伴随着焦虑的&nbsp;我认为自己也是秋招大部分人的画像&nbsp;屡屡碰壁后不断怀疑自己&nbsp;但是可能自己也比较幸运吧&nbsp;但是也感谢自己在一次次陷入迷茫都没有放弃自己&nbsp;还是一直努力背八股&nbsp;刷题也祝各位牛友们共勉&nbsp;就算暂时没有好的offer&nbsp;不放弃一定会有好的结果的!!
点赞 评论 收藏
分享
2025-12-19 15:04
门头沟学院 Java
小肥罗:hr爱上你了,你负责吗哈哈
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务