首页 > 其他分享 >Codeforces Round #830 (Div. 2) C1

Codeforces Round #830 (Div. 2) C1

时间:2022-10-25 17:35:56浏览次数:52  
标签:830 sx const int mid ans Div C1

C1. Sheikh (Easy version)

显然对于添加一个数进入区间 是只增不减的 这就提醒了我们此题具有单调性
我们最后的答案肯定就是这一整个区间 我们考虑怎么找到最小的答案相同的区间
因为我们知道这个区间具有单调性 我们就可以暴力枚举左端点 然后二分check答案是否相同 更新区间即可

#include <bits/stdc++.h>
using namespace std;
const int N = 2e5+10;
const int M = 998244353;
const int mod = 998244353;
#define int long long
int up(int a,int b){return a<0?a/b:(a+b-1)/b;}
#define endl '\n'
#define all(x) (x).begin(),(x).end()
#define YES cout<<"YES"<<endl;
#define NO cout<<"NO"<<endl;
#define _ 0
#define pi acos(-1)
#define INF 0x3f3f3f3f3f3f3f3f
#define fast ios::sync_with_stdio(false);cin.tie(nullptr);
int a[N],s[N],sx[N],n,q;
bool check(int l,int mid){
    if(s[mid]-s[l-1]-(sx[mid]^sx[l-1])==s[n]-s[0]-sx[n])return true;
    else return false;
}
void solve() {
    cin>>n>>q;
    s[0]=sx[0]=0;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        s[i]=s[i-1]+a[i];
        sx[i]=sx[i-1]^a[i];
    }
    int l1,r1;cin>>l1>>r1;
    int ans=INF,ans_l,ans_r;
    for(int i=1;i<=n;i++){
        int l=i,r=n+1;
        while(l<r){
            int mid=l+r>>1;
            if(check(i,mid))r=mid;
            else l=mid+1;
        }
        if(l==n+1)continue;
        if(l-i+1<ans){
            ans=l-i+1;
            ans_l=i,ans_r=l;
        }
    }
    cout<<ans_l<<' '<<ans_r<<endl;
}
signed main(){
    fast
    int t;t=1;cin>>t;
    while(t--) {
        solve();
    }
    return ~~(0^_^0);
}

标签:830,sx,const,int,mid,ans,Div,C1
From: https://www.cnblogs.com/ycllz/p/16825615.html

相关文章

  • Codeforces Round #756 (Div. 3) F
    F.ATMandStudents金典对于一个区间我们不能让他+的过程中出现负数我们ST表处理前缀和区间最小数然后再二分长度暴力枚举左右端点时间复杂度是O(nlogn)哦还要注意的......
  • D. Factorial Divisibility
    D.FactorialDivisibilitytimelimitpertest2secondsmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputYouaregivenan......
  • jquery实现div可移动窗口、拖动改变窗口大小、最大化\还原、窗口置顶
    图例1、拖动标题来移动窗口(红框方案):其他样式,如:     2、最大化:  点击后最大化按钮变成还原按钮,可以还原窗口。  3、关闭  4、拖动改变窗......
  • 洛谷 P5698 [CTSC1998]算法复杂度 题解
    前言咕了大半年,我回来了说实话当鸽子的感觉挺不错???原题链接题意给定一个伪代码,判断他总共需要进行几次操作,用多项式形式输出。题解首先,这是一道模拟题,发现性质的话比......
  • CF838B Diverging Directions
    题目链接:​​传送门​​分析一下他给的这个图就知道一个祖先到它的儿子只有生成树的边可以走而一个儿子走到祖先有两种方法一个是先直接到1,再从1走到那个祖先还有一个很......
  • Educational Codeforces Round 138 (Rated for Div. 2)练习笔记
    \(\text{A.CowardlyRooks}\)有一张\(n\timesn(n\leq8)\)的国际象棋棋盘,上面放了\(m(m\leq8)\)个城堡(能攻击在同一直线的棋子),第\(i\)个城堡位于\((x_i,y_i)\)......
  • div背景设置
       border:先给div设置一个边框容易观察出大小background:给div插入背景图片用url(),当图片小,会默认把div铺满 (如图),设置no-repeat后则只有一张图片,不会自动铺满。然后......
  • C1. Make Nonzero Sum (easy version)
    C1.MakeNonzeroSum(easyversion)Thisistheeasyversionoftheproblem.Thedifferenceisthatinthisversionthearraycannotcontainzeros.Youcanma......
  • div
      div定义:就是一个容器,可以整块移动1.创建一个div标签 2.对div标签进行格式设置 3.margin(边缘):先上下(xxpx)差不多300px居中;再左右 (xxpx)(auto=文本中的cent......
  • 【luogu ARC106E】Medals(二分)(高维前缀和)
    Medals题目链接:luoguARC106E题目大意有n个第i个人的出现规律是对于所有2aik+1~2ai(k+1)的区间,2aik+1~2aik+ai会出现,另一部分则会不见。每个时间点你可以选择一......