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 解题报告的更多相关文章

  1. USACO Section1.5 Prime Palindromes 解题报告

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

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

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

  3. USACO Section1.5 Number Triangles 解题报告

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

  4. USACO Section1.4 Arithmetic Progressions 解题报告

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

  5. USACO Section1.3 Prime Cryptarithm 解题报告

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

  6. USACO Section1.3 Barn Repair 解题报告

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

  7. USACO Section1.3 Mixing Milk 解题报告

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

  8. USACO Section1.2 Palindromic Squares 解题报告

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

  9. USACO Section1.2 Dual Palindromes 解题报告

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

随机推荐

  1. 安装国际版firefox(火狐浏览器)并设置语言为中文

    访问https://www.mozilla.org/zh-CN/firefox/new/?scene=2下载.安装: 访问https://addons.mozilla.org/zh-CN/firefo ...

  2. IOS 读取xib里的子控件

    interface ViewController () /**获取.plist数据*/ @property (nonatomic,strong) NSArray *aps; @end @impleme ...

  3. POJ-2481 Cows---树状数组的运用

    题目链接: https://vjudge.net/problem/POJ-2481 题目大意: if Si <= Sj and Ej <= Ei and Ei - Si > Ej - ...

  4. 【CCPC-Wannafly Winter Camp Day4 (Div1) I】咆咆咆哮(三分+贪心)

    点此看题面 大致题意: 有\(n\)张卡牌,每张卡牌有两种用法:使场上增加一个伤害为\(a_i\)的生物,或使场上所有生物伤害增加\(b_i\).求最大总伤害. 三分 我们可以三分使用\(a_i\)的 ...

  5. 两次DFS,POJ(1481)

    题目链接:http://poj.org/problem?id=1481 两次DFS,这里的思路是,没找到*,就说明,有一个骰子,因此,每搜索到一个*,深搜4个方向,并且变为'.',要是搜到'X',就是 ...

  6. 判断团队适不适合使用node

    1.要不要用 2.历史包袱 3.跟进升级 看完scott创业公司使用node,对于一个团队要不要使用node,第一个就是如果承接的项目有很多历史迭代,线上也在稳定的抛,不要轻易的替换,比如很多老代码, ...

  7. SVN知识集合

    1. 如果某个项目之前保存了A仓库的信息,无法切换到B仓库(通过AnkhSVN或者VisualSVN),可以先在本地去除版本控制(用TortoiseSVN),然后导出B仓库信息(用TortoiseSV ...

  8. grep的使用

    http://www.eguidedog.net/linux-tutorial/05-grep.php grep apple fruitlist.txt:在fruitlist.txt中查找apple字 ...

  9. @NotEmpty@NotNull和@NotBlank的区别

    这几个可以为对象,不只是字符串 1.@NotNull 不能为null,但可以为empty (""," "," ") 2.@NotEmpty ...

  10. IE问题——列表项图像

    等我们实现列表时,经常会遇到一种情况:需要为列表的每一项的前面添加一个列表项图像. 我们在查阅W3C时会发现,在CSS中已经为我们提供了实现方法——“list-style-type”,我们来看看它的实 ...