poj1166
爆搜就可以过,不过我用了迭代加深。
注意每个操作最多进行4次
#include <cstdio>
#include <cstdlib>
using namespace std; #define MAX_ANS 100 int clock[];
char move[][] = {"ABDE", "ABC", "BCEF", "ADG", "BDEFH", "CFI", "DEGH", "GHI", "EFHI"};
int ans[MAX_ANS], ans_num; void input()
{
for (int i = ; i < ; i++)
scanf("%d", &clock[i]);
} void output()
{
printf("%d", ans[]);
for (int i = ; i < ans_num; i++)
printf(" %d", ans[i]);
putchar('\n');
} bool ok()
{
for (int i = ; i < ; i++)
if (clock[i])
return false;
return true;
} void make(char* move, int value)
{
for (int i = ; move[i]; i++)
{
int index = move[i] - 'A';
clock[index] = (clock[index] + value + ) % ;
}
} void dfs(int step, int limit, int move_index)
{
if (step > limit)
return;
if (ok())
{
output();
exit();
}
for (int i = move_index; i < ; i++)
{
for (int j = ; j < ; j++)
{
make(move[i], );
ans[ans_num++] = i + ;
dfs(step + , limit, i + );
}
ans_num -= ;
make(move[i], -);
}
} int main()
{
input();
for (int i = ; i < ; i++)
{
ans_num = ;
dfs(, i, );
}
return ;
}
poj1166的更多相关文章
- poj1166学习中
#include <iostream> #include <string.h> #include <cstdio> #include <cmath> u ...
- poj1166时钟翻转
#include<stdio.h> #define TABLE_LEN 5 const int table[10][TABLE_LEN]= {{},{1,2,4,5},{1,2,3},{2 ...
- POJ1166 The Clocks (爆搜 || 高斯消元)
总时间限制: 1000ms,内存限制: 65536kB 描述 |-------| |-------| |-------| | | | | | | | |---O | |---O | | O | | | ...
- poj分类 很好很有层次感。
初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. ( ...
- 【转】POJ题目分类推荐 (很好很有层次感)
OJ上的一些水题(可用来练手和增加自信) (poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094)初期: 一. ...
- 【转】ACM训练计划
[转] POJ推荐50题以及ACM训练方案 -- : 转载自 wade_wang 最终编辑 000lzl POJ 推荐50题 第一类 动态规划(至少6题, 和 必做) 和 (可贪心) (稍难) 第二类 ...
- POJ 题目分类(转载)
Log 2016-3-21 网上找的POJ分类,来源已经不清楚了.百度能百度到一大把.贴一份在博客上,鞭策自己刷题,不能偷懒!! 初期: 一.基本算法: (1)枚举. (poj1753,poj2965 ...
- (转)POJ题目分类
初期:一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. ...
- acm常见算法及例题
转自:http://blog.csdn.net/hengjie2009/article/details/7540135 acm常见算法及例题 初期:一.基本算法: (1)枚举. (poj17 ...
随机推荐
- hdu1358 KMP
求循环节. #include<stdio.h> #include<string.h> #define maxn 1000010 int next[maxn]; char s[m ...
- 消灭textarea中的神秘空格
之前在做页面的时候经常发现写的textarea中会有一些默认的空格出现,鼠标可以在里面任意点击.这个问题折腾了好久,后来发现,原来是<textarea></textarea>标 ...
- 列表 list
例子: #!/usr/bin/python li = list([11,22,33,66,99,77]) print(li) li.extend((44,55,)) print(li) ret = l ...
- [NOIP2011] 提高组 洛谷P1314 聪明的质监员
题目描述 小T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 n 个矿石,从 1到n 逐一编号,每个矿石都有自己的重量 wi 以及价值vi .检验矿产的流程是: 1 .给定m 个区间[L ...
- TCP/IP Four Layer Protocol Format Learning
相关学习资料 tcp-ip详解卷1:协议.pdf 目录 . 引言 . 应用层 . 传输层 . 网络层 0. 引言 协议中的网络字节序问题 在学习协议格式之前,有一点必须明白,否则我们在观察抓包数据的时 ...
- Erlang练习题----shopping
直接就上代码了: -module(shop). -export([cost/1,total/1]). cost(orange) -> 5; cost(newspaper) -> 8; co ...
- JDBC中prepareStatement 和Statement 的区别
package util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedSta ...
- php编程常用经验
1.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的"函数&quo ...
- MyEclipse------快速读取特定目录下的文件的内容(字节输入流)
other.jsp <%@ page language="java" import="java.util.*" pageEncoding="UT ...
- memcached 缓存服务器
Memcached 缓存服务器 Memcached 是高性能的分布式内存缓存服务器. 一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态web应用的速度.提高可扩展性. 主要特点 ...