标签:clu com 基础 ret 表示 std color target code
Solu:设出变量num和now,表示当前未被抵消的时now,有num个
读入一个数x,如果是now,则num++;如果不是now,就被一个now抵消,num--
如果num=0,则now=x
最后剩下的now即是众数。
建模理解:有n个人分成若干帮派打架,每两个人都会同归,最后人数>n/2的帮派一定获胜。
证明:显然
PS:如果不保证众数存在,只需最后判断一下now是否为众数
例题:luogu
卡了空间,只能摩尔投票法
#include<bits/stdc++.h> using namespace std; int n; int main() { scanf("%d",&n); int now=0,num=0; for(int i=1;i<=n;i++) { int x; scanf("%d",&x); if(x!=now) { if(num==0) now=x,num=1; else num--; } else { num++; } } printf("%d\n",now); return 0; }
Solu:同上
标签:clu com 基础 ret 表示 std color target code
原文地址:https://www.cnblogs.com/wsfwsf/p/13598253.html