【Atcoder训练记录】AtCoder Beginner Contest 389

训练情况

赛后反思

赛后VP的,C题忘记vector里面erase复杂度是 O(n) 的了,导致TLE了两发,换成双端deque就过了

A题

取字符串第一位和第三位取int相乘

#include <bits/stdc++.h>
// #define int long long
#define endl '\n'

using namespace std;

void solve(){
    string s; cin>>s;
    int x = s[0] - '0';
    int y = s[2] - '0';
    cout<<x*y<<endl;
}

signed main(){
    // int T; cin>>T; while(T--)
    solve();
    return 0;
}

B题

求最小的 \(n\),使得 \(n! \ge x\),用while语句,每次乘 \(i++\),直到答案超过 \(x\) 停止,输出当前的 \(i\) 即可

#include <bits/stdc++.h>
#define int long long
#define endl '\n'

using namespace std;

void solve(){
    int x; cin>>x;
    int ans = 1;
    int i = 2;
    while(i*ans<x){
        ans*=i;
        i++;
    }
    cout<<i<<endl;
}

signed main(){
    // int T; cin>>T; while(T--)
    solve();
    return 0;
}

C题

双端队列+前缀和,我们维护蛇的长度的前缀和,求蛇头的位置就是上一头的蛇尾位置,每次出队删除的时候记录一下长度,在输出的时候减掉出队的部分即可

#include <bits/stdc++.h>
#define int long long
#define endl '\n'

using namespace std;

void solve(){
    int q; cin>>q;
    deque<int> a;
    int now = 0;
    int jian = 0;
    while(q--){
        int opt; cin>>opt;
        if(opt == 1){
            int l; cin>>l;
            now += l;
            a.push_back(now);
        } else if(opt == 2){
            jian = a[0];
            a.pop_front();
        } else if(opt == 3){
            int k; cin>>k;
            if(k==1) cout<<0<<endl;
            else cout<<a[k-2]-jian<<endl;
        }
    }
}

signed main(){
    // int T; cin>>T; while(T--)
    solve();
    return 0;
}

D题

我们画一个半径逐渐扩大的圆,我们发现对答案的贡献一定是 \(4\) 的倍数,所以我们只需要判断最右端能到哪一个正方形即可,用勾股定理算能到最右端的哪个正方形,最后再对答案的贡献累加即可,记得开long long

#include <bits/stdc++.h>
#define int long long
#define endl '\n'

using namespace std;

void solve(){
    int x; cin>>x;
    int ans = 0;
    for(double i = 0.5;i<x;i++){
        ans += floor(sqrt(x*x-i*i)-0.5)*4;
    }
    cout<<ans+1<<endl;
}

signed main(){
    // int T; cin>>T; while(T--)
    solve();
    return 0;
}
posted @   MNNUACM_2024ZY  阅读(139)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示