茉莉有2n匹马,每匹马都有一个速度v,现在茉莉将马分为两个队伍,每个队伍各有n匹马,两个队之间进行n场比赛,每场比赛两队各派出一匹马参赛,每匹马都恰好出场一次。茉莉想知道是否存在一种分配队伍的方法使得无论怎么安排比赛,第一个队伍都一定能获的全胜,两匹马若速度不同,那么速度快的获胜,若速度一样,则都有可能获胜。
茉莉有2n匹马,每匹马都有一个速度v,现在茉莉将马分为两个队伍,每个队伍各有n匹马,两个队之间进行n场比赛,每场比赛两队各派出一匹马参赛,每匹马都恰好出场一次。茉莉想知道是否存在一种分配队伍的方法使得无论怎么安排比赛,第一个队伍都一定能获的全胜,两匹马若速度不同,那么速度快的获胜,若速度一样,则都有可能获胜。
第一行一个数T(T<=100),表示数据组数。
对于每组数据,第一行一个整数n , (1<=n<=100)
接下来一行,2*n个整数,第i个整数vi表示第i匹马的速度, (1
<= vi <= 1000)
对于每组数据,输出一行,若存在一种分配方法使得第一个队伍全胜输出YES,否则输出NO
2 2 1 2 3 4 1 1 1
YES NO
import java.util.Arrays;
import java.util.Scanner;
//排下序,第一组最差的马比第二组最强的马强就是YES,否则NO
/**
* ***有2n匹马,每匹马都有一个速度v,现在***将马分为两个队伍,每个队伍各有n匹马,
* 两个队之间进行n场比赛,每场比赛两队各派出一匹马参赛,每匹马都恰好出场一次。
* ***想知道是否存在一种分配队伍的方法使得无论怎么安排比赛,第一个队伍都一定能获的全胜,
* 两匹马若速度一样,那么速度快的获胜,若速度一样,则都有可能获胜。
*/
public class Main {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
int t = sc.nextInt();
int[] nums = new int[t*2];
for (int j = 0; j < t*2; j++) {
nums[j] = sc.nextInt();
}
Arrays.sort(nums);
if(nums[t]>nums[t-1]){
System.out.println("YES");
}else {
System.out.println("NO");
}
}
}
} N = int(input()) for i in range(N): n = int(input()) arr = list(map(int,input().split())) srtd = sorted(arr, key=lambda x: x, reverse=True) if srtd[n-1]==srtd[n]: print('NO') else: print('YES')
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
/*
***有2n匹马,每匹马都有一个速度v,现在***将马分为两个队伍,每个队伍各有n匹马,两个队之间进行n场比赛,
每场比赛两队各派出一匹马参赛,每匹马都恰好出场一次。***想知道是否存在一种分配队伍的方法使得无论怎么安排比赛,
第一个队伍都一定能获的全胜,两匹马若速度一样,那么速度快的获胜,若速度一样,则都有可能获胜。
2
2
1 2 3 4
1
1 1
YES
NO
*/
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
String[] aa=new String[a];
for(int i=0;i<a;i++){
int b=sc.nextInt();
int[] input=new int[2*b];
for(int j=0;j<2*b;j++){
input[j]=sc.nextInt();
}
Arrays.sort(input);
for(int t=0;t<2*b-1;t++){
for(int n=t+1;n<2*b;n++){
if(input[t]==input[n]){
aa[i]="NO";
continue;
}
}
}
if(aa[i]==null){
aa[i]="YES";
}
}
for(int z=0;z<a;z++){
System.out.println(aa[z]);
}
}
}
如果比较是否有重复值可能存在一种情况就是,重复的数字不在中间。 import sys
try:
num = int(input())
while num:
n = int(input())
arr = list(map(int, sys.stdin.readline().strip().split(' ')))
arr.sort()
if sum(arr[:n]) < sum(arr[n:]):
if not set(arr[:n]) & set(arr[n:]):
print("YES")
else:
print("NO")
else:
print("NO")
num -= 1
except:
pass #include <stdio.h>
#include <stdlib.h>
int main(void){ int t,n;
scanf("%d",&t); for(int i=0;i<t;i++){ scanf("%d",&n); int*v=(int*)malloc(sizeof(int)*2*n);
for(int j=0;j<2*n;j++)
scanf("%d",&v[j]); for(int j=0;j<2*n-1;j++)
for(int k=0;k<2*n-j-1;k++){ if(v[k]>v[k+1]){ int temp=v[k]; v[k]=v[k+1]; v[k+1]=temp;
}
}
if(v[n-1]==v[n])
printf("NO\n");
else
printf("YES\n");
}
return 0; }
}
import java.util.*;public class Main{public static void main(String args[]){Scanner sc =new Scanner(System.in);int T=sc.nextInt();for(int i=0;i<T;i++){PriorityQueue<Integer> min=new PriorityQueue<>(); //存放n+1....2*n大的数PriorityQueue<Integer> max=new PriorityQueue<Integer>(11,new Comparator<Integer>(){public int compare(Integer s1,Integer s2){return s2.compareTo(s1);}}); //存放1...n大的数int n=sc.nextInt();for(int j=0;j<2*n;j++){int num=sc.nextInt();if((j&1)==1){if(!min.isEmpty()&&min.peek()<num){min.offer(num);num=min.poll();}max.offer(num);}else{if(!max.isEmpty()&&max.peek()>num){max.offer(num);num=max.poll();}min.offer(num);}}if(min.peek()<=max.peek()) //比较中间两位数System.out.println("NO");elseSystem.out.println("YES");}}}