Questionnaire
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 0 Accepted Submission(s): 0
Special Judge
Problem Description
In order to get better results in official ACM/ICPC contests, the team leader comes up with a questionnaire. He asked everyone in the team whether to have more training.

Picture from Wikimedia Commons
Obviously many people don't want more training, so the clever leader didn't write down their words such as ''Yes'' or ''No''. Instead, he let everyone choose a positive integer ai to represent his opinion. When finished, the leader will choose a pair of positive interges m(m>1) and k(0≤k<m), and regard those people whose number is exactly k modulo m as ''Yes'', while others as ''No''. If the number of ''Yes'' is not less than ''No'', the leader can have chance to offer more training.
Please help the team leader to find such pair of m and k.

Picture from Wikimedia Commons
Obviously many people don't want more training, so the clever leader didn't write down their words such as ''Yes'' or ''No''. Instead, he let everyone choose a positive integer ai to represent his opinion. When finished, the leader will choose a pair of positive interges m(m>1) and k(0≤k<m), and regard those people whose number is exactly k modulo m as ''Yes'', while others as ''No''. If the number of ''Yes'' is not less than ''No'', the leader can have chance to offer more training.
Please help the team leader to find such pair of m and k.
Input
The first line of the input contains an integer T(1≤T≤15),
denoting the number of test cases.
In each test case, there is an integer n(3≤n≤100000) in the first line, denoting the number of people in the ACM/ICPC team.
In the next line, there are n distinct integers a1,a2,...,an(1≤ai≤109), denoting the number that each person chosen.
In each test case, there is an integer n(3≤n≤100000) in the first line, denoting the number of people in the ACM/ICPC team.
In the next line, there are n distinct integers a1,a2,...,an(1≤ai≤109), denoting the number that each person chosen.
Output
For each test case, print a single line containing two integers m and k,
if there are multiple solutions, print any of them.
Sample Input
1 6 23 3 18 8 13 9
Sample Output
5 3
——————————————————————————————————
题目的意思是选出一个n让一个序列所有数对其取模,使得最大数量的余数大于等于半数
思路:容易发现%2一定有答案
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
#include <map>
#include <set>
#include <stack>
#include <queue>
#include <vector>
#include <bitset>
#include <functional>
using namespace std;
#define LL long long
const int INF = 0x3f3f3f3f;
const LL mod=1000000007;
int main()
{
int T,a,l,r,n;
for(scanf("%d",&T);T--;)
{
scanf("%d",&n);
l=r=0;
for(int i=0;i<n;i++)
{
scanf("%d",&a);
if(a%2) l++;
else r++;
}
if(l>=r) printf("2 1\n");
else printf("2 0\n");
}
return 0;
}

本文介绍了一道竞赛编程题目,旨在通过选择合适的参数使团队成员中支持额外训练的人数超过不支持的人数。文章提供了完整的代码实现,并说明了核心思路在于利用模2的方法确保支持方至少达到半数。
349

被折叠的 条评论
为什么被折叠?



