POJ 1166&IOI 1994 The blocks 暴力枚举 解题报告
来源:互联网 发布:优酷怎么老是网络连接 编辑:程序博客网 时间:2024/06/08 13:27
题目大意:
给定3*3的矩阵时钟的初始位置(0,1,2,3),和9种移动的方式,每次移动可以使时钟值+1,求输出当所有时钟都为0的时候的字典序移动方式。
题目分析:
这道题拿到题目有一些迷惑,觉得要用搜索,但其实不需要,对于每一个移动的操作,我们不会使用超过三次,如果4次以上都等价于1-3次,所以枚举的量就降下来了,并且字典序输出的话,用枚举的话,找到最小值就break,正好是满足字典序的。
代码如下(附带注释):
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#define N 10 using namespace std;int a[N],tem[N],t[N];//tem[i]表示第i个钟表经过操作后的位置,a[i]是初始位置,t[i]是第i个操作的操作次数 int main(){for(int i=1;i<=9;i++)scanf("%d",&a[i]);for(t[1]=0;t[1]<=3;t[1]++)for(t[2]=0;t[2]<=3;t[2]++)for(t[3]=0;t[3]<=3;t[3]++)for(t[4]=0;t[4]<=3;t[4]++)for(t[5]=0;t[5]<=3;t[5]++)for(t[6]=0;t[6]<=3;t[6]++)for(t[7]=0;t[7]<=3;t[7]++)for(t[8]=0;t[8]<=3;t[8]++)for(t[9]=0;t[9]<=3;t[9]++){tem[1]=(a[1]+t[1]+t[2]+t[4])%4;tem[2]=(a[2]+t[1]+t[2]+t[3]+t[5])%4;tem[3]=(a[3]+t[2]+t[3]+t[6])%4;tem[4]=(a[4]+t[1]+t[4]+t[5]+t[7])%4;tem[5]=(a[5]+t[1]+t[3]+t[5]+t[7]+t[9])%4;tem[6]=(a[6]+t[3]+t[5]+t[6]+t[9])%4;tem[7]=(a[7]+t[4]+t[7]+t[8])%4;tem[8]=(a[8]+t[5]+t[7]+t[8]+t[9])%4;tem[9]=(a[9]+t[6]+t[8]+t[9])%4;if(tem[1]+tem[2]+tem[3]+tem[4]+tem[5]+tem[6]+tem[7]+tem[8]+tem[9]==0){for(int i=0;i<t[1];i++)printf("1 ");for(int i=0;i<t[2];i++)printf("2 ");for(int i=0;i<t[3];i++)printf("3 ");for(int i=0;i<t[4];i++)printf("4 ");for(int i=0;i<t[5];i++)printf("5 ");for(int i=0;i<t[6];i++)printf("6 ");for(int i=0;i<t[7];i++)printf("7 ");for(int i=0;i<t[8];i++)printf("8 ");for(int i=0;i<t[9];i++)printf("9 ");break;}} //while(1);return 0;}
0 0
- POJ 1166&IOI 1994 The blocks 暴力枚举 解题报告
- poj 1166 The Clocks 暴力枚举
- UVa 101 - The Blocks Problem解题报告
- 【Jason's_ACM_解题报告】The Blocks Problem
- uva 101 The Blocks Problem 解题报告
- 【ACM菜逼解题报告】The Blocks Problem
- [搜索顺序] POJ 1165 [IOI 1994] The Primes
- POJ 1166解题报告
- POJ 1166 The Clocks 解题报告(高斯消元法 & 逆矩阵)
- POJ 1163 The Triangle 解题报告
- POJ-1050-To the Max 解题报告
- POJ 1218 THE DRUNK JAILER解题报告
- POJ 1611 The Suspects 解题报告
- POJ 1163 The Triangle 解题报告
- POJ-1426 Find The Multiple 解题报告
- POJ-1274-The Perfect Stall 解题报告
- poj 1163 The Triangle之解题报告
- POJ - 3267 The Cow Lexicon解题报告
- 获致幸福的不二法门是珍视你所拥有的
- Servlet------RequestDispatcher请求转发
- CentOS配置smaba与Windows共享文件
- Python学习之变量类型
- 华为机试---简单的加减运算
- POJ 1166&IOI 1994 The blocks 暴力枚举 解题报告
- 三极管的电平转换及驱动电路分析
- 使用Spring、MongoDB和AngularJS开发单页面应用(REST风格)
- Esper学习之十四:Pattern(一)
- order by charindex
- VS2010下安装boost库
- Java输入输出流
- OVS 学习(二)
- 为原生表单控件穿上美丽的外衣