PAT A1134 Vertex Cover ——悲欢离合总无情,一任阶前、点滴到天明

2024-01-18 18:50

本文主要是介绍PAT A1134 Vertex Cover ——悲欢离合总无情,一任阶前、点滴到天明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PAT A1134 Vertex Cover

  • 判断所给集合中的点有没有cover到所有的边。在存储图的二维数组中,每个一维数组可以看作与某个顶点相关的所有边,所以当一个顶点出现时,就表示能cover到她的一维数组中的所有边
  • so二维数组存储输入的图(边),再搞一个顶点的hash数组,之后开始判断,对于每个输入的集合,在hash数组中标记其中的点——每标记一个点就相当于划掉了二维数组中此顶点对应的一维数组,标记完看一下那些没被标记的顶点,遍历其一维数组,看与之相邻的顶点是否被标记了,如果没有,就发现了一条没cover到的边,输出No;如果全部遍历过后都没有No,那就Yes
  • 注意判断每个集合前重置hash数组
  • 在这里插入图片描述
#include<iostream>
#include<vector>using namespace std;vector<bool> shot;
vector<vector<int> > vv;int main(){int N,M;scanf("%d %d",&N,&M);vv.resize(N);shot.resize(N,false);for(int i = 0;i < M;i ++){int a,b;scanf("%d %d",&a,&b);vv[a].push_back(b);vv[b].push_back(a);}int K;scanf("%d",&K);for(int i = 0;i < K;i ++){int num;scanf("%d",&num);for(int j = 0;j < shot.size();j ++) shot[j] = false;for(int j = 0;j < num;j ++){int tmp;scanf("%d",&tmp);shot[tmp] = true;}bool flag = false;for(int j = 0;j < vv.size();j ++){if(shot[j]) continue;for(int k = 0;k < vv[j].size();k ++){if(!shot[vv[j][k]]){printf("No\n");flag = true;break;}}if(flag) break;}if(!flag) printf("Yes\n");}return 0;
}

这篇关于PAT A1134 Vertex Cover ——悲欢离合总无情,一任阶前、点滴到天明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/619930

相关文章

Spring点滴五:Spring中的后置处理器BeanPostProcessor讲解

https://www.cnblogs.com/sishang/p/6576665.html BeanPostProcessor接口作用:      如果我们想在Spring容器中完成bean实例化、配置以及其他初始化方法前后要添加一些自己逻辑处理。我们需要定义一个或多个BeanPostProcessor接口实现类,然后注册到Spring IoC容器中。   package com.t

PAT甲级-1044 Shopping in Mars

题目   题目大意 一串项链上有n个钻石,输入给出每个钻石的价格。用m元买一个连续的项链子串(子串长度可为1),如果不能恰好花掉m元,就要找到最小的大于m的子串,如果有重复就输出多个,按递增顺序输出子串的前端和后端索引。 原来的思路 取连续的子串使和恰等于m,没有恰等于就找最小的大于。可以将子串依次累加,使得每个位置都是起始位置到该位置的序列和,整个数组显递增顺序,就可以用右边减左边

SQL Server知识点滴札记

1、从日期时间提取日期、时间 提取日期:convert(varchar(10),a.RegisterDate,120) 提取时间:convert(varchar(8),a.RegisterDate,108) 2、sql里怎么算某个日期到至今一共有多少时间 select datediff(dd,'07-09-01',getdate()) 天数 几天:DD 几月:MM 几年:YY

PAT (Advanced Level) Practice——1011,1012

1011:  链接: 1011 World Cup Betting - PAT (Advanced Level) Practice (pintia.cn) 题意及解题思路: 简单来说就是给你3行数字,每一行都是按照W,T,L的顺序给出相应的赔率。我们需要找到每一行的W,T,L当中最大的一个数,累乘的结果再乘以0.65,按照例子写出表达式即可。 同时还需要记录每一次选择的是W,T还是L

mysql 中 character set 与 collation 的点滴理解

转载自:http://zhongwei-leg.iteye.com/blog/899227 转载: http://zhongwei-leg.iteye.com/blog/899227 使用 mysql 创建数据表的时候, 总免不了要涉及到 character set 和 collation 的概念, 之前不是很了解。   这两天不是很忙, 就自己整理了一下。

【Oracle点滴积累】Oracle 19c安装Critical Patch Update for January 2024

广告位招租! 知识无价,人有情,无偿分享知识,希望本条信息对你有用! 今天和大家分享如何为Oracle 19c(未启用RMAN的单实例)安装Critical Patch Update(Patch Number:35943157),本指引不包含Roll Back部分,本文仅供参考,谢谢! cd /home/oracle/NewVersion_Opatch/OPatch/./opatch v

【Oracle点滴积累】解决IMP-00017、ORA-20005、ORA-06512错误的方法

广告位招租! 知识无价,人有情,无偿分享知识,希望本条信息对你有用! 今天和大家分享 IMP-00017: folloging statement failed with ORACLE error 20005 ORA-20005: object statistics are locked (stattype = ALL) 错误的解决方法,本文仅供参考,谢谢! select 'exec

PAT (Advanced Level) Practice

1001:  题目大意: 计算 a+b 的结果,并以标准格式输出——即每三个数字一组,组之间用逗号分隔(如果数字少于四位,则不需要逗号分隔)  解析: 我们知道相加右正有负,对于样例来说 Sample Input: -1000000 9 Sample Output: -999,991 如果是从左往右,算上负号的话输出应该是-99,999,1 从右往左:-,999,991离正确

转载:点滴记录——Ubuntu 14.04中安装Sublime Text 3并使用SublimeClang插件

转载请说明出处:http://blog.csdn.net/cywosp/article/details/32721011     Sublime Text是个跨平台的编辑器,支持Windows、Linux、Mac系统平台,支持各种语言的代码编辑,配合上对应的插件,话上点时间学习,你将会对它爱不释手,大大的提高你的编码效率。本文将讲解在Ubuntu 14.04系统中安装SublimeT

1050 String Subtraction——PAT甲级

Given two strings S1​ and S2​, S=S1​−S2​ is defined to be the remaining string after taking all the characters in S2​ from S1​. Your task is simply to calculate S1​−S2​ for any given strings. However,