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==里面便无法调用这两个函数。如有人懂,望不吝赐教~

------------------------------------------------------------------------------------------------------------------------------------------------

【代码】

 1 /*
 2 ID: icedrea1
 3 PROB: combo
 4 LANG: C++
 5 */
 6
 7 #include <iostream>
 8 #include <fstream>
 9 using namespace std;
10
11 int N;
12
13 int add(int x,int y) { return (x+y-1+N)%N+1; }
14 bool inRange(int x,int y) { return x==y || add(x,1)==y || add(x,2)==y || add(x,-1)==y || add(x,-2)==y; }
15
16 struct Key
17 {
18     int x,y,z;
19     friend bool operator==(Key a,Key b) { return inRange(a.x,b.x) && inRange(a.y,b.y) && inRange(a.z,b.z); }
20 };
21
22 Key A,B;
23
24 int main()
25 {
26     ifstream in("combo.in");
27     ofstream out("combo.out");
28
29     in>>N;
30     in>>A.x>>A.y>>A.z;
31     in>>B.x>>B.y>>B.z;
32
33     int s=0;
34     Key t;
35     for(t.x=1;t.x<=N;++t.x)
36         for(t.y=1;t.y<=N;++t.y)
37             for(t.z=1;t.z<=N;++t.z) s+=(t==A||t==B);
38     out<<s<<endl;
39
40     in.close();
41     out.close();
42     return 0;
43 }

转载于:https://www.cnblogs.com/icedream61/p/4323274.html

USACO Section1.3 Combination Lock 解题报告相关推荐

  1. USACO Section1.5 Superprime Rib 解题报告

    sprime解题报告 -- icedream61 博客园(转载请注明出处) -------------------------------------------------------------- ...

  2. USACO Section2.1 Hamming Codes 解题报告 【icedream61】

    hamming解题报告 ---------------------------------------------------------------------------------------- ...

  3. USACO Section2.2 Preface Numbering 解题报告 【icedream61】

    preface解题报告 ---------------------------------------------------------------------------------------- ...

  4. USACO 3.3.2 Shopping Offers解题报告

    写在前面:因为之前没写的C++的USACO Training的解题报告太多--所以就不写了,要是想要代码可以联系我:xiedong_1993@foxmail.com 这题就是传说中的五维背包,其实写起 ...

  5. USACO Training Section 1.3 Calf Flac 解题报告AC代码

    解题报告: 主要方法是生长法,考虑每一位的左右各有多长的回文串,输出最长的那个,比较好想--不过要注意区分字串的奇偶. 其他实现细节看代码里的注释吧-- AC代码: /* ID: yuanmz91 P ...

  6. LeetCode 解题报告索引

    最近在准备找工作的算法题,刷刷LeetCode,以下是我的解题报告索引,每一题几乎都有详细的说明,供各位码农参考.根据我自己做的进度持续更新中......                        ...

  7. 10.30 NFLS-NOIP模拟赛 解题报告

    总结:今天去了NOIP模拟赛,其实是几道USACO的经典的题目,第一题和最后一题都有思路,第二题是我一开始写了个spfa,写了一半中途发现应该是矩阵乘法,然后没做完,然后就没有然后了!第二题的暴力都没 ...

  8. LeetCode解题报告汇总

    LeetCode解题报告: [LeetCode]1.Two Sum - Yoona - 博客频道 - CSDN.NET [LeetCode]2.Add Two Numbers - Yoona - 博客 ...

  9. 解题报告 (十四) 数位DP

    文章目录 数位DP 解题报告 HDU 4722 Good Numbers HDU 2089 不要62 HDU 3555 Bomb HDU 3652 B-number PKU 3252 Round Nu ...

最新文章

  1. 关于模态对话框和非模态对话框的创建、显示,以及和父对话框的传值
  2. C++_reference
  3. ceph的数据存储之路(6) -----pg的创建
  4. 十大python开发软件-5款开发安全、高质量代码的优秀Python工具
  5. 【PAT乙级】1014 福尔摩斯的约会 (20 分)【模拟 / 很坑】
  6. php mysql 插入多条数据_雷林鹏分享:PHP MySQL 插入多条数据
  7. qt高亮快捷键_QtCreator中常用快捷键总结
  8. MFC-CString与int互相转化
  9. 从拉格朗日乘数法到KKT条件
  10. windows css,CSS (Windows) | Microsoft Docs
  11. 取消语法检测_中考取消了考纲,学生要如何得高分
  12. ubuntu16.04搞出百度的方法
  13. pytorch torch.nn.Embedding
  14. C++三大特性之多态
  15. C++中regex库静态正则表达式库的好处及事例
  16. 模型☀️Catia模型到Unity的转化过程
  17. 推荐一些2021年整理的跨平台uniapp的作品案例
  18. 风险资产的最优组合公式证明
  19. ai 自动外呼 微信加好友_制作一个可爱的Pwnagotchi AI好友来自动审核Wi-Fi网络
  20. [转载]系统提示:“您可能是微软盗版的受害者”的解决方法

热门文章

  1. 新鲜出炉!2019年高考语文作文试题来了
  2. windows下python3关于机器学习的环境配置,Anaconda的安装和使用方法以及安装后无法打开的解决方法
  3. matlab有限差分一维导热,一维导热方程-有限差分法-matlab实现11.docx
  4. java 接口中 常量_讨论:Java 接口当中的 “常量接口”
  5. java恶作剧小程序_一个Java恶搞小程序
  6. 029_jdbc-mysql二进制数据
  7. 018_Session
  8. 005_html文档类型
  9. jsp文件通常用common_JSP使用commons-fileupload实现文件上传实例
  10. 负载均衡下ajax第二次请求,会话清除第二个AJAX电话