Codeforces Round #590 (Div. 3)D.Distinct Characters Queries

链接:https://codeforces.com/contest/1234/problem/D
题意:参考线段树,树状数组等的单点修改,区间查询;
解题思路:这题真的很简单呐,打的时候没来的及看,被卡C了,不过话说这么简单为什么要写题解呢???
因为热爱啊(手动狗头),还可以顺便吐槽一下自己的心情啥的,反正也是写给自己看的,开心。思路就是26个树状数组,set等等不胜枚举。。。
贴一个set的代码/?这个还算是别人的代码,我的auto不知道为啥用不了

#include <bits/stdc++.h>
using namespace std;
 
vector<set<int> > v(26);
 
int main()
{
    string s;
    int n, q, l, r, pos;
    char c;
    cin >> s;
 
    int len = s.length();
    for(int i = 0; i < len; i++){
        v[s[i] - 'a'].insert(i);
    }
 
    cin >> n;
    while(n--){
        cin >> q;
        if(q == 1){
            cin >> pos >> c;
            pos--;
            v[s[pos] - 'a'].erase(pos);
            s[pos] = c;
            v[s[pos] - 'a'].insert(pos);
        }
        else {
            cin >> l >> r;
            l--, r--;
            int cnt = 0;
            for(int i = 0; i < 26; i++){
                auto it=v[i].lower_bound(l);
                if(it != v[i].end() && *it <= r){
                    cnt++;
                }
            }
            cout << cnt << endl;
        }
    }
    return 0;
}
全部评论

相关推荐

08-11 11:16
已编辑
天津工业大学 Java
程序员牛肉:我个人觉得就是中厂吧,运气好点能进个大厂。 八月找暑期当然找不到了,现在各大厂的暑期实习一般都是三月多开放,五月多收尾。你这都八月多了肯定找不到,相当于是半夜去逛商场了。吃了信息差的亏了。 简历上的实习部分有很大的问题。你作为应聘后端的同学,实习经历中看不出来你干了哪些后端需求,一眼扫过去都是一些配置类的需求,Swagger文档就不要拿出来了。以及撰写技术文档和写单测这种经历。 所以建议你重写一下你的实习部分,重点突出需求,需求啊同学。比如详细的说一下自己是怎么使用GraalVM以及虚拟线程提高项目启动速度的。 调研了什么技术,有什么收获,有什么可以拿出来讲的技术点。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务