博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 1166 The Clocks (暴搜)
阅读量:5885 次
发布时间:2019-06-19

本文共 1268 字,大约阅读时间需要 4 分钟。

发现对这样的模拟题根本没啥思路了,本来准备用bfs的。可是结果超时了,这是參考别的人代码写的:

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;int main(){ int a[10],b[10],c[10]; freopen("1166.in","r",stdin); for(int i = 1; i <= 9; i++) scanf("%d",&a[i]); for(b[9]=0;b[9]<=3;++b[9]) for(b[8]=0;b[8]<=3;++b[8]) for(b[7]=0;b[7]<=3;++b[7]) for(b[6]=0;b[6]<=3;++b[6]) for(b[5]=0;b[5]<=3;++b[5]) for(b[4]=0;b[4]<=3;++b[4]) for(b[3]=0;b[3]<=3;++b[3]) for(b[2]=0;b[2]<=3;++b[2]) for(b[1]=0;b[1]<=3;++b[1]) { c[1]=(a[1]+b[1]+b[2]+b[4])%4;//钟1的状态 c[2]=(a[2]+b[1]+b[2]+b[3]+b[5])%4;//钟2的状态 c[3]=(a[3]+b[2]+b[3]+b[6])%4;//钟3的状态 c[4]=(a[4]+b[1]+b[4]+b[5]+b[7])%4;//钟4的状态 c[5]=(a[5]+b[1]+b[3]+b[5]+b[7]+b[9])%4;//钟5的状态 c[6]=(a[6]+b[3]+b[5]+b[6]+b[9])%4;//钟6的状态 c[7]=(a[7]+b[4]+b[7]+b[8])%4;//钟7的状态 c[8]=(a[8]+b[5]+b[7]+b[8]+b[9])%4;//钟8的状态 c[9]=(a[9]+b[6]+b[8]+b[9])%4;//钟9的状态 if(c[1]+c[2]+c[3]+c[4]+c[5]+c[6]+c[7]+c[8]+c[9]==0)//所有就位 { for(int i=0;i
由于是

1         ABDE 2         ABC 3         BCEF 4         ADG 5         BDEFH 6         CFI 7         DEGH 8         GHI 9         EFHI
那么对于第一个钟来说,可以让他状态变化的是操作1和2和4,别的钟类似作法。

从而枚举全部操作,并且这里每一个操作不会超过4次。由于四次后跟0次的效果是一样的。

转载地址:http://qklix.baihongyu.com/

你可能感兴趣的文章
微软同步发行Windows 10和Windows 10 Mobile系统更新
查看>>
Zeppelin的入门使用系列之使用Zeppelin运行shell命令(二)
查看>>
form表单下的button按钮会自动提交表单的问题
查看>>
那些年追过的......写过的技术博客
查看>>
python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列
查看>>
CSS魔法堂:Transition就这么好玩
查看>>
解决win7远程桌面连接时发生身份验证错误的方法
查看>>
C/C++ 多线程机制
查看>>
Boost在vs2010下的配置
查看>>
一起谈.NET技术,ASP.NET伪静态的实现及伪静态的意义
查看>>
string::c_str()、string::c_data()及string与char *的正确转换
查看>>
11G数据的hive初测试
查看>>
如何使用Core Text计算一段文本绘制在屏幕上之后的高度
查看>>
==和equals区别
查看>>
2010技术应用计划
查看>>
XML 节点类型
查看>>
驯服 Tiger: 并发集合 超越 Map、Collection、List 和 Set
查看>>
Winform开发框架之权限管理系统改进的经验总结(3)-系统登录黑白名单的实现...
查看>>
LeetCode – LRU Cache (Java)
查看>>
JavaScript高级程序设计--对象,数组(栈方法,队列方法,重排序方法,迭代方法)...
查看>>