codefores
日常懵
菜鸟一只
展开
-
E. MEX and Increments
E. MEX and Increments 链接 题意:数组每一个数都可以加任意次数的1 求当前数组中缺失为i(0<=i<=n)的操作个数 思路: 每一个i 都是构成前面的操作次数加上将当前值有的个数 如果当前值的个数为0 操作次数为 构成前面序列的操作个数 操作个数要加上前面最大可变的差值去构成当前的值的序列 如果当前值的个数不为0 操作个数为构成前面的操作个数+当前值的个数 代码: #include <bits/stdc++.h> using namespace std; co原创 2021-12-21 21:35:17 · 768 阅读 · 1 评论 -
D. Social Network
D. Social Network 链接 题意: 并查集维护 答案取可连接的连通块的和(最大) 最开始只能连接一个 当两个人在一个并查集里面的时候就可以再连一个连通块 代码 #include <bits/stdc++.h> using namespace std; const int N = 1e3 + 10 ; int p[N] , si[N] ; int find(int x ){ if(p[x] != x ) p[x] = find(p[x]) ; return p[x] ;原创 2021-12-19 11:12:55 · 427 阅读 · 1 评论 -
E. William The Oblivious
E. William The Oblivious [链接](E. William The Oblivious) 题意:给你一个长为 n 的字符串,只包含 abc 三种字符。q 次操作,每次把一个位置的字符改成给定字符,询问当前串至少修改几次满足不包含子串 abc。修改指把一个位置的字符修改成 a、b、c 三种字符之一。 线段树维护 记录每个区间有多少a b c ab bc abc 维护区间 a = la + ra ; b = lb + rb ; c = lc + rc ; ab = min(la + rab原创 2021-12-19 11:06:12 · 175 阅读 · 0 评论 -
D. Playoff Tournament
D. Playoff Tournament 模拟题 链接 #include <bits/stdc++.h> using namespace std; const int N = 1e6+10; char str[N] ; int tr[N] ; int n ; void pu_up(int u) { if(u == 1 ) return ; int p = u >> 1 ; if(str[n - p + 1 ] == '?') tr[p] = tr[p <<原创 2021-08-12 21:27:18 · 142 阅读 · 0 评论 -
C. They Are Everywhere 尺取
C. They Are Everywhere 链接 尺取 代码 #include <bits/stdc++.h> using namespace std; int main() { int n ; string a ; cin>>n; cin>>a; map<char , int > p; int si = 0 ; for(int i = 0 ; i < n ; i ++ ) { if(!p[a[i]]) si ++ ; p[原创 2021-08-06 15:14:41 · 126 阅读 · 0 评论