号码锁 Combination Lock
题目描述
农夫约翰的奶牛不停地从他的农场中逃出来,导致了很多损害。为了防止它们再逃出来,他买了一只很大的号码锁以防止奶牛们打开牧场的门。
农夫约翰知道他的奶牛很聪明,所以他希望确保它们不会在简单地试了很多不同的号码组合之后就能轻易开锁。锁上有三个转盘,每个上面有数字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相关推荐
- 号码锁 Combination Lock [USACO1.4]
题目描述: 农夫约翰的奶牛不停地从他的农场中逃出来,导致了很多损害.为了防止它们再逃出来,他买了一只很大的号码锁以防止奶牛们打开牧场的门. 农夫约翰知道他的奶牛很聪明,所以他希望确保它们不会在简单地试 ...
- [USACO1.3]号码锁 Combination Lock
https://www.luogu.org/recordnew/show/17460324 题解: /* *@Author: STZG *@Language: C++ */ #include < ...
- 列出对象锁(lock)信息及其被杀的会话(sid,serial#)信息
check_lock.sql脚本 列出对象锁(lock)信息及其被杀的会话(sid,serial#)信息set linesize 132 pagesize 66 break on Kill on us ...
- java同步锁售票_Java基础学习笔记: 多线程,线程池,同步锁(Lock,synchronized )(Thread类,ExecutorService ,Future类)(卖火车票案例)...
学习多线程之前,我们先要了解几个关于多线程有关的概念. 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线程:线程是 ...
- Mysql 死锁过程及案例详解之记录锁与间隔锁Record Lock Gap Lock
记录锁Record Lock与间隔锁GAP Lock 记录锁Record Lock 记录锁Record Locks又称为行锁,它同时包含索引和间隔锁.记录锁可以是共享锁也可能是排他锁.可以通过perf ...
- Mysql 死锁过程及案例详解之元数据锁MetaData Lock
Mysql数据锁MetaData Lock 元数据锁MetaData Lock 元数据锁MetaData Locks的主要作用是在执行查询或者发起事务时元数据结构受到保护,即不被修改. MetaDat ...
- Mysql 死锁过程及案例详解之清空缓存锁Flush Lock
Mysql 清空缓存锁Flush Lock 清空缓存锁Flush Locks flush table的功能是关闭所有打开的表,强制关闭所有正在使用的表,并刷新准备好的语句缓存. 这种操作需要用户拥有 ...
- Java并发编程之显式锁(Lock)使用
又是一个基于AQS好用的类,看来下次有必要看看AQS了,正好又是放假. 既然叫显式锁,必然也有隐式锁,也就是所谓的synchronzied关键字,它们两者的区别呢在于使用范围,synchronzied ...
- python多线程之线程锁(Lock)和递归锁(RLock)实例
一.线程锁 Threading模块为我们提供了一个类,Threading.Lock锁.我们创建一个该类对象,在线程函数执行前,"抢占"该锁,执行完成后,"释放" ...
最新文章
- HDU 3549 Flow Problem(最大流模版EK算法)
- linux docker 跑代码_使用Docker 搭建自动化测试环境
- cuDNN 5对RNN模型的性能优化
- Xamarin.Android 使用 Encoding.GetEncoding(GB2312) 报错解决方案
- 推荐系统常用术语 [ACM暑校]
- SSIS包如何动态指定文件路径
- linux c语言 电子相册,纯C语言开发(电子相册).doc
- vs 通过命令参数 定义宏_YRC1000 宏程序命令(四十)
- oracle命令切换用户,Oracle 常用命令
- Recovered from a route's Handler('github.com/kataras/iris/mvc.(*ControllerActivator).handlerOf.func2
- 解决360篡改谷歌或其他浏览器主页的问题(亲身经历绝不copy)
- 数据库备份-XtraBackup
- itunes一直显示正在验证iphone恢复_换新iPhone了,四个方法轻松解决新旧iPhone的资料迁移...
- Foxmail邮件数据如何迁移
- UG NX 8.5有限元分析入门与实例精讲(PPT、视频、模型)
- Echarts 主标题和副标题属性设置
- 北大 计算机 考研 专业课程,2020北京大学软微计算机考研初试科目、参考书目、复试线汇总...
- 让你意想不到的加密方式——猪圈密码
- StringBoot(模板 Thymeleaf 高阶用法)
- itouch4g越狱过程中电脑竟然死机