行业知识
蓝桥杯算法赛第4场小白入门赛&强者挑战赛
2026-11-02 21:28:57
来源:互联网转载
蓝桥杯算法赛第4场小白入门赛&强者挑战赛
- 小白1
- 小白2
- 小白3
- 强者1
- 小白4强者2
- 小白5强者3
- 小白6强者4
- 强者5
- 强者6
��接:
()第 4 场 小白入门赛
第 4 场 强者挑战赛
()小白1
直接用C++内置函数即可。
#include using namespace std;#include using namespace __gnu_pbds;using llt = long long;using Real = double;using vi = vector;int main(){#ifndef ONLINE_JUDGE freopen("z.txt", "r", stdin);#endif ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(0); cout 'yuanxing':1, 'zhengfangxing':2, 'changfangxing':3, 'sanjiaoxing':4, 'tuoyuanxing':5, 'liubianxing':6}n = int(input())a = input().split()ans = 0for i in a: ans += p[i]print(ans) int n; cin n; cout sort(A.begin(), A.end(), greater0}; int o = 0; for(int i=1;i a[o] += A[i - 1]; a[o ^ 1] += A[i]; o ^= 1; } cout #ifndef ONLINE_JUDGE freopen("z.txt", "r", stdin);#endif ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(0); cin N; A.assign(N, {}); for(auto & i : A) cin i; proc(); return 0;}"NO", "YES"};int proc(int s, int e){ if(e = s + 100) return 1; vi vec(A.begin() + s, A.begin() + e + 1); sort(vec.begin(), vec.end()); for(int i=1,n=vec.size();i if(vec[i] - vec[i - 1] #ifndef ONLINE_JUDGE freopen("z.txt", "r", stdin);#endif ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(0); cin N Q; A.assign(N, {}); for(auto & i : A) cin >> i; for(int s,e,q=1;q cin > s >> e; cout // 树状数组using value_type = long long int;using vec_type = vectorreturn x & -x;}void init(int nn){this-c.assign((this-n=nn) + 1, 0);}void modify(int pos, value_type delta){ for(int i=pos;in;i+=lowbit(i)) this->c[i] += delta;}value_type query(int pos)const{ value_type ans = 0; for(int i=pos;i;i-=lowbit(i)) ans += this->c[i]; return ans;}value_type query(int s, int e)const{return this->query(e) - this->query(s - 1);}}Bt1, Bt2;using pii = pair;int N;vi A, B;void input(vi & v, int n){ v.assign(n, {}); for(auto & i : v) cin >> i;}llt proc(){ vi pos(N + 1, {}); for(int i=0;i vec[i] = {i + 1, pos[A[i]] + 1}; } // sort(vec.begin(), vec.end(), [](pii a, pii b){return a.second query(e) - this->query(s - 1);}}Bt;int M;vi A;vi Ans;void proc(){ Bt.init(M); map cnt; vi pre(1000000 + 1, 0); for(int p,v,i=0;i p = i + 1; v = A[i]; if(pre[v]){ Bt.modify(pre[v], -1); cnt[Bt.query(pre[v], p)] += 1; }else{ cnt[M] += 1; } Bt.modify(pre[v] = p, 1); } Ans.assign(M + 1, 0); int sum = 0; int another = M; for(auto it=cnt.rbegin(),jt=++cnt.rbegin(),et=cnt.rend();jt!=et;++it,++jt){ int last = it-first; int start = jt->first; sum += it->second; fill(Ans.begin() + start + 1, Ans.begin() + last + 1, sum); } cout #ifndef ONLINE_JUDGE freopen("z.txt", "r", stdin);#endif ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(0); cin M; A.assign(M, {}); for(auto & i : A) cin i; proc(); return 0;}