首页 > 其他分享 >hey_left 14 Codeforces Round 849 (Div. 4) 续

hey_left 14 Codeforces Round 849 (Div. 4) 续

时间:2024-01-23 19:35:28浏览次数:26  
标签:14 int sum hey 849 Codeforces while long left

题目链接

F.

区间修改,单点查询,考虑用树状数组
可以维护每个点需要操作的次数
然后直接对询问的点进行操作

#include <bits/stdc++.h>
using namespace std;

const int N=2e5+10;
#define int long long

struct TreeArray{
    vector<int>tree;

    TreeArray(int n){
        tree.resize(n+1,0);
    }

    void update(int index,int value){
        while(index<tree.size()){
            tree[index]+=value;
            index+=index&(-index);
        }
    }

    int query(int index){
        int sum=0;
        while(index>0){
            sum+=tree[index];
            index-=index&(-index);
        }
        return sum;
    }
};

void solve(){
    int n,q;cin>>n>>q;
    vector<int>a(n+1);
    for(int i=1;i<=n;i++)cin>>a[i];
    TreeArray ta(N);
    while(q--){
        int op;cin>>op;
        if(op==1){
            int l,r;cin>>l>>r;
            ta.update(l,1);
            ta.update(r+1,-1);
        }else if(op==2){
            int x;cin>>x;
            int time=ta.query(x);
            int y=a[x];
            int sum=0;
            while(time--){
                while(y){
                    sum+=y%10;
                    y/=10;
                }
                y=sum;
                if(sum<10)break;
                sum=0;
            }
            cout<<y<<'\n';
        }
    }
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    int hey_left=1;
    cin>>hey_left;
    while(hey_left--){
        solve();
    }
}

G1.

每个转换器的代价是固定的
那么直接把代价从小到大排序,能拿几个拿几个

#include <bits/stdc++.h>
using namespace std;

#define int long long
void solve(){
    int n,c;cin>>n>>c;
    vector<int>cost(n+1);
    for(int i=1;i<=n;i++){
        cin>>cost[i];
        cost[i]+=i;
    }
    sort(cost.begin()+1,cost.end());
    int ans=0,sum=0;
    for(int i=1;i<=n;i++){
        if(sum+cost[i]<=c){
            sum+=cost[i];
            ans++;
        }else break;
    }
    cout<<ans<<'\n';
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    int hey_left=1;
    cin>>hey_left;
    while(hey_left--){
        solve();
    }
}

G2.

同easy的思路,但要求起点在0
也就是必须有一个是从0开始的,其他随意
那么我们枚举从0开始的点

#include <bits/stdc++.h>
using namespace std;

#define int long long
void solve(){
    int ans=0;
    int n,c;cin>>n>>c;
    vector<int>a(n+1);
    vector<pair<int,int>>pa(n+1);
    for(int i=1;i<=n;i++){
        cin>>a[i];
        pa[i]={a[i]+min(i,n+1-i),a[i]+i};
    }
    sort(pa.begin()+1,pa.end());
    vector<int>pre(n+1);
    for(int i=1;i<=n;i++){
        pre[i]=pre[i-1]+pa[i].first;
    }
    int cnt;
    for(int i=1;i<=n;i++){
        if(c<pa[i].second)continue;
        cnt= upper_bound(pre.begin()+1,pre.end(),c-pa[i].second+pa[i].first)-pre.begin()-1;
        if(cnt<i)cnt= upper_bound(pre.begin()+1,pre.end(),c-pa[i].second)-pre.begin();
        ans=max(ans,cnt);
    }
    cout<<ans<<'\n';
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    int hey_left=1;
    cin>>hey_left;
    while(hey_left--){
        solve();
    }
}

标签:14,int,sum,hey,849,Codeforces,while,long,left
From: https://www.cnblogs.com/wwww-/p/17983004

相关文章

  • [转帖]ORA-01450 maximum key length (3215) exceeded
    一、问题背景给一个业务表online建索引时遇到了ORA-01450maximumkeylength(3215)exceeded报错,看字面意思是字段太长了,检查表字段类型发现基本都是nvarchar2(2000),有些字段(例如unit)明显是不需要这么长的,表的设计有问题,联系开发按实际需求改短后能正常创建。奇怪的是表的......
  • arcengine GP调用PolygonToLine 报错 -2147467259
    这个原因是传参数问题;GP调用面转线工具时,不能利用该方式传入参数IGpValueTableObjectgpValueTableObject=newGpValueTableObject();//对一个及以上要素类进行相交运算gpValueTableObject.SetColumns(2);objecto1=pFeatureClass2;//输入IFeatureC......
  • [POI2014] KUR-Couriers
    可持久化线段树维护由任意一段区间得到的权值线段树线段树的深度:\(ceil(log_{2}(n))+1\)由于询问的特殊性,我们可以直接在线段树上二分,而不需要另写查询函数,从而节省掉1个log的复杂度点击查看代码#include<bits/stdc++.h>usingnamespacestd;inttot,root[500005];int......
  • macOS Sonoma 14.3 (23D56) 正式版发布,ISO、IPSW、PKG 下载 (重大更新)
    macOSSonoma14.3(23D56)正式版发布,ISO、IPSW、PKG下载(重大更新)本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。作者主页:sysin.org更新摘要:mac......
  • macOS Sonoma 14.3 (23D56) 正式版 Boot ISO 原版可引导镜像下载 (重大更新)
    macOSSonoma14.3(23D56)正式版BootISO原版可引导镜像下载(重大更新)本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。作者主页:sysin.org更新摘......
  • macOS Sonoma 14.3 (23D56) 正式版 Boot ISO 原版可引导镜像下载 (重大更新)
    macOSSonoma14.3(23D56)正式版BootISO原版可引导镜像下载(重大更新)本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。请访问原文链接:https://sys......
  • 文心一言 VS 讯飞星火 VS chatgpt (185)-- 算法导论14.1 2题
    二、用go语言,对于图14-1中的红黑树T和关键字x.key为35的结点x,说明执行OS-RANK(T,x)的过程。文心一言:在红黑树中,OS-RANK(T,x)是一个操作,用于计算节点x在红黑树T中的秩。秩是一个节点的相对高度,对于根节点,其秩为0。首先,我们需要明确红黑树的性质:每个节点要么是红色,要么......
  • 文心一言 VS 讯飞星火 VS chatgpt (185)-- 算法导论14.1 2题
    二、用go语言,对于图14-1中的红黑树T和关键字x.key为35的结点x,说明执行OS-RANK(T,x)的过程。文心一言:在红黑树中,OS-RANK(T,x)是一个操作,用于计算节点x在红黑树T中的秩。秩是一个节点的相对高度,对于根节点,其秩为0。首先,我们需要明确红黑树的性质:每个节点要么是红色......
  • hey_left 13 Codeforces Round 849 (Div. 4)
    题目链接A.可用map标记这几个字符,判在不在即可#include<bits/stdc++.h>usingnamespacestd;strings="codeforces";map<char,bool>mp;voidsolve(){charc;cin>>c;if(mp[c]){cout<<"YES"<<'\n';......
  • CF1424M Ancient Language 题解
    1.题意描述一本字典中有\(r\)\((1\leqr\leq10^6)\)个单词,单词长度不超过$10^3$,所有字母都是小写英文字母,但字母排序不是按英文字母排序,求所有出现字母的一种排序,如果不存在,输出"IMPOSSIBLE"。2.题目分析由排序规则可知,对于字符串\(s\)和\(t\),\(s\)排在\(t\)......