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-day01 pip 在线安装,标识符规则,注释,变量名,类型
1.python第三方库安装: 在线安装:pip install 库名 pip install 库名 -i 国内源网站地址 离线安装:xxx.tar.gz/rar/zip 解压安装 2.标识符规则: ...
- Angular 显示英雄列表
在本页面,你将扩展<英雄指南>应用,让它显示一个英雄列表, 并允许用户选择一个英雄,查看该英雄的详细信息. 创建模拟(mock)英雄数据 你需要一些英雄数据以供显示. 最终,你会从远端的数 ...
- CentOS7 搭建Kafka(三)工具篇
CentOS7 搭建Kafka(三)工具篇 做为一名懒人,自然不喜欢敲那些命令,一个是容易出错,另外一个是懒得记,能有个工具就最好了,一查还挺多,我们用个最主流的Kafka Manager Kafka ...
- SnackDown Online Pre-elimination round A
1. 应该n是偶数,就行吧.应该判断1个人,只能出现一次吧. #include<bits/stdc++.h> #define pb push_back typedef long long ...
- HBase的集群搭建(1、3、5节点都适用)
见 5 hbase-shell + hbase的java api
- css3动画之1--animation小例子
1.首先看效果 2.代码及分析 <style type="text/css"> #div1 { margin:100px; position: absolute; te ...
- Unity引擎GUI之Image
UGUI的Image等价于NGUI的Sprite组件,用于显示图片. 一.Image组件: Source Image(图像源):纹理格式为Sprite(2D and UI)的图片资源(导入图片后选择T ...
- iis 7.5 ftp site用户名不能是 'ftp'?
在windows server 2008 r2上配置一个iis ftp site,创建了一个名为 ftp 的账号,并添加到允许规则中,可总是出现: Connected to ***.***.***.* ...
- C#程序集版本控制文件属性祥解
using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices ...
- OpenCV实现灰度直方图和直方图拉伸
原文链接:http://blog.csdn.net/xiaowei_cqu/article/details/7600666 如有疑问或者版权问题,请移步原作者或者告知本人. 灰度直方图是数字图像中最简 ...