美团春招第一场3/14笔试测开题解

(码风很屎别在意~)#一起聊美团#
1.很简单直接都是一个数字就行
#include <bits/stdc++.h>

using namespace std;

#define endl '\n';
void solve() {
    int n; 
    cin >> n;
    vector<int> v(n + 1);
    for(int i = 1; i <= n; i++) {
        cin >> v[i];
        cout << (n + 1) - v[i] << " \n"[i == n];
    }
}

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);

    int t;
    cin >> t;
    while(t--) {
        solve();
    }  
}

2.只用算平方就行了,直接暴力。如下

#include <bits/stdc++.h>

using namespace std;

#define endl '\n';

bool cal(int x) {
    int tot = 0;
    for(int i = 1; i * i <= x; i++) {
        if(x / i * i == x)tot += 2;
    }
    if(tot % 2)return false;
    else return true;
}

void solve() {
    int l, r;
    cin >> l >> r;
    int lmin = sqrt(l);
    int ans = 0;
    lmin = lmin * lmin == l ? lmin : lmin + 1;
    if(lmin == 1)ans++, lmin++;
    for(int i = lmin; i * i <= r; i++) {
        if(cal(i * i))ans++;
    }
    cout << ans;
}

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);

    int t;
    t = 1;
    while(t--) {
        solve();
    }  
}
3.稍微推一下公式就行,题解如下
#include <bits/stdc++.h>

using namespace std;

#define endl '\n';
#define int long long
int mod = 1e9 + 7;

const int N = 1e6 + 10;
int a[N];

void solve() {
    int k, q;
    cin >> k >> q;
    for(int i = 1; i <= k; i++) {
        a[i] = 1;
    }
    a[k + 1] = k ;
    int tot = k;
    for(int i = k + 2; i <= 1000000; i++) {
        tot = ((tot + a[i - 1])  - a[i - k - 1]);
        a[i] = tot % mod; 
    }

    while(q--) {
        int x;
        cin >> x;
        cout << a[x] % mod << endl;
    }
}

signed main() {
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);

    int t;
    t = 1;
    while(t--) {
        solve();
    }  
}
全部评论

相关推荐

我一开始走的是后端,后来听说测试开发没什么门槛转,而且薪资也高,适合双非本科,说实话前期投入也挺大的,学了很久的自动化测试,测试理论,框架搭建,本来以为这样能在就业市场上有点竞争力,结果现实是靠着开发经历和小厂实习才只拿到了一个中厂的实习offer,进去之后每天的工作基本就是点点点,跑用例,修环境,处理一些重复的问题,真正能提升技术的内容很少,很多时间都在消耗,做了一段时间之后我明显感觉自己成长很慢,远远不如学后端的那段时间,而且这段经历对下一段实习帮助也不大,后来我开始投新的实习,结果发现一个很现实的问题,市场上对测试开发的要求其实很高,现在都基本要求agent+开发能力,测开要结合ai了,但是我这种背景又很难卷进去,投了很多基本没有回应,整个人就有点卡住了,既没有成长也没有机会,我感觉我是走错路了于是我开始考虑转方向,后来接触到了运维开发,一开始只是简单了解,后来越看越觉得这个方向更适合我,就开始系统去学一些基础,比如linux,脚本,服务部署,还有一些简单的自动化运维思路,一点点容器的内容,其实时间投入并没有之前学测开那么夸张,但是效果却完全不一样,后面再去投运维开发相关的岗位,很快就有了反馈,而且面试的过程也比之前顺畅很多,面试官完全没有测开那边那样刁钻,可能是赛道人少的原因,最后也顺利拿到了好几个offer,其实让我挺震惊的,回过头来看,我现在觉得对于双非本科来说,选对方向真的比单纯努力更重要,运维开发这个方向目前竞争没有那么激烈,双非本科完全够,甚至是能打,只要有点技术深度,基础扎实一点就很容易做出区分,如果你现在也在测试开发或者后端里感觉提升有限,或者投递一直没有结果,可以尝试换个思路,说不定会有完全不一样的结果,可以拿我的经历做一个参考吧。最后,不管是运维也好,能拿到好的薪资找到不错的工作就是好的方向,也没人规定一定要去某个方向,共勉吧
计算机有哪些岗位值得去?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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