问题 F: 手机密码

时间限制: 1 Sec  内存限制: 128 MB
提交: 41  解决: 23
[提交] [状态] [讨论版] [命题人:admin]

题目描述

手机安全问题是大家经常关心的一个问题。
在生物解锁没有出现之前,人们通常有两种方式设置手机密码:九宫格密码和数字密码。
我们先来简化一下这两种密码的格式:
对于九宫格密码:
.至少连接4个以上不同的圆点。
.只能连接相邻(八方向)的圆点,且每个圆点只能通过一次。
.密码的长度定义为经过的圆点数。
对于数字密码:
.至少含有四个数字。
.密码长度定义为字符数。
现在,我们来尝试用枚举来破解这两种密码,当然我们可以提前获知一些消息:
.你可以通过观察对方解锁手机所用的时长,大致推断出对方的密码长度,
.在通常情况下,我们可以很轻松的得到密码第一位的信息,因为它最常被触碰比较油腻。而后,你来计算一下,对于这两种密码,最差我们需要枚举多少次,才能解开这组密码。 输入 出入包含四个整数n,a,x,y,
正整数n代表密码长度,
整数a代表数字密码的一位,
正整数(x,y),代表九宫格密码第一个经过的圆点的坐标
输入已EOF结束 输出 输出包含两个正整数,分别代表最差尝试几次可以破解九宫格密码,和数字密码 样例输入 样例输出 提示 九宫格密码的左上角坐标为(,)

思路:

有点长的题目,裸DFS,暴力一遍OK!

题解代码:

 #include<iostream>
#include<stdio.h>
#include<string.h>
#include<string>
#include<vector>
#include<algorithm>
#define ll long long
using namespace std;
#define N 10000
#define ll long long
int mp[][];//(1,1)--(3,3)
int ans1;
int dir[][]={ {,},{,},{,-},{-,},{,-},
{,},{-,},{-,-} };
int vis[][];
int n;
void dfs(int x,int y,int step){
if(step==n)
{
ans1++;return ;
}
for(int i=;i<=;i++){
int dx,dy;
dx=x+dir[i][];
dy=y+dir[i][];
if(dx>=&&dy>=&&dx<=&&dy<=&&!vis[dx][dy]){
vis[dx][dy]=;
dfs(dx,dy,step+);
vis[dx][dy]=;
}
} }
int main()
{
int beg,x,y;
while(scanf("%d%d%d%d",&n,&beg,&x,&y)!=EOF){
ans1=;
ll ans2=;
memset(vis,,sizeof(vis)); vis[x][y]=;
dfs(x,y,); for(int i=;i<=n;i++)
ans2*=; printf("%d %lld\n",ans1,ans2);
} return ;
}

题意不可怕,可怕的是盲目追榜单233~~

2018/7/31-zznu-oj-问题 F: 手机密码--【裸dfs+for循环即可!——据说三个小时内只有两个人读完了题意并轻松AC了】的更多相关文章

  1. 九度OJ 1079:手机键盘 (翻译)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2279 解决:1233 题目描述: 按照手机键盘输入字母的方式,计算所花费的时间 如:a,b,c都在"1"键上,输入a只 ...

  2. iOS 添加手机密码、指纹进行安全验证

    为APP添加安全验证 1.导入头文件 #import <LocalAuthentication/LocalAuthentication.h> 2.添加手机密码验证 //创建安全验证对象 L ...

  3. 洛谷 U6850 手机密码

    U6850 手机密码 题目背景 小明的手机上设了一个由四个数字组成的密码,但是小明自己的记性不好,但又不想把密码直接记在纸上,于是便想了一个方法. 题目描述 小明有四行数字,每行数字都有n[i](&l ...

  4. codeforces div2_603 F. Economic Difficulties(树dfs预处理+dp)

    题目连接:http://codeforces.com/contest/1263/problem/F 题意:有n个设备,上和下分别连接着一颗树,上下两棵树每棵树的叶子节点连接一个设备,两棵树的根节点都是 ...

  5. 2018/03/31 每日一个Linux命令 之 date

    date 命令主要用于查看和修改时间和时区 -- 这里主要学习基本的查看和设置时间和时区的方法. 直接显示日期 date '+%D' 效果 vagrant@hong:~$ date '+%D' 03/ ...

  6. 2018 Multi-University Training Contest 3 Problem F. Grab The Tree 【YY+BFS】

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6324 Problem F. Grab The Tree Time Limit: 2000/1000 MS ...

  7. 2018.12.31 bzoj4001: [TJOI2015]概率论(生成函数)

    传送门 生成函数好题. 题意简述:求nnn个点的树的叶子数期望值. 思路: 考虑fnf_nfn​表示nnn个节点的树的数量. 所以有递推式f0=1,fn=∑i=0n−1fifn−1−i(n>0) ...

  8. 2018.12.31 NOIP训练 偶数个5(简单数论)

    传送门 对于出题人zxyoizxyoizxyoi先%\%%为敬题目需要龟速乘差评. 题意简述:5e55e55e5组数据,给出n,请你求出所有n位数中有偶数个5的有多少,n≤1e18n\le1e18n≤ ...

  9. 2018.12.31 bzoj3771: Triple(生成函数+fft+容斥原理)

    传送门 生成函数经典题. 题意简述:给出nnn个数,可以从中选1/2/31/2/31/2/3个,问所有可能的和对应的方案数. 思路: 令A(x),B(x),C(x)A(x),B(x),C(x)A(x) ...

随机推荐

  1. 安装Node.js教程

    前期准备 1.Node.js 简介简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node ...

  2. ul根据后台添加li,并在点击li时,颜色随之变化

    在我们大多数时候都是通过<ul><li>...</li></ul>来实现同级的加载,但是也用很多时候li里的内容是不固定的.需要根据后台返回数据来生成. ...

  3. [转载]C# MemoryStream(内存流)

    MemoryStream位于System.IO命名空间,为系统内存提供流式的读写操作.常作为其他流数据交换时的中间对象操作. 1.MemoryStream类封装一个字节数组,在构造实例时可以使用一个字 ...

  4. Django与JS交互的示例代码-django js 获取 python 字典-Django 前后台的数据传递

    Django与JS交互的示例代码 Django 前后台的数据传递 https://www.cnblogs.com/xibuhaohao/p/10192052.html 应用一:有时候我们想把一个 li ...

  5. 写一个单独的qt模块 -- ongoing

    彩阳发的链接: https://wiki.qt.io/Creating_a_new_module_or_tool_for_Qt

  6. [转帖]1A2C多口充 紫米USB充电器65W桌面快充版评测

    1A2C多口充 紫米USB充电器65W桌面快充版评测 2019年10月04日 07:48 1786 次阅读 稿源:充电头网 1 条评论 https://www.cnbeta.com/articles/ ...

  7. ota编译及差分包制作

    OTA L 版本OTA build diff OTA升级的步骤如下: 1.new整个project. 2.Step1: ./vendor/mediatek/proprietary/scripts/si ...

  8. python学习-46 时间模块

    时间模块 ····时间戳 print(time.time()) 运行结果: 1564294158.0389376 Process finished with exit code 0 ·····结构化时 ...

  9. MongoDB 正则表达式查询

    正则表达式查询     $regex 注:^ 取反的意思  用特殊的转义字符需要在前面加一个斜杠 通过 ^取反 ,再通过$not取反,就可获得只包含一种类型的数据 \\d  数字 \\s  空格 \\ ...

  10. C 循环统计输入的单词个数和字符长度

    C 循环统计输入的单词个数和字符长度 #include <stdio.h> #include <Windows.h> int main(void) { ]; ; ; print ...