题目描述

农夫约翰的奶牛不停地从他的农场中逃出来,导致了很多损害。为了防止它们再逃出来,他买了一只很大的号码锁以防止奶牛们打开牧场的门。

农夫约翰知道他的奶牛很聪明,所以他希望确保它们不会在简单地试了很多不同的号码组合之后就能轻易开锁。锁上有三个转盘,每个上面有数字1…N (1 <= N <= 100),因为转盘是圆的,所以1和N是相邻的。有两种能开锁的号码组合,一种是农夫约翰设定的,还有一种“预设”号码组合是锁匠设定的。但是,锁有一定的容错性,所以,在每个转盘上的数字都与一个合法的号码组合中相应的数字相距两个位置以内时,锁也会打开。

比如说,如果农夫约翰的号码组合是(1,2,3),预设号码组合是(4,5,6),在转盘被设定为(1,4,5)(因为这和农夫约翰的号码组合足够接近)或(2,4,8)(因为这和预设号码组合足够接近)。注意,(1,5,6)并不会打开锁,因为它与任一号码组合都不够接近。

给出农夫约翰的号码组合和预设号码组合,请计算能够开锁的不同的号码组合的数目。号码是有序的,所以(1,2,3)与(3,2,1)不同。

输入输出格式

输入格式:
第一行:整数N。

第二行:三个以空格分隔的整数,为农夫约翰的号码组合。

第三行:三个以空格分隔的整数,为预设号码组合(可能与农夫约翰的号码组合相同)。

输出格式:
第一行:所有不同的能够开锁的号码组合的总数。

输入输出样例

输入样例#1:
50
1 2 3
5 6 7

输出样例#1:
249
.
.
.
.
.
分析
直接暴力枚举可能的数字,要注意不要计算到重复的结果
.
.
.
.
.
程序:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{int n,a1,a2,a3,b1,b2,b3;scanf("%d",&n);scanf("%d%d%d",&a1,&a2,&a3);scanf("%d%d%d",&b1,&b2,&b3);bool f[101][101][101];memset(f,0,sizeof(f));int ans=0;for (int i=a1-2;i<=a1+2;i++)for (int j=a2-2;j<=a2+2;j++)    for (int k=a3-2;k<=a3+2;k++)if (f[(i+n)%n][(j+n)%n][(k+n)%n]==0){f[(i+n)%n][(j+n)%n][(k+n)%n]=1;ans++;}for (int i=b1-2;i<=b1+2;i++)for (int j=b2-2;j<=b2+2;j++)    for (int k=b3-2;k<=b3+2;k++)if (f[(i+n)%n][(j+n)%n][(k+n)%n]==0){f[(i+n)%n][(j+n)%n][(k+n)%n]=1;ans++;}printf("%d",ans);return 0;
}

转载于:https://www.cnblogs.com/YYC-0304/p/10292815.html

号码锁 Combination Lock相关推荐

  1. 号码锁 Combination Lock [USACO1.4]

    题目描述: 农夫约翰的奶牛不停地从他的农场中逃出来,导致了很多损害.为了防止它们再逃出来,他买了一只很大的号码锁以防止奶牛们打开牧场的门. 农夫约翰知道他的奶牛很聪明,所以他希望确保它们不会在简单地试 ...

  2. [USACO1.3]号码锁 Combination Lock

    https://www.luogu.org/recordnew/show/17460324 题解: /* *@Author: STZG *@Language: C++ */ #include < ...

  3. 列出对象锁(lock)信息及其被杀的会话(sid,serial#)信息

    check_lock.sql脚本 列出对象锁(lock)信息及其被杀的会话(sid,serial#)信息set linesize 132 pagesize 66 break on Kill on us ...

  4. java同步锁售票_Java基础学习笔记: 多线程,线程池,同步锁(Lock,synchronized )(Thread类,ExecutorService ,Future类)(卖火车票案例)...

    学习多线程之前,我们先要了解几个关于多线程有关的概念. 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线程:线程是 ...

  5. Mysql 死锁过程及案例详解之记录锁与间隔锁Record Lock Gap Lock

    记录锁Record Lock与间隔锁GAP Lock 记录锁Record Lock 记录锁Record Locks又称为行锁,它同时包含索引和间隔锁.记录锁可以是共享锁也可能是排他锁.可以通过perf ...

  6. Mysql 死锁过程及案例详解之元数据锁MetaData Lock

    Mysql数据锁MetaData Lock 元数据锁MetaData Lock 元数据锁MetaData Locks的主要作用是在执行查询或者发起事务时元数据结构受到保护,即不被修改. MetaDat ...

  7. Mysql 死锁过程及案例详解之清空缓存锁Flush Lock

    Mysql 清空缓存锁Flush Lock 清空缓存锁Flush Locks flush table的功能是关闭所有打开的表,强制关闭所有正在使用的表,并刷新准备好的语句缓存. 这种操作需要用户拥有  ...

  8. Java并发编程之显式锁(Lock)使用

    又是一个基于AQS好用的类,看来下次有必要看看AQS了,正好又是放假. 既然叫显式锁,必然也有隐式锁,也就是所谓的synchronzied关键字,它们两者的区别呢在于使用范围,synchronzied ...

  9. python多线程之线程锁(Lock)和递归锁(RLock)实例

    一.线程锁 Threading模块为我们提供了一个类,Threading.Lock锁.我们创建一个该类对象,在线程函数执行前,"抢占"该锁,执行完成后,"释放" ...

最新文章

  1. HDU 3549 Flow Problem(最大流模版EK算法)
  2. linux docker 跑代码_使用Docker 搭建自动化测试环境
  3. cuDNN 5对RNN模型的性能优化
  4. Xamarin.Android 使用 Encoding.GetEncoding(GB2312) 报错解决方案
  5. 推荐系统常用术语 [ACM暑校]
  6. SSIS包如何动态指定文件路径
  7. linux c语言 电子相册,纯C语言开发(电子相册).doc
  8. vs 通过命令参数 定义宏_YRC1000 宏程序命令(四十)
  9. oracle命令切换用户,Oracle 常用命令
  10. Recovered from a route's Handler('github.com/kataras/iris/mvc.(*ControllerActivator).handlerOf.func2
  11. 解决360篡改谷歌或其他浏览器主页的问题(亲身经历绝不copy)
  12. 数据库备份-XtraBackup
  13. itunes一直显示正在验证iphone恢复_换新iPhone了,四个方法轻松解决新旧iPhone的资料迁移...
  14. Foxmail邮件数据如何迁移
  15. UG NX 8.5有限元分析入门与实例精讲(PPT、视频、模型)
  16. Echarts 主标题和副标题属性设置
  17. 北大 计算机 考研 专业课程,2020北京大学软微计算机考研初试科目、参考书目、复试线汇总...
  18. 让你意想不到的加密方式——猪圈密码
  19. StringBoot(模板 Thymeleaf 高阶用法)
  20. itouch4g越狱过程中电脑竟然死机

热门文章

  1. 科大星云诗社动态20211130
  2. CMake2:版本号配置与头文件生成
  3. Delphi 105错误
  4. 增加话务系统功能感想
  5. RAR的命令行使用方法 收藏
  6. Java中super函数的用法
  7. 从SOURCE_BUFFER单元开始存放了20个字母A, 编程将这20个字母A的字符串传送到DEST_BUFFER开始的单元中.
  8. Java平台无关性——跨平台
  9. ElasticSearch7.x「新特性」
  10. Java—正整数分解成质因数