选举
标题:选举 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限
幸福村在选举村长,村民总数为n(编号为1~n),所有村民都是候选人,都有机会当选村长,得票数大于n/2的人当选村长。
注:
1、限定每人最多只能投一票,可以弃权。如果超过1票,则该村民所有的选票都无效
注:
1、限定每人最多只能投一票,可以弃权。如果超过1票,则该村民所有的选票都无效
2、不允许投自己,如果自己投自己,则该选票无效
#include<iostream>
#include<vector>
using namespace std;
int main() {
int n;
int m;
cin>>n>>m;
vector<int> vt(n + 1);
vector<int> nok(n + 1);
int a, b;
for (int i = 0; i < m; i++) {
cin>>a>>b;
if (a == b) {
continue;
}
if (vt[a] != 0) {
nok[a] = 1;
} else {
vt[a] = b;
}
}
vector<int> tc(n + 1);
int ans = -1;
for (int i = 1; i < n + 1; i++) {
if (nok[i] == 0) {
tc[vt[i]]++;
if (tc[vt[i]] > n / 2) {
ans = vt[i];
break;
}
}
}
cout<<ans;
return 0;
}
查看4道真题和解析