USACO Section1.3 Combination Lock 解题报告
combo解题报告 —— icedream61 博客园(转载请注明出处)
------------------------------------------------------------------------------------------------------------------------------------------------
【题目】
一个三位密码锁,每位可能取值1~N。有两个解锁密码,都会给出。
若尝试的密码与某个解锁密码相等或相近(每位值都至多差2),均可解开锁。
例如:(1,2,3)(4,5,6)是两个解锁密码,那么(1,N,5)(2,4,8)均可解锁,而(1,5,6)则不可。
【数据范围】
1<=N<=100
【输入样例】
50
1 2 3
5 6 7
【输出样例】
249
------------------------------------------------------------------------------------------------------------------------------------------------
【分析】
直接枚举。
需要注意,两个密码相等的判断容易出错(需要%N的情况下,下标并非从0开始;差2及以内均相等,此差2可能与%N同时发生)。
------------------------------------------------------------------------------------------------------------------------------------------------
【总结】
一遍AC。
顺带用了下重载运算符与类内置函数的语法,有个小问题存疑:如果我把代码中add和inRange两个函数放到Key类里面,那么operator==里面便无法调用这两个函数。如有人懂,望不吝赐教~
------------------------------------------------------------------------------------------------------------------------------------------------
【代码】
/*
ID: icedrea1
PROB: combo
LANG: C++
*/ #include <iostream>
#include <fstream>
using namespace std; int N; int add(int x,int y) { return (x+y-+N)%N+; }
bool inRange(int x,int y) { return x==y || add(x,)==y || add(x,)==y || add(x,-)==y || add(x,-)==y; } struct Key
{
int x,y,z;
friend bool operator==(Key a,Key b) { return inRange(a.x,b.x) && inRange(a.y,b.y) && inRange(a.z,b.z); }
}; Key A,B; int main()
{
ifstream in("combo.in");
ofstream out("combo.out"); in>>N;
in>>A.x>>A.y>>A.z;
in>>B.x>>B.y>>B.z; int s=;
Key t;
for(t.x=;t.x<=N;++t.x)
for(t.y=;t.y<=N;++t.y)
for(t.z=;t.z<=N;++t.z) s+=(t==A||t==B);
out<<s<<endl; in.close();
out.close();
return ;
}
USACO Section1.3 Combination Lock 解题报告的更多相关文章
- USACO Section1.5 Prime Palindromes 解题报告
pprime解题报告 —— icedream61 博客园(转载请注明出处)--------------------------------------------------------------- ...
- USACO Section1.5 Superprime Rib 解题报告
sprime解题报告 —— icedream61 博客园(转载请注明出处)--------------------------------------------------------------- ...
- USACO Section1.5 Number Triangles 解题报告
numtri解题报告 —— icedream61 博客园(转载请注明出处)--------------------------------------------------------------- ...
- USACO Section1.4 Arithmetic Progressions 解题报告
ariprog解题报告 —— icedream61 博客园(转载请注明出处)-------------------------------------------------------------- ...
- USACO Section1.3 Prime Cryptarithm 解题报告
crypt1解题报告 —— icedream61 博客园(转载请注明出处)--------------------------------------------------------------- ...
- USACO Section1.3 Barn Repair 解题报告
barn1解题报告 —— icedream61 博客园(转载请注明出处)---------------------------------------------------------------- ...
- USACO Section1.3 Mixing Milk 解题报告
milk解题报告 —— icedream61 博客园(转载请注明出处)----------------------------------------------------------------- ...
- USACO Section1.2 Palindromic Squares 解题报告
palsquare解题报告 —— icedream61 博客园(转载请注明出处)------------------------------------------------------------ ...
- USACO Section1.2 Dual Palindromes 解题报告
dualpal解题报告 —— icedream61 博客园(转载请注明出处)-------------------------------------------------------------- ...
随机推荐
- PHP:return与exit的区别
return 虽然返回数据,并且不再往下执行,但是它会返回执行上一步的操作,所以return的只是当前function而不会影响其他function的执行: exti 是完全将整个项 ...
- 一种轻量级的C4C业务数据同步到S4HANA的方式:Odata通知
SAP Cloud for Customer和SAP其他传统产品的同步,除了使用SAP Netweaver Process Integration和SAP HANA Cloud Integration ...
- POJ-3669 Meteor Shower---BFS+预处理
题目链接: https://vjudge.net/problem/POJ-3669 题目大意: 巨大流星雨即将袭来.每个流星会对击中的地方以及周围(上下左右四格)造成破坏.Bessie开始时位于(0, ...
- 【BZOJ4555】[TJOI2016&HEOI2016] 求和(NTT)
点此看题面 大致题意: 计算\(\sum_{i=0}^n\sum_{j=0}^iS(i,j)*2^j*(j!)\),其中\(S\)为第二类斯特林数. 推式子 首先让我们来推一波式子: 因为当\(i&l ...
- 【HHHOJ】ZJOI2019模拟赛(十二)03.03 解题报告
点此进入比赛 得分: \(0+77+20=97\) 排名: \(Rank\ 5\) \(Rating\):\(+46\) \(T1\):[HHHOJ178]依神(点此看题面) 这套题目中的唯一一道传统 ...
- 【LOJ6045】「雅礼集训 2017 Day8」价(网络流)
点此看题面 大致题意: 有\(n\)种药,每种药有一个权值,且使用了若干种药材.让你选择若干种药,使得药的数量与所使用的药材并集大小相等,求最小权值总和. 网络流 \(hl666\):这种数据范围,一 ...
- 贪心,二叉树搜索,ZOJ(2315)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1315 解题报告: #include <stdio.h> ...
- 转:SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
转:https://www.cnblogs.com/zyw-205520/p/4771253.html 1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于2003 年 ...
- 【转】Android UI开发第二十四篇——Action Bar
Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式.在大多数的情况下,当你需要突出展现用户行为或全局导航的activity中使用action bar,因为acti ...
- activity 工作流学习(一)
一.了解工作流 1.工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动进行,从而实 ...