sdut 离散数学11 判断是否为双射
题目链接
http://www.sdutacm.org/onlinejudge2/index.php/Home/Contest/contestproblem/cid/2083/pid/3805.html
离散题目11
Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic
Problem Description
给定一个数学函数写一个程序来确定该函数是否是双射(既是单射,又是满射)的。
如果每个可能的像至少有一个变量映射其上(即像集合B中的每个元素在A中都有一个或一个以上的原像),或者说值域任何元素都有至少有一个变量与之对应,那这个映射就叫做满射。
单射
即A中的任意一个元素唯一的对应一个函数值,并且该值为B集合中的某个元素。
Input
多组输入。 第一行输入三个整数n,m,k,分别表示集合a中的元素个数,集合b中的元素个数,集合a到b的映射个数。 第二行输入n个数,代表集合a中的元素。 第三行输入m个数,代表集合b中的元素。接下来k行,每行两个数,代表集合a中的元素x和x在集合b中的像y。
Output
每组数据输出一行,若F为a到b的双射,输出”YES”, 否则输出”NO”。
Example Input
5 5 5
1 2 3 7 8
2 5 6 9 0
1 9
3 2
2 6
7 0
8 5
Example Output
YES
Hint
保证集合a中元素无重复,集合b中元素无重复,映射关系无重复(如:{,})
1<=n,m,k<=1000
1<=a[i], b[i]<=10000
x∈a, y∈b
Author
Stone
#include<bits/stdc++.h>
#include<iostream>
using namespace std;int main()
{int n,m;while(cin>>n){int k;cin>>m>>k;int u = 0;int book[100005]={0};int b[100005]={0};for(int i=1;i<=n;i++){int num;cin>>num;}for(int i=1;i<=m;i++){int num;cin>>num;b[num]++;}int f = 0;for(int i=1;i<=k;i++){int x,y;cin>>x>>y;if(b[y]==1)//判断满射条件,记录y在映射中的个数(只记录条件中的,重复的只记一次),因为无重复,所以只需个数等于m即可{b[y]++;u++;}if(f)continue;if(book[x]==1)//判断单设条件,映射中x只能出现一次,且映射的y在条件中必须存在{f = 1;}if(b[y]==0){f = 1;}book[x] = 1;}if(u>=m&&!f)printf("YES\n");elseprintf("NO\n");}return 0;
}
sdut 离散数学11 判断是否为双射相关推荐
- 离散题目11 判断双射
Problem Description 给定一个数学函数写一个程序来确定该函数是否是双射的 Input 多组输入. 第一行输入三个整数n,m,k,分别表示集合a中的元素个数,集合b中的元素个数,集合a ...
- C++11判断inf, nan
参考链接:http://en.cppreference.com/w/cpp/numeric/math/isinf 程序中碰到nan却找不到哪里出错是最让人头疼的问题之一,最近在cppreference ...
- 11.判断一个人出生了多少天
判断一个人出生了多少天 思路: 1.获取当前时间对应的日期的毫秒值 2.获取出生日期毫秒值 3.毫秒值相减 代码 public static void method(Date date1) {//获取 ...
- 【SDUT第11周周赛Problem A】SDUT2576——Queen Collisions
来源:点击打开链接 由于一些原因,需要在短短的一段时间内速成图论和搜索了= =,希望能够有一个不错的结果. 这个题是著名八皇后问题的变种,大意就是问在一个棋盘中,照面的皇后有几组(横着竖着斜着都算) ...
- 图11——判断图中是否为一棵树
编写算法,判断一个无向图是否是一颗树. [分析] 一个无向图G是一棵树的条件为:G必须是无回路的连通图或n-1条边的连通图,这里我们采用后者作为判断条件.例如下图所示: 上面的无向图就是一棵树,它有6 ...
- 判断滚动条是否到某个位置,还有滑动的方向,以此来判断什么时候阻止滚动条滚动...
<script type="text/javascript"> // 防止内容区域滚到底后引起页面整体的滚动 var content = document.queryS ...
- js判断输入数字是否是整数,金额、数字
function isIntNum(strNum){//js判断输入数字是否是整数 仅供学习思想var strCheckNum = strNum+"";if(strCheckNum ...
- WordPress页面、文章、分类等的条件判断的标签集合
is_home() //判断是否为首页. #The Front Page 首页头版消息设置 is_front_page() //判断是否为首页头版消息. (无论是日志或是页面).当系统显示博客主页且管 ...
- 几何常用算法与判断线段相交【转】
下面这个函数在我写的计算几何库函数里面有,那个库可以在http://algorithm.126.com/的资源中心 - 代码角 找到. 算法简单说明: 首先判断以两条线段为对角线的矩形是否 ...
最新文章
- 【数学建模】MATLAB从入门到精通:Logistic模型原理及应用案例(附MATLAB代码)
- iOS开发之Quzrtz2D 一:认识Quzrtz2D
- project ‘org.springframework.boot:spring-boot-starter-parent:2.1.4.RELEASE‘ not found
- 研究c语言,研究c语言计算机编程实验.docx
- python3下使用cv2.imwrite存储带有中文路径图片或者绝对路径图片
- android toolbar区别,Android《ToolBar》
- vs.net c# 安装、注册windows service服务,判断服务是否存在,是否启动
- c 取数组 最大值 算法_拜托,面试别再问我最大值最小值了!!!
- 谁将拥有移动互联网的下一个机会?…
- 一、理解网络编程和套接字
- JAVA实战项目--文章发布系统
- VScode下载安装及使用教程
- c语言运行excel中vba程序,Excel 中如何运行 VBA 代码?
- 如何开发一个App(Android)
- 浏览器如何导出证书?
- 期货开户手续费是怎么查询?
- PM、RD、QA、OP
- 读HTTP权威指南的体会
- 金航数码选择应用 TDengine 时序数据库,改造现有数据库架构
- Don‘t Cry Over Spilt Milk