留恋 nyoj 854
留恋
- 描述
-
大家都知道,高中的时候,座位基本都是固定的,但是对于视力不好却又坐在后面的人是很不公平的。
念情的高中班主任安哥是个非常好的班主任,他为每个人着想,制定了一种的换位规则,每周执行一次:
每次都向右下角移动一个位置(即本周坐(0,1),则下周坐(1,2))
若已移动到边上,则返回顶部(即在行数为3的情况下,本周在(2,n),则下周在(0,n+1),列同)
现在念情想知道,如果教室有(n*m)个座位,他能不能把所有的座位都坐一次呢?(假设念情读高中的时间无限)
- 输入
- 第一行一个整数N表示N组测试数据
接下来N行每行两个整数n,m表示教室的座位
1<n<10000
1<m<10000 - 输出
- 若念情能够把座位都坐一边,则输出Possible,否则输出Impossible
- 样例输入
-
3
2 3
2 2
3 6 - 样例输出
-
Possible
Impossible
Impossible 方法一:利用最小公因数//最小公因数
#include<iostream>
using namespace std;
int gcd(int a, int b) ;
int main() {
int t;
cin >> t;
while (t--) {
int n, m;
cin >> n >> m;
if (gcd(n, m) == ) {
cout << "Possible" << endl;
} else {
cout << "Impossible" << endl;
}
}
}
int gcd(int a, int b) {
if (a%b == ) return b;
return gcd(b,a%b);
}方法二:
分析图:
#include<iostream>
#include<cstring>
using namespace std;
const int N = ;
int col[N], row[N];
int main() {
int t;
cin >> t;
while (t--) {
int n, m;
cin >> n >> m;
int i , j, x, y;
i = j = x = y = ;
memset(col,,sizeof(col));
memset(row,,sizeof(row));
while (x <= n && y <= m) {
if (n-i+ < m-j+) {j = j+ n-i+; i = n+; }//i 先到达底部 同时移动n-i+1 步
else if (n-i+ > m-j+) {i = i +m-j+; j = m+; }//j 先到达底部
else { i = n+; j = m+;}//i、j 同时到达底部
if (i > n) { //i 比n大时i必等于n+1
i = ;
if (j <= m) {
if (col[j]) break;
col[j] = ;
y++;
} else {//i 比m大时i必等于m+1 既要向左转
col[] = ;
y++;
}
}
if (j > m) {//i 比m大时i必等于m+1
j = ;
if (i <= n) {
if (row[i]) break;
row[i] = ;
x++;
} else {//i 比n大时i必等于n+1 既要向上转
row[] = ;
x++;
}
}
}
if (x == n+ && y == m+) {//每一个座位都做遍了
cout << "Possible" << endl;
} else {
cout << "Impossible" << endl;
}
}
}
留恋 nyoj 854的更多相关文章
- NYOJ 1007
在博客NYOJ 998 中已经写过计算欧拉函数的三种方法,这里不再赘述. 本题也是对欧拉函数的应用的考查,不过考查了另外一个数论基本定理:如何用欧拉函数求小于n且与n互质所有的正整数的和. 记eule ...
- NYOJ 998
这道题是欧拉函数的使用,这里简要介绍下欧拉函数. 欧拉函数定义为:对于正整数n,欧拉函数是指不超过n且与n互质的正整数的个数. 欧拉函数的性质:1.设n = p1a1p2a2p3a3p4a4...pk ...
- NYOJ 333
http://www.cppblog.com/RyanWang/archive/2009/07/19/90512.aspx?opt=admin 欧拉函数 E(x)表示比x小的且与x互质的正整数的个数. ...
- NYOJ 99单词拼接(有向图的欧拉(回)路)
/* NYOJ 99单词拼接: 思路:欧拉回路或者欧拉路的搜索! 注意:是有向图的!不要当成无向图,否则在在搜索之前的判断中因为判断有无导致不必要的搜索,以致TLE! 有向图的欧拉路:abs(In[i ...
- nyoj 10 skiing 搜索+动归
整整两天了,都打不开网页,是不是我提交的次数太多了? nyoj 10: #include<stdio.h> #include<string.h> ][],b[][]; int ...
- 简答哈希实现 (nyoj 138 找球号2)
例题链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=138 代码目的:复习哈希用 代码实现: #include "stdio.h&qu ...
- nyoj 284 坦克大战 简单搜索
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=284 题意:在一个给定图中,铁墙,河流不可走,砖墙走的话,多花费时间1,问从起点到终点至少 ...
- nyoj 170 网络的可靠性
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=170 思路:统计每个节点的度,将度为1的节点消去所需要的最少的边即为答案. 代码: #in ...
- nyoj 139 我排第几个--康拓展开
我排第几个 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 现在有"abcdefghijkl”12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说 ...
随机推荐
- styled-components解决全局样式'injectGlobal' 废除的问题
最新版的 styled-components v4 已经将原有的 injectGlobal() 方法替换成了 createGlobalStyle() ,而且用法也和之前的 injectGlobal 方 ...
- 2019-04-04 Mybatis学习知识点
1. 比较#和$的区别 #是占位符?,$是字符串拼接.因此使用$的时候,如果参数是字符串类型,那么要使用引号 尽量使用#而不是$ 当参数表示表名或列名的时候,只能使用$ 2. 多参数时候 配置文件中使 ...
- Python——模块——配置模块(ConfigParser)
一.读取 read(filename) 直接读取ini文件内容 sections() 得到所有的section,并以列表的形式返回 options(section) 得到该section的所有opt ...
- java 中的引用数据类型
字符串String 在java 中,字符串不是基本数据类型,而是String 类的对象,当我们创建一个字符串的时候,真的是要使用new 来调用String 构造函数 String str = new ...
- Codeforces Round #523 (Div. 2) D. TV Shows 模拟(多重集 先把所有区间加入多重集合)+贪心+二分
题意:给出n个电视节目的起始和结束时间 并且租一台电视需要x +y*(b-a) [a,b]为时段 问完整看完电视节目的最小花费是多少 思路:贪心的思想 情况1 如果新租一台电视的花费<=在空 ...
- Java定义三个点Object...
从Java 5开始,Java语言对方法参数支持一种新写法,叫 可变长度参数列表,其语法就是类型后跟...,表示此处接受的参数为0到多个Object类型的对象,或者是一个Object[]. public ...
- Codeforces Round #543
(比赛链接)[http://codeforces.com/contest/1120] A 给出一个长度为m的序列a 可以删除一些数 使得最后从没删的第一个数开始 每k个一截 截出的n个多重集合中 至少 ...
- CSS中各种居中的问题
1.元素水平居中 1.1 在父元素上使用text-align: center; father { text-align: center; } 1.2 margin: 0 auto; 在上一个问题中,我 ...
- 自动化测试框架【linux版】:JMeter + Ant + Jenkins
前提条件:linux安装了jmeter.ant.jenkins 安装方法参考汇总目录中对应的博文 截图看不清的,可以调大浏览器倍数看 jenkins驱动ant执行,ant驱动jmeter执行 ant调 ...
- CF350E 【Wrong Floyd】
Description 给定n个点,m条边,k个标记点,hack掉给出的程序. Solution 先考虑不可能hack掉的情况.当所有点都是标记点的时候肯定不能hack掉,也就是\(n=k\).还有就 ...