重新振作第11天----日常小记

今天又又又没有振作起来,但是突然发现十二月份全是ddl,既然如此,只能是被迫振作起来了。不然就要寄寄了,真得是离谱哇。一堆的课程大作业,还有课程论文,还有期末复习,还有其他一些事情,感觉再不振作就真毁了。立个flag,明天可以seven起床。

首届CACC监考

有1说1,监考是真的无聊,没有事情干,只能在那里玩玩手机。不过白嫖了一顿汉堡,这个还是挺不错的。这个比赛这次是在我们学校举办,感觉来的人有点少,一共就50+个人报名,来的只有一半左右。这就是万事开头难吗?作为新比赛,确实容易出现这样的情况。希望能越办越好吧!

六级单词+听力磨耳朵

今天背200个单词,然后听听力好吧,感觉得毁了。

退役acmer的每日一题7

题目链接:https://atcoder.jp/contests/abc381/tasks/abc381_e
题目思路:记录位置,对于区间内的'/'进行三分。思路就是这么简单,但是我一直不明白,我这个三分有问题吗????一直wa,然后案例也找不到,人要寄寄了。
最终只能够,不要脸得开大范围,然后在这个范围内遍历。
代码实现:

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define ios ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)
using namespace std;
const int N=5e5+10;
const int MAX=1e6+5;
const int mod=1E9+7;
int n,m,k,w;
void solve(){
    int n,q;
    cin>>n>>q;
    string s;
    cin>>s;
    s=' '+s;
    vector<int>a(n+1,0);
    vector<int>b(n+1,0);
    vector<int>p;
    for(int i=1;i<=n;i++){
        a[i]+=a[i-1];
        b[i]+=b[i-1];
        if(s[i]=='1'){
            a[i]++;
        }
        else if(s[i]=='2'){
            b[i]++;
        }
        else {
            p.push_back(i);
        }
    }
    while(q--){
        int l1,r1;
        cin>>l1>>r1;
        int l=lower_bound(p.begin(),p.end(),l1)-p.begin();
        int r=lower_bound(p.begin(),p.end(),r1)-p.begin();
        if(r>=p.size()||p[r]>r1){
            r--;
        }
        int ans=0;
        while(r-l>2000){
            int mid1=l+(r-l)/3;
            int mid2=r-(r-l)/3;
            int p1=p[mid1];
            int p2=p[mid2];
            int ans1,ans2;
            ans1=min(a[p1]-a[l1-1],b[r1]-b[p1-1]);
            ans2=min(a[p2]-a[l1-1],b[r1]-b[p2-1]);
            ans=max(ans1*2+1,ans2*2+1);
            if(ans1>ans2){
                r=mid2;
            }
            else {
                l=mid1;
            }
        }
        if(l<p.size()&&p[l]<=r1){
            for(int i=0;l+i<=r;i++){
                ans=max(ans,min(a[p[l+i]]-a[l1-1],b[r1]-b[p[l+i]-1])*2+1);
            }
        }
        cout<<ans<<endl;

    }
    
}
signed main(){
    ios;
    int t;
    t=1;
    //cin>>t;
    while (t--){
        solve();
    }
    return 0;
}
posted @   菜dog的日常生活  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示