ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Codeforces Round #782 D

2022-09-13 15:34:46  阅读:225  来源: 互联网

标签:const 782 int Codeforces 我们 -- add Round define


D. Reverse Sort Sum

我们首先能反应出来的是可以倒着看 并且第一个样例来看好像最后一定是1
这是因为我们最后一个样例的下标和自身的数已经相等了那么我们可以等到一定是1
要是他是1的话 我们考虑可不可以把他砍掉 我们砍掉的话 是砍掉最后一步最后一步的数肯定就是最后那几位减一
还有我们可以通过总和等到数有几个1 这个很好想到
那么对于每一位 我们从后面开始看 要是这一位自身的数==pos下标 那么我们向前长度为one的区间-1 然后再往前找即可
因为这里我们一定可以找到那么几个1 所以说是不会越界的

#include <bits/stdc++.h>
using namespace std;
const int N = 2e5+10;
const int M = 998244353;
const int mod = 1000000007;
#define int long long
#define endl '\n'
#define all(x) (x).begin(),(x).end()
#define YES cout<<"YES"<<endl;
#define NO cout<<"NO"<<endl;
#define _ 0
#define INF 0x3f3f3f3f3f3f3f3f
#define fast ios::sync_with_stdio(false);cin.tie(nullptr);
int tr[N],n;
int lowbit(int x){
    return x&-x;
}
void add(int x,int c){
    for(int i=x;i<=n;i+=lowbit(i))tr[i]+=c;
}
int query(int x){
    int res=0;
    for(int i=x;i;i-=lowbit(i))res+=tr[i];
    return res;
}
void upd(int l,int r,int x){
    add(l,x),add(r+1,-x);
}
void solve() {
    cin>>n;
    for(int i=0;i<=n;i++)tr[i]=0;
    int sum=0;
    vector<int>a(n+1);
    for(int i=1;i<=n;i++){
        cin>>a[i];sum+=a[i];
        add(i,a[i]),add(i+1,-a[i]);
    }
    int one=sum/n;
    vector<int>v(n+1);
    for(int i=n;i>=1;i--){
        if(query(i)>=i){
            v[i]=1;
            add(i-one+1,-1),add(i+1,1);
            one--;
        }
    }
    for(int i=1;i<=n;i++)cout<<v[i]<<' ';cout<<endl;
}
signed main(){
    fast
    int T;cin>>T;
    while(T--) {
        solve();
    }
    return ~~(0^_^0);
}

标签:const,782,int,Codeforces,我们,--,add,Round,define
来源: https://www.cnblogs.com/ycllz/p/16689228.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有