D. Relatively Prime Graph

Let's call an undirected graph G=(V,E)G=(V,E) relatively prime if and only if for each edge (v,u)E(v,u)∈E  GCD(v,u)=1GCD(v,u)=1 (the greatest common divisor of vv and uu is 11). If there is no edge between some pair of vertices vv and uu then the value of GCD(v,u)GCD(v,u) doesn't matter. The vertices are numbered from 11 to |V||V|.

Construct a relatively prime graph with nn vertices and mm edges such that it is connected and it contains neither self-loops nor multiple edges.

If there exists no valid graph with the given number of vertices and edges then output "Impossible".

If there are multiple answers then print any of them.

Input

The only line contains two integers nn and mm (1n,m1051≤n,m≤105) — the number of vertices and the number of edges.

Output

If there exists no valid graph with the given number of vertices and edges then output "Impossible".

Otherwise print the answer in the following format:

The first line should contain the word "Possible".

The ii-th of the next mm lines should contain the ii-th edge (vi,ui)(vi,ui) of the resulting graph (1vi,uin,viui1≤vi,ui≤n,vi≠ui). For each pair (v,u)(v,u)there can be no more pairs (v,u)(v,u) or (u,v)(u,v). The vertices are numbered from 11 to nn.

If there are multiple answers then print any of them.

Examples
input
Copy
5 6
output
Copy
Possible
2 5
3 2
5 1
3 4
4 1
5 4
input
Copy
6 12
output
Copy
Impossible
Note

Here is the representation of the graph from the first example:

 

   这题无脑暴力 暴力真的出了奇迹 

   暴力枚举一遍就行了

 

    

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int maxn = 1e5 + 10;
 4 const int INF = 0x3fffffff;
 5 typedef long long LL;
 6 using namespace std;
 7 int n, m;
 8 struct node {
 9     int x, y;
10     node () {}
11     node (int x, int y): x(x), y(y) {}
12 } qu[maxn];
13 int main() {
14     scanf("%d%d", &n, &m);
15     if (n - 1 > m) {
16         printf("Impossible\n");
17         return 0;
18     }
19     int k = 0, flag = 0;
20     for (int i = 1 ; i <= n ; i++) {
21         for (int j = i + 1 ; j <= n ; j++) {
22             if (__gcd(i, j) == 1) qu[k++] = node(i, j);
23             if (k == m) {
24                 flag = 1;
25                 break;
26             }
27         }
28         if (flag) break;
29     }
30     if (flag) {
31         printf("Possible\n");
32         for (int i = 0 ; i < k ; i++)
33             printf("%d %d\n", qu[i].x, qu[i].y);
34     } else  printf("Impossible\n");
35     return 0;
36 }

 

转载于:https://www.cnblogs.com/qldabiaoge/p/9314221.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451977.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络爬虫--19.【Scrapy-Redis实战】分布式爬虫爬取房天下--环境准备

文章目录0. 思路一. 虚拟机Ubuntu0中安装Redis二. 虚拟机Ubuntu1中安装Redis三. Windows服务器上安装Redis四. 安装cmder五. 安装RedisDesktopManager六. 修改Windows中的配置文件redis.windows.conf七. Ubuntu连接Windows上 的Redis服务器-----------------------------------…

tkinter中scale拖拉改变值控件(十一)

scale拖拉改变值控件 使用户通过拖拽改变值 简单的实现&#xff1a; 1 import tkinter2 3 wuya tkinter.Tk() 4 wuya.title("wuya") 5 wuya.geometry("300x2001020") 6 7 8 # 创建对象 9 scale1 tkinter.Scale(wuya, from_0, to100) 10 scale1.pac…

计算机图形学理论(4):缓冲区

本系列根据国外一个图形小哥的讲解为本&#xff0c;整合互联网的一些资料&#xff0c;结合自己的一些理解。 什么是缓冲区&#xff1f; 缓冲区是保存某些数据的临时存储空间。 为什么我们需要缓冲区&#xff1f;原因很简单&#xff0c;当数据量很大时&#xff0c;因为计算机无…

网络爬虫--20.【Scrapy-Redis实战】分布式爬虫获取房天下--代码实现

文章目录一. 案例介绍二.创建项目三. settings.py配置四. 详细代码五. 部署1. windows环境下生成requirements.txt文件2. xshell连接ubuntu服务器并安装依赖环境3. 修改部分代码4. 上传代码至服务器并运行一. 案例介绍 爬取房天下&#xff08;https://www1.fang.com/&#xff…

同一台电脑安装python2python3

【安装之前&#xff0c;先了解一下概念】 python是什么&#xff1f; Python是一种面向对象的解释型计算机程序设计语言&#xff0c;由荷兰人Guido van Rossum于1989年发明&#xff0c;第一个公开发行版发行于1991年。 Python是纯粹的自由软件&#xff0c; 源代码和解释器CPytho…

程序员的常见健康问题

其实这些问题不仅见于程序员&#xff0c;其他长期经常坐在电脑前的职场人士&#xff08;比如&#xff1a;网络编辑、站长等&#xff09;&#xff0c;都会有其中的某些健康问题。希望从事这些行业的朋友&#xff0c;对自己的健康问题&#xff0c;予以重视。以下是全文。 我最近…

网络爬虫--21.Scrapy知识点总结

文章目录一. Scrapy简介二. Scrapy架构图三. Scrapy框架模块功能四. 安装和文档五. 创建项目六. 创建爬虫一. Scrapy简介 二. Scrapy架构图 三. Scrapy框架模块功能 四. 安装和文档 中文文档&#xff1a;https://scrapy-chs.readthedocs.io/zh_CN/latest/intro/tutorial.html …

Ubuntu将在明年推出平板及手机系统

4月26日下午消息&#xff0c;知名Linux厂商Canonical今天正式发布Ubuntu 12.04版开源操作系统。Ubuntu中国首席代表于立强透露&#xff0c;针对平板电脑的Ubuntu操作系统将在明年推出。 Ubuntu 12.04版开源操作系统发布 Ubuntu操作系统是一款开源操作系统&#xff0c;主要与OE…

Android Studio 超级简单的打包生成apk

为什么要打包&#xff1a; apk文件就是一个包&#xff0c;打包就是要生成apk文件&#xff0c;有了apk别人才能安装使用。打包分debug版和release包&#xff0c;通常所说的打包指生成release版的apk&#xff0c;release版的apk会比debug版的小&#xff0c;release版的还会进行混…

推荐16款最棒的Visual Studio插件

Visual Studio是微软公司推出的开发环境&#xff0c;Visual Studio可以用来创建Windows平台下的Windows应用程序和网络应用程序&#xff0c;也可以用来创建网络服务、智能设备应用程序和Office插件。 本文介绍16款最棒的Visual Studio扩展&#xff1a; 1. DevColor Extension…

网络爬虫--22.【CrawlSpider实战】实现微信小程序社区爬虫

文章目录一. CrawlSpider二. CrawlSpider案例1. 目录结构2. wxapp_spider.py3. items.py4. pipelines.py5. settings.py6. start.py三. 重点总结一. CrawlSpider 现实情况下&#xff0c;我们需要对满足某个特定条件的url进行爬取&#xff0c;这时候就可以通过CrawlSpider完成。…

怎么安装Scrapy框架以及安装时出现的一系列错误(win7 64位 python3 pycharm)

因为要学习爬虫&#xff0c;就打算安装Scrapy框架&#xff0c;以下是我安装该模块的步骤&#xff0c;适合于刚入门的小白&#xff1a; 一、打开pycharm&#xff0c;依次点击File---->setting---->Project----->Project Interpreter&#xff0c;打开后&#xff0c;可以…

xpath-helper: 谷歌浏览器安装xpath helper 插件

1.下载文件xpath-helper.crx xpath链接&#xff1a;https://pan.baidu.com/s/1dFgzBSd 密码&#xff1a;zwvb&#xff0c;感谢这位网友&#xff0c;我从这拿到了 2.在Google浏览器里边找到这个“扩展程序”选项菜单即可。 3.然后就会进入到扩展插件的界面了,把下载好的离线插件…

网络爬虫--23.动态网页数据抓取

文章目录一. Ajax二. 获取Ajax数据的方式三. seleniumchromedriver获取动态数据四. selenium基本操作一. Ajax 二. 获取Ajax数据的方式 三. seleniumchromedriver获取动态数据 selenium文档&#xff1a;https://selenium-python.readthedocs.io/installation.html 四. sele…

gcc g++安装

2019独角兽企业重金招聘Python工程师标准>>> 安装之前要卸载掉老版本的gcc、g sudo apt-get remove gccgcc-xx #可能有多个版本&#xff0c;都要删掉 sudo apt-get remove g sudo apt-get install gcc 安装g编译器&#xff0c;可以通过命令 sudo apt-get installb…

网络爬虫--24.【selenium实战】实现拉勾网爬虫之--分析接口获取数据

文章目录一. 思路概述二. 分析数据接口三. 详细代码一. 思路概述 1.拉勾网采用Ajax技术&#xff0c;加载网页时会向后端发送Ajax异步请求&#xff0c;因此首先找到数据接口&#xff1b; 2.后端会返回json的数据&#xff0c;分析数据&#xff0c;找到单个招聘对应的positionId…

bzoj 1999: [Noip2007]Core树网的核【树的直径+单调队列】

我要懒死了&#xff0c;所以依然是lyd的课件截图 注意是min{max(max(d[uk]),dis(u1,ui),dis(uj,un))}&#xff0c;每次都从这三个的max里取min #include<iostream> #include<cstdio> using namespace std; const int N500005; int n,m,h[N],cnt,d[N],s,t,mx,f[N],a…

Java 设计模式-【单例模式】

单例解决了什么问题&#xff1a;为了节约系统资源&#xff0c;有时需要确保系统中某个类只有唯一一个实例&#xff0c;当这个唯一实例创建成功之后&#xff0c;我们无法再创建一个同类型的其他对象&#xff0c;所有的操作都只能基于这个唯一实例。为了确保对象的唯一性&#xf…

网络爬虫--26.Scrapy中下载器中间件Downloader Middlewares的使用

文章目录一. Downloader Middlewares二. 设置随机请求头三. ip代理池中间件一. Downloader Middlewares 二. 设置随机请求头 三. ip代理池中间件