noi.ac #227 random
Posted 11haonb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了noi.ac #227 random相关的知识,希望对你有一定的参考价值。
这个题还是比较ez的。但是我还是因为忘记清零num1,num2数组半个小时才A我透
首先考虑暴力,一个一个比较,60pts到手
T1谁只想拿60?
憨的离谱
我们可以设置数组,即num1, 来表示在 \(a\) 中比 \(a[i]\) 小的数的个数,num2同理。
再更新一遍前缀和,\(O(n)\) 扫一遍,统计答案即可。
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int ali, bob;
int t;
int n;
int a[N], b[N];
int num1[N * 10], num2[N * 10];
int main()
cin >> t;
while(t--)
memset(num1,0,sizeof(num1));
memset(num2,0,sizeof(num2));
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
ali = bob = 0;
scanf("%d",&n);
for (int i = 1; i <= n; i++) scanf("%d",&a[i]);
for (int i = 1; i <= n; i++) scanf("%d",&b[i]);
sort(a+1,a+n+1);
sort(b+1,b+n+1);
for (int i = 1; i <= n; i++)
num1[a[i]]++;
num2[b[i]]++;
for (int i = 1; i <= 1e6; i++)
num1[i] = num1[i-1] + num1[i];
num2[i] = num2[i-1] + num2[i];
for (int i = 1; i <= n; i++)
ali += num2[a[i]];
bob += num1[b[i]];
if(ali > bob)
puts("Alice");
continue;
if(ali == bob)
puts("Tie");
continue;
if(ali < bob) puts("Bob");
return 0;
以上是关于noi.ac #227 random的主要内容,如果未能解决你的问题,请参考以下文章