CoderForces 689A Mike and Cellphone (水题)
题意:给定一个手机键盘数字九宫格,然后让你判断某种操作是不是唯一的,也就是说是不是可以通过平移也能实现。
析:我的想法是那就平移一下,看看能实现,就四种平移,上,下,左,右,上是-3,要注意0变成8,如果有数字变成小于等于0了,那么就是不可以,同理,下是+3,8可以变成0,其他的也是这样,
注意左右平移是147,和369,是不能平移,然后就AC了。再简化一下就是如果有123,就不能上移,如果有79就不能下移,如果有147就不能左移,如果有369就不能右移,如果有0就不能下左右移。
代码如下:
#include <iostream>
#include <cstdio> using namespace std;
const int maxn = 9 + 5;
int a[maxn];
int b[maxn];
char s[maxn]; int main(){
int n;
while(scanf("%d", &n) == 1 && n){
scanf("%s", s);
for(int i = 0; i < n; ++i) a[i] = s[i] - '0';
bool ok = false;
for(int i = 0; i < n; ++i)//下
if(a[i] && a[i] != 8) b[i] = a[i] + 3;
else if(a[i] == 8) b[i] = 0;
else b[i] = 10;
int i;
for(i = 0; i < n; ++i) if(b[i] > 9) break;
if(i == n) ok = true;
for(i = 0; i < n; ++i)//上
if(a[i]) b[i] = a[i] - 3;
else b[i] = 8;
for(i = 0; i < n; ++i) if(b[i] <= 0) break;
if(i == n) ok = true;
for(i = 0; i < n; ++i)//右
if(3 == a[i] || 6 == a[i] || 9 == a[i]) b[i] = 10;
else if(a[i]) b[i] = a[i] + 1;
else b[i] = 10;
for(i = 0; i < n; ++i) if(b[i] > 9) break;
if(i == n) ok = true;
for(i = 0; i < n; ++i)//左
if(a[i] == 1 || a[i] == 4 || a[i] == 7) b[i] = -10;
else if(a[i]) b[i] = a[i] - 1;
else b[i] = -10;
for(i = 0; i < n; ++i) if(b[i] <= 0) break;
if(i == n) ok = true;
if(!ok) puts("YES");
else puts("NO");
}
return 0;
}
第二种:
#include <iostream>
#include <cstdio> using namespace std;
const int maxn = 9 + 5;
int a[maxn];
int b[maxn];
char s[maxn]; int main(){
int n;
while(scanf("%d", &n) == 1 && n){
scanf("%s", s);
int l = 0, u = 0, r = 0, d = 0;
for(int i = 0; i < n; ++i){
if(s[i] == '0') l = r = d = 1;
if(s[i] == '1' || s[i] == '4' || s[i] == '7') l = 1;
if(s[i] == '3' || s[i] == '6' || s[i] == '9') r = 1;
if(s[i] == '1' || s[i] == '2' || s[i] == '3') u = 1;
if(s[i] == '7' || s[i] == '9') d = 1;
}
if(u && d && l && r) puts("YES");
else puts("NO");
}
return 0;
}
CoderForces 689A Mike and Cellphone (水题)的更多相关文章
- codeforces 689A A. Mike and Cellphone(水题)
题目链接: A. Mike and Cellphone time limit per test 1 second memory limit per test 256 megabytes input s ...
- Codeforces Round #361 (Div. 2) A. Mike and Cellphone 水题
A. Mike and Cellphone 题目连接: http://www.codeforces.com/contest/689/problem/A Description While swimmi ...
- CodeForces 689A Mike and Cellphone (模拟+水题)
Mike and Cellphone 题目链接: http://acm.hust.edu.cn/vjudge/contest/121333#problem/E Description While sw ...
- CodeForces 689A -Mike and Cellphone
题目链接:http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=412142 题目大意: 给定一个0-9数字键盘,随后输入一个操 ...
- HDOJ 2317. Nasty Hacks 模拟水题
Nasty Hacks Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- ACM :漫漫上学路 -DP -水题
CSU 1772 漫漫上学路 Time Limit: 1000MS Memory Limit: 131072KB 64bit IO Format: %lld & %llu Submit ...
- ytu 1050:写一个函数,使给定的一个二维数组(3×3)转置,即行列互换(水题)
1050: 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 154 Solved: 112[ ...
- [poj2247] Humble Numbers (DP水题)
DP 水题 Description A number whose only prime factors are 2,3,5 or 7 is called a humble number. The se ...
- gdutcode 1195: 相信我这是水题 GDUT中有个风云人物pigofzhou,是冰点奇迹队的主代码手,
1195: 相信我这是水题 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 821 Solved: 219 Description GDUT中有个风云人 ...
随机推荐
- 【python】python实例集<二>
##扫描某个ip的端口号 # #-*- coding: utf-8 -*- # import socket # def main(): # sk = socket.socket(socket.AF_I ...
- emacs之配置php
php-setting.el (require 'php-mode) 以后丰富
- postman tests实例记录(还没看,一些常用的)
这段时间准备测试api接口,postman这个工具很是方便,特别是里面的tests的javascript脚本. 记录一下测试接口常用的tests验证的实例. 1.设置环境变量 postman.setE ...
- C++ 函数特性_函数重载
函数重载 在相同作用域内 用同一函数名定义的多个函数: 参数个数和参数类型不同 int getMax(int x,int y,int z) // 函数名相同都是 getMax() { // to do ...
- Java ScriptEngine 解析js
Java ScriptEngine 解析js 1.脚本引擎 ① 通过脚本名称获取: ScriptEngine engine = new ScriptEngineManager().getEn ...
- Hadoop Hive 中的排序 Order by ,Sort by ,Distribute by以及 Cluster By
order by order by 会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)只有一个reducer,会导致当输入规模较大时,需要较长的计算时间. set h ...
- requests and BeautifulSoup
requests Python标准库中提供了:urllib.urllib2.httplib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作, ...
- 1.1_C语言概述
C语言概述 1.1 什么是C语言 一提到语言这个词语,自然会想到的是像英语.汉语等这样的自然语言,因为它是人和人交换信息不可缺少的工具. 而今天计算机遍布了我们生活的每一个角落,除了人和人的相互交流之 ...
- oracle sqlplus conn 远程连接
- 关于SSE的一些资料
之前查到的,觉得还不错,一直没时间看,放这里先存着 https://software.intel.com/en-us/articles/using-intel-streaming-simd-exten ...