NY--854 -- 留恋
2013-10-18 13:20
316 查看
留恋
时间限制:1000 ms | 内存限制:65535 KB难度:2
描述
大家都知道,高中的时候,座位基本都是固定的,但是对于视力不好却又坐在后面的人是很不公平的。
念情的高中班主任安哥是个非常好的班主任,他为每个人着想,制定了一种的换位规则,每周执行一次:
每次都向右下角移动一个位置(即本周坐(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
Code:
//重复代码多了,懒得改了,,就这样吧。。 #include<stdio.h> #include<string.h> bool vish[10005],visl[10005]; //只要分配第一行和第一列的空间就行 int main() { int t,m,n,i,x,y; scanf("%d",&t); while(t--) { memset(vish,0,sizeof(vish)); memset(visl,0,sizeof(visl)); scanf("%d%d",&m,&n); int sum = m+n-1; vish[0] = visl[0] = 1; //假设从第一个位开始坐 x = y = 0; for(i=1;;i++) { //接下来只要判断x和y谁先到达边界,直接跳到下一步即可,减少更改状态值的次数 if((m-x-1) < (n-y-1)){ y = (y+m-x)%n; x = 0; } else if((m-x-1) > (n-y-1)){ x = (x+n-y)%m; y = 0; } if(x==0){ //判断更改哪个数组的状态,是行还是列 if(visl[y]){ if(i >= sum) { printf("Possible\n"); break; } else { printf("Impossible\n"); break; } } visl[y] = 1; } if(y==0){ if(vish[x]){ if(i >= sum) { printf("Possible\n"); break; } else { printf("Impossible\n"); break; } } vish[x] = 1; } } } return 0; }
相关文章推荐
- NYOJ 题目854 留恋(数学)
- nyoj-854-留恋
- NYOJ 题目854 留恋
- NYOJ 854 留恋
- 纪念的,留恋的,挂念的
- Brady Bunch mom got crabs in affair with NY mayor
- ny 67 三角形面积
- NY--254 -- 编号统计
- NY--95 -- 众数问题 [水]
- 作业题_ny_201(dp)
- 留恋
- ny 324 猴子吃桃问题
- ny-单调递增最长子序列
- Regionals 2014 >> North America - Greater NY >> 7094 - Happy Happy Prime Prime
- ny 万圣节派对
- 854计算机基础——《计算机组成原理》考点汇总(四) IO系统
- AOJ-problem-854
- Codeforces 854 A Fraction
- 留恋上海
- 再留恋也留不住,再坚强也强不过命!