打扑克_NYOJ_421(LinkedList).java

来源:互联网 发布:单片机仿真软件介绍 编辑:程序博客网 时间:2024/04/29 19:05

打扑克

时间限制:1000 ms  |  内存限制:65535 KB
难度:2
描述
       最近zmh喜欢上了打扑克,有一天他又找同学打扑克规则如下:2人各有m张牌轮流出牌(打出的牌不归任何人所有), 遇到出的牌和前面有相同,则这之间的排归出牌人,收回牌不打出 ,zmh先出牌,最后拥有牌多者赢(牌数相等也是zmh赢),聪明的zmh知道了两人牌排列的顺序,他想知道自己能不能赢,可他现在有事,你能帮他吗?
输入
第一行为整数n(n<=200)(n组测试数据)
第二行为整数m(0<=m<=5000),表示二人拥有的牌数,首先给出zmh的牌,有m个整数,第i个整数pi(0<=pi<=10000)表示zmh第i张牌的编号,其次以同样的方式给出zmh的同学的牌
输出
如果能赢,输出Yes 
不能则输出No
样例输入
241 2 3 41 2 3 444 3 2 11 2 3 4
样例输出
NoYes
来源
原创
上传者
杨延玺

import java.io.InputStreamReader;import java.util.LinkedList;import java.util.Scanner;public class Main {//有点超时了,竟然也能ACpublic static void main(String[] args) {Scanner input=new Scanner(new InputStreamReader(System.in));int N=input.nextInt();while(N-->0){int n=input.nextInt();int a[]=new int[n];int b[]=new int[n];for(int i=0;i<n;i++){a[i]=input.nextInt();}for(int i=0;i<n;i++){b[i]=input.nextInt();}LinkedList<Integer> list=new LinkedList<Integer>();int zmh=0;int sum=0;for(int i=0;i<n;i++){if(list.contains(a[i])){int c=list.indexOf(a[i]);zmh+=list.size()-c+2;while(list.size()!=c)list.remove(c);}elselist.add(a[i]);if(list.contains(b[i])){int c=list.indexOf(b[i]);sum+=list.size()-c+2;while(list.size()!=c)list.remove(c);}elselist.add(b[i]);}if(zmh>=sum)System.out.println("Yes");elseSystem.out.println("No");}}}


原创粉丝点击