`
lylegend13
  • 浏览: 83917 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

1182(未通过)

 
阅读更多

网上说用并查集,半天没看懂,我的代码题中的测试数据通过,但没通过别人给的测试数据

 

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class t1182 {

	public static void main(String[] args) throws IOException {
		Scanner scanner = new Scanner(System.in);
		int N = scanner.nextInt();
		int K = scanner.nextInt();

		int count = 0;
		Map<Integer, Set<Integer>> eatMap = new HashMap<Integer, Set<Integer>>();
		List<Set<Integer>> groupList = new ArrayList<Set<Integer>>();
		for (int i = 0; i < K; i++) {
			int a = scanner.nextInt();
			int b = scanner.nextInt();
			int c = scanner.nextInt();
			if (b > N || c > N) {
				count++;
				continue;
			}
			// 如果1,判断是否吃或被吃
			if (a == 1) {
				if (b == c) {
					continue;
				}

				Set<Integer> eat1 = eatMap.get(b);
				if (null != eat1 && eat1.contains(c)) {
					count++;
				} else {
					Set<Integer> eat2 = eatMap.get(c);
					if (null != eat2 && eat2.contains(b)) {
						count++;
					}
					// 增加同类关系
					else {
						Set<Integer> group = null;
						for (Set<Integer> g : groupList) {
							if (g.contains(b) || g.contains(c)) {
								group = g;
								break;
							}
						}
						if (null == group) {
							group = new HashSet<Integer>();
							groupList.add(group);
						}
						group.add(b);
						group.add(c);
					}
				}
			}
			// 如果2,判断是否同类、是否被吃
			else {
				if (b == c) {
					count++;
					continue;
				}
				boolean isGroup = false;
				for (Set<Integer> g : groupList) {
					if (g.contains(b) && g.contains(c)) {
						isGroup = true;
						break;
					}
				}
				// 判断是否同类
				if (isGroup) {
					count++;
				} else {
					// 判断是否被吃
					Set<Integer> eat = eatMap.get(c);
					if (null != eat && eat.contains(b)) {
						count++;
					}
					// 增加吃的关系
					else {
						Set<Integer> eatR = eatMap.get(b);
						if (null == eatR) {
							eatR = new HashSet<Integer>();
							eatMap.put(b, eatR);
						}
						eatR.add(c);
					}
				}
			}
		}
		scanner.close();
		System.out.println(count);
	}
}
 

 

分享到:
评论

相关推荐

    GB1182-2008

    2. **一般公差(未注公差)**:对于某些情况下不需要特别标注公差的情况,可以采用这种方式。 3. **文字说明**:在特殊情况下,可以通过文字来补充说明公差要求。 #### 标准结构 - **引言**:概述了《GB/T1182-2008...

    算法-数列分段`Section II`(洛谷-P1182).rar

    在数列分段问题中,如果要求的是最大和子序列,贪心策略可能是始终选择当前未包含的正数,因为这会增加子序列的总和。但需要注意的是,贪心算法并不总是能得到全局最优解,需要根据具体问题判断其适用性。 二分查找...

    【目标检测数据集】仓库内托盘检测数据集yolo+voc格式1182张.zip

    在这一背景下,本次分析的对象是一个名为“【目标检测数据集】仓库内托盘检测数据集yolo+voc格式1182张.zip”的数据集。 该数据集采用了两种常见的数据标注格式:VOC格式和YOLO格式。VOC格式是一种广泛使用的标注...

    scrcpy:显示和控制您的Android设备

    此应用程序提供了对通过USB(或 )连接的Android设备的显示和控制。 它不需要任何根访问权限。 它可以在GNU / Linux , Windows和macOS上运行。 它着重于: 亮度(本机,仅显示设备屏幕) 性能(30〜60fps) ...

    POJ 100题代码

    8. 题目3325《Array Partition》:涉及到数组划分问题,可能需要用到贪心算法,通过不断地寻找当前未划分的最大元素和次大元素进行组合,以达到最小和的目标。 9. 题目3356《Divisor Game》:这是一个关于博弈论的...

    保护层开采技术在平煤股份四矿的应用

    保护层开采的效果分析,往往通过与未采用保护层开采前的矿井安全生产状况进行对比。通过一系列的数据指标,如开采量、生产效率、瓦斯涌出量、瓦斯超限次数等,可以量化地分析保护层开采技术对矿井安全和生产效率的...

    算法解析ACM

    贪心算法可以通过不断选择当前未被分配的人中的最高技能者加入到当前平均技能等级最低的组,以此达到优化效果。 **案例分析:Pku1700—Crossing River** 题目描述:一群人需要过河,但只有一条小船,每次只能容纳...

    并查集算法PKU解题报告

    **PKU1182**:这道题目可能涉及到构建网络或图的问题,需要通过并查集来判断两个节点之间是否存在连接。可能是要求求解某个操作序列后的连通性状态,或者找出某些节点之间的最短路径。在这种情况下,我们需要利用并...

    Pku的oj题目分类.

    - **示例题目**:如题目1182、1656等。 10. **博弈论** - **定义**:博弈论研究两个或多个参与者之间的策略选择问题,在算法领域通常用于解决两人游戏问题。 - **示例题目**:未给出具体题目。 #### 排序算法 -...

    机械加工通用技术规范.doc

    规范引用了一系列国家标准,如GB/T 197关于普通螺纹的公差,GB/T 1031关于产品几何技术规范中的表面粗糙度,GB/T 1182和GB/T 1184关于几何公差,以及GB/T 1804关于一般公差的未注公差等,这些标准为机械加工提供了...

    测量学试题和答案.doc

    4. 视差是因为目标实像未完全落在十字丝平面上,当眼睛移动时,目标与十字丝相对移动的现象。消除视差需调整物镜,确保目标实像清晰地与十字丝重合。 5. 水准测量中要求前后视距相等,目的是减少因地球曲率和大气...

    轨道施工组织设计方案范本.doc

    曲线半径由1182m和705m增加到2800m,这将改善列车过弯时的舒适性和安全性。此段工程属于200Km/h的提速改造项目,具体位置在DK436+122.09至DK438+657.92之间。 【要紧技巧规范】涉及了轨道建设的标准和材料选择。...

    互换性与技术测量形位公差及检测PPT学习教案.pptx

    为了规范形位公差的控制,我国制定了一系列国家标准,如GB/T 1182、GB/T 1184、GB/T 4249、GB/T 16671和GB/T 13319等,它们规定了形位公差的通用原则、定义、符号和图样表示方法,以及未注公差值等。 形位公差的...

    罗兰贝格-xx营销组织和管理平台设计gl.ppt

    - 虽然具体细节未给出,但可以推测这五大平台可能是围绕市场调研、产品开发、销售渠道、客户服务以及内部管理等方面构建。 - 每个平台都将扮演着重要的角色,共同支撑起整个营销组织的运作。 ### 四、营销组织的...

    JAVA面向对象编程(孙卫琴)学习笔记

    最后,"~WRD1182.tmp"是一个临时文件,通常在文档编辑过程中产生,可能包含了某个章节的草稿或未保存的内容。 综上所述,这些文件覆盖了Java面向对象编程的基本元素,从入门到深入,对于系统学习和理解Java面向对象...

    从锰银矿中一步法浸出锰和银的热力学基础与应用 (2007年)

    根据实验结果,Mn2+和Ag+在一个特定区域内可稳定共存,具体热力学条件为:温度25℃,压力101.325 kPa,Mn浓度[Mn] = 1 mol/L,Ag浓度[Ag] = 10^-3 mol/L,pH值小于3.63时,电位φ的范围是0.6217 V至(1.229 - 0.1182 ...

    DVP-ES2_EX2_SS2_SA2_SX2-Program_O_SC_20110920.pdf

    新增了M1037、M1119、M1182、M1308、M1346、M1356的功能说明,并更新了M1055~M1057、M1183的功能描述。这些继电器具有特定的功能,例如启动SPD功能、DDRVI两段速输出功能等。 - **2.9 步进继电器S** 用于实现...

    机械行业必知的常识.docx

    - **颜色**: 在计算机辅助设计(CAD)软件中,图线颜色的选择有助于区分不同的图元,但国家标准并未对图线颜色作出明确规定。 - **建议**: 使用鲜明的颜色提高图纸的可读性。 **1.3.3 字体的国际规定** - **字体**: ...

    CAD机械设计赛项判断题样题.docx

    - **解析**:在装配图中,当紧固件被剖切平面通过其对称平面或轴线纵向剖切时,通常按照未剖切的方式绘制,即不显示内部结构,以简化图纸。 #### 24. 圆球截交线的形状 - **解析**:圆球被不同位置的平面截切后,...

Global site tag (gtag.js) - Google Analytics