USACO-Section1.3 Combination Lock
来源:互联网 发布:linux驱动模块编译 编辑:程序博客网 时间:2024/06/05 06:45
Combination Lock
2017.06.01
题解
搜索,按条件剪枝即可,注意搜索最后要再次检验数字是否符合同一个密码的条件。
代码
/*ID: xhzdcyy1PROB: comboLANG: C++ */#include <iostream>#include <fstream>#include <string>#include <algorithm>#define cin fin#define cout fout using namespace std;ofstream fout ("combo.out");ifstream fin ("combo.in");int N;int res=0;int a[3],b[3],c[3];int abs(int a,int b){ return a-b>0?a-b:b-a;}bool check(int t[],int i){ int left=t[i]-2; if(left<=0) left+=N; int right=t[i]+2; if(right>N) right-=N; if(left<right){ if(c[i]<left||c[i]>right) return false; } else{ if(c[i]>right&&c[i]<left) return false; } return true;}void func(int n){ if(n==3){ if(check(a,0)&&check(a,1)&&check(a,2)) ++res; else if(check(b,0)&&check(b,1)&&check(b,2)) ++res; return; } for(int i=0;i<N;i++){ c[n]=i; if(check(a,n)||check(b,n)) func(n+1); }}int main(){ int tmp; cin>>N; for(int i=0;i<3;i++){ cin>>a[i]; } for(int i=0;i<3;i++){ cin>>b[i]; } func(0); cout<<res<<endl; return 0; }
阅读全文
0 0
- USACO Section1.3 Combination Lock
- USACO-Section1.3 Combination Lock
- USACO-Section1.3 Combination Lock
- USACO-Section1.3 Combination Lock[其他]
- USACO-Section1.3 Combination Lock【暴力枚举】
- USACO-Section1.3 Combination Lock[其他]
- USACO-Section1.3 Combination Lock [其他]
- USACO-section1.3 Combination Lock[枚举]
- USACO-Section1.2 Combination Lock
- usaco.section1.3.Combination Lock(暴力模拟)
- USACO 1.3 Combination Lock
- USACO Combination Lock
- USACO Combination Lock
- USACO 1.3 Combination Lock
- USACO 1.3 Combination Lock
- USACO-1.3:Combination Lock
- USACO 1.3-Combination Lock
- USACO Combination Lock
- Kotlin练习-快速排序
- 求解同余方程组(难度:2颗星)
- PAT 1011::World Cup Betting (20)
- C++常用函数
- Java基础教程1-Java特点和手把手教你安装JDK
- USACO-Section1.3 Combination Lock
- Python数据分析-小技巧[1]
- 我的vim配置文件
- webmagic 0.70学习
- Linux系统下解压缩*.tar.xz方法
- TCP的超时与重传
- Android多线程和异步消息的简单应用
- lua语言中的函数概念
- c语言数据结构