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中有个风云人 ...
随机推荐
- Docker中配置国内镜像
1. 为什么要为docker配置国内镜像 在正常情况下,docker有一个默认连接的国外官方镜像,在国外的网友访问该官方镜像自然不成问题,但是国内毕竟不是国外,由于国情不同,中国的网络访问国外官方 ...
- Linux下利用Shell使PHP并发采集淘宝产品
上次项目中用到<<PHP采集淘宝商品>> 此方法有一个缺点,就是执行效率问题.一个商品采集平均需要0.8秒.那10000个商品采集完需要2个半小时. 首先想到的解决办法是并发. ...
- Android Studio中 ADB WIFI插件进行无线调试实践
首先要确保电脑和手机在同一个局域网中.具体步骤如下 1.Android Studio中安装ADB WIFI插件.安装成功后重启Android Studio.(没有安装过插件的同仁,请自己搜索) 2.手 ...
- .net下所有DLL(API)查询,转换C#代码
地址: http://www.pinvoke.net/default.aspx/coredll.SetDevicePower 实例: SetDevicePower (coredll) coredl ...
- emacs里面模拟vim按键操作的插件evil
emacsConfig/evil-setting.el (setq evil-mode t) (setq evil-shift-width ) ;; some modes aren't meant f ...
- 2018-2019-1 20165226《信息安全系统设计基础》 pwd命令的实现
2018-2019-1 20165226<信息安全系统设计基础> pwd命令的实现 一.学习pwd 查看pwd 得知一个嫩过去文件路径的函数--getcwd i节点值 通过ls -i -a ...
- Hive 体系结构
1.Hive架构与基本组成 下面是Hive的架构图. 图1.1 Hive体系结构 Hive的体系结构可以分为以下几部分: (1)用户接口主要有三个:CLI,Client 和 W ...
- Variation Model的应用
Variation Model的主要原理是将待检测的图像与一张标准图像作比较,找出待检测图像与标准图像(ideal image)的明显差异(也就是不良). 标准图像可以采用几张OK品的图像训练(tra ...
- UNITY C#内存泄漏
http://www.360doc.com/content/15/0717/09/10504424_485422031.shtml
- 新手C#s.Split(),s.Substring(,)以及读取txt文件中的字符串的学习2018.08.05
s.split()用于字符串分割,具有多种重载方法,可以通过指定字符或字符串分割原字符串成为字符串数组. //s.Split()用于分割字符串为字符串数组,StringSplitOptions.Rem ...