Good Morning
题目链接:Good Morning
题目大意:按键盘上的数字,只能在此位置的基础上往右往下按,要求输出与所给值差的绝对值最小的数
AC代码如下:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
const int maxn=1e9+;
int a[][];
bool vis[];
int f[];
int k; bool judge(int x)
{
int tot=;
int s[];
for( ;x;x/= )
{
s[++tot]=x%;
}
for(int i=tot; i>; i-- )//判断每一位是否符合题目所给的输出条件
{
if( !a[s[i]][s[i-]] ) return false;
}
return true;
} void init()
{
//打表1.a[i][j]表示从i键可以到j键打表为1,其他从i不可到的键为0
a[][]=; a[][]=; a[][]=; a[][]=; a[][]=; a[][]=; a[][]=; a[][]=; a[][]=; a[][]=;
a[][]=; a[][]=; a[][]=; a[][]=; a[][]=; a[][]=; a[][]=;
a[][]=; a[][]=; a[][]=;
a[][]=; a[][]=; a[][]=; a[][]=; a[][]=; a[][]=; a[][]=;
a[][]=; a[][]=; a[][]=; a[][]=; a[][]=;
a[][]=; a[][]=;
a[][]=; a[][]=; a[][]=; a[][]=;
a[][]=; a[][]=; a[][]=;
a[][]=;
a[][]=; memset(vis,false,sizeof(vis));
memset(f,-,sizeof(f));
//打表2,标记0到210之间所有符合输出条件的数
for(int i=;i<=; i++ )
{
if( judge(i) ) vis[i]=true;
}
//打表3,暴力试i的符合输出的数,试i-1,i-2,i-3,,,2,1,0; i; i+1,i+2,i+3,....i+210
for(int i=; i<=; i++ )
{
for(int j=; j<=; j++ )
{
if( i-j>= && vis[i-j] )
{
f[i]=i-j;
break;
}
if( i+j<= && vis[i+j] )
{
f[i]=i+j;
break;
}
}
}
} int main()
{
int t;
scanf("%d",&t);
init();
while( t-- )
{
scanf("%d",&k);
printf("%d\n",f[k]);
}
return ;
}
随机推荐
- volatile-最轻量级的并发实现及其内存语义
原文连接:(http://www.studyshare.cn/blog/details/1163/0 ) 一.volatile定义 volatile是java并发编程中修饰类的成员变量.成员属性或者对 ...
- Java自学-控制流程 If
Java的 If 条件语句 条件判断 示例 1 : if if(表达式1){ 表达式2: } 如果表达式1的值是true, 就执行表达式2 public class HelloWorld { publ ...
- Python基础知识(四)
Python基础知识(四) 一丶列表 定义格式: 是一个容器,由 [ ]表示,元素与元素之间用逗号隔开. 如:name=["张三","李四"] 作用: 存储任意 ...
- vscode+phpstudy构建php调试环境
由于vs code开源和跨平台,而且插件很多,所以打算以后编写和调试php都用vs code. 配置vs code+phpstudy的php调试环境步骤如下: 1.配置phpstudy,其他选项菜单- ...
- 使用sudo进行Linux权限升级技巧
0x00 前言 在我们之前的文章中,我们讨论了如何使用SUID二进制文件和/etc/passwd 文件的Linux权限提升技巧,今天我们发布了另一种“使用Sudoers文件进行Linux权限提示技巧” ...
- MySQL数据库扫盲篇
MySQL数据库扫盲篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL概述 1>.什么是MySQL MySQL是瑞典的MySQL AB公司开发的一个可用于各 ...
- 编译heartbeat出现的问题
如报 cc1: warnings being treated as errors pils.c:245: error: initialization fromincompatible pointer ...
- linux下安装cryptography兼论查找合适pip的whl文件技巧
cryptography这个包,如果源码安装,需要GCC之类的编译,在生产环境不太现实. 所以选择了whl文件安装. 但在官方提供的whl文件里,没有我们熟悉的cp36-cp36m这样的命名文件,肿么 ...
- 使用树莓派GPIO控制继电器
一.使用方法总结: VCC接+5v,GND接负,IN1接GPIO口, 二.然后使用Linux命令或者编程控制GPIO口高低电位即可,如:执行下列命令: gpio readall 列出所有针角 gp ...
- 编程小白入门分享二:IntelliJ IDEA的入门操作小知识
idea简介 IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境.IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支 ...