CodeForcs 1169B Good Triple
CodeForcs 1169B Good Triple
题目链接:http://codeforces.com/problemset/problem/1169/B
题目描述:给你m对不超过n的数字,找出一对x,y,满足在这m对数中至少有一个数字等于x或者y。
思路:假设第一对为(a,b),若x,y存在,则其中之一一定是a,b中的一个数,那么如果存在(c,d),使得与a,b都不相同,那么x,y中的另一个数必在c,d中,所以x,y可能是(a,c),(a,d),(b,c),(b,d),如果不存在(c,d),则x,y就是(a,b),要对m对数进行扫描,则只要满足以下五中情况任意之一即可:(a,b),(a,c),(a,d),(b,c),(b,d)。时间复杂度O(5m)。
#include <iostream>
#include <cstdio>
using namespace std;
const int maxn = 300005;
pair<int, int> pa[maxn];
int n, m;
bool check(int a, int b) {
for (int i = 0; i < m; i++) {
if (a != pa[i].first && a != pa[i].second && b != pa[i].first && b != pa[i].second) return false;
}
return true;
}
int main() {
while (cin >> n >> m) {
if (m == 1) {
cin >> pa[0].first >> pa[0].second;
cout << "YES" << endl;
continue;
}
cin >> pa[0].first >> pa[0].second;
int a = pa[0].first, b = pa[0].second, c, d;
for (int i = 1; i < m; i++) {
scanf("%d%d", &pa[i].first, &pa[i].second);
if (a != pa[i].first && a != pa[i].second && b != pa[i].first && b != pa[i].second) {
c = pa[i].first;
d = pa[i].second;
}
}
bool flag = check(a, b) || check(a, c) || check(a, d) || check(b, c) || check(b, d);
if (flag)
cout << "YES" << endl;
else
cout << "NO" << endl;
}
return 0;
}
CodeForcs 1169B Good Triple的更多相关文章
- 山东省第七届ACM省赛------Triple Nim
Triple Nim Time Limit: 2000MS Memory limit: 65536K 题目描述 Alice and Bob are always playing all kinds o ...
- hdu 3908 Triple(组合计数、容斥原理)
Triple Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 125536/65536 K (Java/Others) Total Su ...
- hdu 5517 Triple(二维树状数组)
Triple Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- Codeforces 1071 C - Triple Flips
C - Triple Flips 思路: 小范围暴力 大范围递归构造 构造方法: solve(l, r) 表示使l 到 r 区间全变为0的方法 为了使反转次数小于等于n/3 + 12 我们只需要保证每 ...
- 【BZOJ3771】Triple(生成函数,多项式运算)
[BZOJ3771]Triple(生成函数,多项式运算) 题面 有\(n\)个价值\(w\)不同的物品 可以任意选择\(1,2,3\)个组合在一起 输出能够组成的所有价值以及方案数. \(n,w< ...
- PAT 1009. Triple Inversions (35) 数状数组
Given a list of N integers A1, A2, A3,...AN, there's a famous problem to count the number of inversi ...
- 【BZOJ 3771】 3771: Triple (FFT+容斥)
3771: Triple Time Limit: 20 Sec Memory Limit: 64 MBSubmit: 547 Solved: 307 Description 我们讲一个悲伤的故事. ...
- hihoCoder #1872 : Pythagorean triple
此题是 2018 年 ICPC Asia Beijing Regional Contest 的 C 题. 题目大意 求斜边长度不超过 $n$($ n \le 10^9$) 的勾股数的数量.不计两直角边 ...
- bzoj 3771 Triple FFT 生成函数+容斥
Triple Time Limit: 20 Sec Memory Limit: 64 MBSubmit: 847 Solved: 482[Submit][Status][Discuss] Desc ...
随机推荐
- ffmpeg 编译集成libfdk-aac
目录 1. 编译libfdk-aac 2. 编译ffmpeg 1. 编译libfdk-aac 下载源码:$ git clone https://github.com/mstorsjo/fdk-aac. ...
- Linux系统查看CPU使用率命令
在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况.而监控CPU的性能一般包括以下3点:运行队列.CPU使用率和上下文切换. 1.top 这个命令很常用,在第三行有显示CP ...
- [CF132C] Logo Turtle
[CF132C] Logo Turtle , Luogu A turtle moves following by logos.(length is \(N\)) \(F\) means "m ...
- java中JDBC是什么?
[学习笔记] JDBC是什么? JDBC即(java database connectivity数据连接).JDBC是Sun公司编的一堆类和方法,都封装在java.sql包中.你可以利用这堆类和方法来 ...
- RabbitMQ 幂等性概念及业界主流解决方案
RabbitMQ 幂等性概念及业界主流解决方案 2019年01月24日 15:57:03 JAVA@架构 阅读数:506 一.什么是幂等性 可以参考数据库乐观锁机制,比如执行一条更新库存的 SQL ...
- DP单调队列--斜率优化P3195
题意:https://www.luogu.com.cn/problem/P3195 思路:https://www.luogu.com.cn/problemnew/solution/P3195 #def ...
- opencv实现人脸识别(二) 人脸图像采集模块
这一步我们开始搭建第一个模块,用来检测到图像中的人脸位置,并将它拍下来保存在指定路径 流程图: 代码实现: import cv2 def pic(cam): # 调用笔记本内置摄像头,所以参数为0,如 ...
- S02_CH02_MIO实验Enter a post title
S02_CH02_MIO实验 2.1 GPIO简介 Zynq7000系列芯片有54个MIO(multiuse I/O),它们分配在 GPIO 的Bank0 和Bank1隶属于PS部分,这些IO与PS直 ...
- xshell和xftp过期解决办法
去官网 xshell:https://www.netsarang.com/download/down_form.html?code=522 xftp:https://www.netsarang.com ...
- S4VM解析
S4VM解析 2018年08月03日 15:20:59 stringlife 阅读数 1233 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. ...