POJ 1166 The Clocks (暴搜)
发现对这样的模拟题根本没啥思路了,本来准备用bfs的。可是结果超时了,这是參考别的人代码写的:
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <set>
#include <map>
#include <vector>
#include <math.h>
#include <string.h>
#include <queue>
#include <string>
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<b[1];++i)printf("1 ");
for(int i=0;i<b[2];++i)printf("2 ");
for(int i=0;i<b[3];++i)printf("3 ");
for(int i=0;i<b[4];++i)printf("4 ");
for(int i=0;i<b[5];++i)printf("5 ");
for(int i=0;i<b[6];++i)printf("6 ");
for(int i=0;i<b[7];++i)printf("7 ");
for(int i=0;i<b[8];++i)printf("8 ");
for(int i=0;i<b[9];++i)printf("9 ");
printf("\n");
}
}
}
由于是
1 ABDE 2 ABC 3 BCEF 4 ADG 5 BDEFH 6 CFI 7 DEGH 8 GHI 9 EFHI
那么对于第一个钟来说,可以让他状态变化的是操作1和2和4,别的钟类似作法。
从而枚举全部操作,并且这里每一个操作不会超过4次。由于四次后跟0次的效果是一样的。
POJ 1166 The Clocks (暴搜)的更多相关文章
- POJ 1166 The Clocks (爆搜 || 高斯消元)
题目链接 题意: 输入提供9个钟表的位置(钟表的位置只能是0点.3点.6点.9点,分别用0.1.2.3)表示.而题目又提供了9的步骤表示可以用来调正钟的位置,例如1 ABDE表示此步可以在第一.二.四 ...
- Poj 1166 The Clocks(bfs)
题目链接:http://poj.org/problem?id=1166 思路分析:题目要求求出一个最短的操作序列来使所有的clock为0,所以使用bfs: <1>被搜索结点的父子关系的组织 ...
- POJ 1167 The Buses 暴搜+剪枝
思路: 先把能选的路线都预处理出来 按照能停的车的多少排个序 (剪枝1) 搜搜搜 如果当前剩的车÷当前能停车的多少+deep>=ans剪掉 (剪枝2) //By SiriusRen #inclu ...
- POJ 1166 The Clocks
高斯消元法第四个冠军,这个称号是非常令人兴奋~~ 题目大意: 给出9个钟表的状态.给出九种操作,问最少要操作几次能把全部的钟表调回12点. 解题思路: 对于9个钟表分别列方程,然后高斯消元就可以.因为 ...
- POJ 1166 The Clocks 高斯消元 + exgcd(纯属瞎搞)
依据题意可构造出方程组.方程组的每一个方程格式均为:C1*x1 + C2*x2 + ...... + C9*x9 = sum + 4*ki; 高斯消元构造上三角矩阵,以最后一个一行为例: C*x9 = ...
- poj 1543 Perfect Cubes (暴搜)
Perfect Cubes Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 15302 Accepted: 7936 De ...
- POJ 1166 The Clocks [BFS] [位运算]
1.题意:有一组3*3的只有时针的挂钟阵列,每个时钟只有0,3,6,9三种状态:对时针阵列有9种操作,每种操作只对特点的几个时钟拨一次针,即将时针顺时针波动90度,现在试求从初试状态到阵列全部指向0的 ...
- poj 3080 Blue Jeans(水题 暴搜)
题目:http://poj.org/problem?id=3080 水题,暴搜 #include <iostream> #include<cstdio> #include< ...
- POJ 1945 暴搜+打表 (Or 暴搜+判重)
思路: 呃呃 暴搜+打表 暴搜的程序::稳稳的TLE+MLE (但是我们可以用来打表) 然后我们就可以打表过了 hiahiahia 可以证明最小的那个数不会超过200(怎么证明的我也不知道),然后就直 ...
随机推荐
- Python 36 GIL全局解释器锁 、vs自定义互斥锁
一:GIL全局解释器锁介绍 在CPython中,全局解释器锁(或GIL)是一个互斥锁, 它阻止多个本机线程同时执行Python字节码.译文:之所以需要这个锁, 主要是因为CPython的内存管理不是线 ...
- Python 31 TCP协议 、socket套接字
1.TCP协议 可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割. (1)三次握手建链接( ...
- Python 28 选课系统的讲解
1.首先我们要对每一个新的项目有一个明确的思路,脑子是好东西,但是好记性不如烂笔头,所以,要把能想到的都写下来 2.然后就是创建项目的整体结构框架,比如说:conf ( 配置文件 ) .core ( ...
- Rancher 2:添加 NFS client provisioner 动态提供 Kubernetes 后端存储卷
一.前提说明 1.说明: NFS client provisioner 利用 NFS Server 给 Kubernetes 作为持久存储的后端,并且动态提供PV. 默认 rancher 2 的存储类 ...
- Vue Element-ui table只展开一行
直接上代码了哈~ <template> <div class="app-content"> <div class="table_expand ...
- weui&flexible布局
1.weui 一开始以为只能用于小程序中,原来分两种:weui-wxss-master和weui-master.真的是强大的不得了,把设计好的样式和功能封装.然后分类,有明确的层级和逻辑,感动!!值得 ...
- [转载]cocos2d-触摸分发原理
本文由泰然翻译组组长 TXX_糖炒小虾 原创,版权所有,转载请注明出处并通知作者和泰然! 原作 http://www.ityran.com/archives/1326/comment-page-1 触 ...
- Xcode控制台输出中文
创建一个.m文件,然后将一下代码加入.m文件中即可实现控制台输出中文,具体代码如下: #ifndef Release @implementation NSSet(Log) - (NSString *) ...
- 【SQL】约束
1. 添加约束 1)使用ALTER TABLE语句 •添加或删除约束,不会修改其结构 •启用和禁用约束 •通过使用MODIFY子句添加NOTNULL约束 ALTER TABLE <table_n ...
- java JDBC连接 Sqlserver 非默认的实例名问题
一般我们在连接数据库的时候都是用的默认实例名,今天遇到了用非默认是实例名:连接代码如下(Java): <property name="url" value="jdb ...