惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
博客园_首页
WordPress大学
WordPress大学
大猫的无限游戏
大猫的无限游戏
有赞技术团队
有赞技术团队
阮一峰的网络日志
阮一峰的网络日志
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
酷 壳 – CoolShell
酷 壳 – CoolShell
Y
Y Combinator Blog
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
T
The Blog of Author Tim Ferriss
云风的 BLOG
云风的 BLOG
博客园 - 司徒正美
Engineering at Meta
Engineering at Meta
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks
Stack Overflow Blog
Stack Overflow Blog
N
Netflix TechBlog - Medium
Martin Fowler
Martin Fowler
宝玉的分享
宝玉的分享
G
Google Developers Blog
Last Week in AI
Last Week in AI

某岛

AtCoder Beginner Contest 409 Luogu P5325. 【模板】Min_25 筛 UOJ #188. 【UR #13】Sanrd AtCoder Beginner Contest 371 AtCoder Beginner Contest 369 RPGMaker 2k3 百科 OneShot 的考古 2024“开创拓芯”游戏创享节的相关记录 CJ 回来后的戒断反应 Luogu P10221. [省选联考 2024] 重塑时光 Luogu P5308 [COCI2018-2019#4] Akvizna wqs 二分 歌唱王国 Lean 相关 BZOJ 3153. Sone1 The 2023 ICPC World Finals Luxor 新巴别塔 Sora 的想象与思考 Facebook Hacker Cup 2023 Round 1 AtCoder Beginner Contest 322 LLaMA 2 相关 HuggingFace AI Game Jam ACL 2023 Trans 相关… Luogu P2053. [SCOI2007] 修车 Luogu P1973. [NOI2011] NOI 嘉年华 Luogu P1933. [NOI2010] 旅行路线 Luogu P1954. [NOI2010] 航空管制 Luogu P2048. [NOI2010] 超级钢琴 Luogu P2046. [NOI2010] 海拔
Luogu P3765 总统选举
2022-09-03 · via 某岛

September 3, 2022

线段树维护潜在众数。
平衡树再进行核对。
我们可以用 atl 里的线段树,平板电视里的平衡树。
四舍五入等于啥都不用写。

#include <lastweapon/io>
#include <lastweapon/segtree>
#include <ext/pb_ds/assoc_container.hpp>
using namespace lastweapon;
using namespace __gnu_pbds;

const int N = int(5e5) + 9;

PII op(PII a, PII b) {
    if(a.fi == b.fi) return {a.fi, a.se+b.se};
    if(a.se >= b.se) return {a.fi, a.se-b.se};
    return {b.fi, b.se-a.se};
}

PII e() {
    return {0, 0};
}

tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> T[N];

int main() {
#ifndef ONLINE_JUDGE
    freopen("in.txt", "r", stdin);
    //freopen("out.txt", "w", stdout);
#endif

    int n,m; RD(n,m);
    vector<PII> a(n);
    REP(i, n) {
        T[RD(a[i].fi)].insert(i);
        a[i].se = 1;
    }

    segtree<PII, op, e> S(a);
    DO(m) {
        int l,r,s; RD(l,r,s); --l; int x = S.prod(l, r).fi;
        if(T[x].order_of_key(r)-T[x].order_of_key(l)>(r-l)/2) s = x;
        Rush {
            S.set(--RD(x), {s, 1});
            if (a[x].fi != s) {
                T[a[x].fi].erase(x); ;
                T[a[x].fi = s].insert(x);
            }
        }
        OT(s);
    }
    int x = S.prod(0, n).fi;
    OT(SZ(T[x]) > n/2 ? x :-1);
}

Posted by xiaodao
Category: 日常