UVA 10763



问题描述:点击打开链接





/* 思路:类似于消消乐,若有A->B那么必然要有B->A, 而A->B的数量若有多个,那么B->A的数量必须与A->B的数量相同, 若不满足就为失败所以输入A->B时,便让该数量加一,而让B->A数量减一, 最后判断数量是否为0便可 */import java.util.HashMap; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); while(cin.hasNext()) { //1.若输入为0退出 int n = cin.nextInt(); if(n==0)break; //2.使用haspmap来存储A->B与它的数量 HashMap map = new HashMap<>(); for(int i=0; iB存在,那么让其数量加一,否则初始化为1 int cnt = 1; if(map.get(a+" "+b)!=null) cnt = map.get(a+" "+b)+1; map.put(a+" "+b,cnt); //4.若B->A存在,那么让其数量减一,否则初始化为-1 cnt = -1; if(map.get(b+" "+a)!=null) cnt = map.get(b+" "+a)-1; map.put(b+" "+a,cnt); }//5.判断交换生数量是否都为0 boolean flag = true; for(String key:map.keySet()) if(map.get(key)!=0) { flag = false; break; } if(flag) System.out.println("YES"); else System.out.println("NO"); } } }



【UVA 10763】



    推荐阅读