https://www.luogu.org/problem/show?pid=1213

题目描述

考虑将如此安排在一个 3 x 3 行列中的九个时钟:

目标要找一个最小的移动顺序将所有的指针指向12点。下面原表格列出了9种不同的旋转指针的方法,每一种方法都叫一次移动。选择1到9号移动方法,将会使在表格中对应的时钟的指针顺时针旋转90度。

移动方法 受影响的时钟

1 ABDE

2 ABC

3 BCEF

4 ADG

5 BDEFH

6 CFI

7 DEGH

8 GHI

9 EFHI

Example

[但这可能不是正确的方法,请看下面]

输入输出格式

输入格式:

第1-3行: 三个空格分开的数字,每个数字表示一个时钟的初始时间,3,6,9,12。数字的含意和上面第一个例子一样。

输出格式:

单独的一行包括一个用空格分开的将所有指针指向12:00的最短移动顺序的列表。

如果有多种方案,输出那种使其连接起来数字最小的方案。(举例来说5 2 4 6 < 9 3 1 1)。

输入输出样例

输入样例#1:

9 9 12
6 6 6
6 3 6

输出样例#1:

4 5 8 9

说明

题目翻译来自NOCOW。

USACO Training Section 1.4

搜索每次移动方案的使用次数、每次用原始时钟判断一次。、

每次使用移动方法多余3时就转一圈没意义了。

 1 #include <algorithm>
 2 #include <cstring>
 3 #include <cstdio>
 4
 5 int op[9][9]={{1,1,0,1,1,0,0,0,0},
 6               {1,1,1,0,0,0,0,0,0},
 7               {0,1,1,0,1,1,0,0,0},
 8               {1,0,0,1,0,0,1,0,0},
 9               {0,1,0,1,1,1,0,1,0},
10               {0,0,1,0,0,1,0,0,1},
11               {0,0,0,1,1,0,1,1,0},
12               {0,0,0,0,0,0,1,1,1},
13               {0,0,0,0,1,1,0,1,1}};
14 int tmp[10],tim[10],cnt[10];
15
16 inline void read(int &x)
17 {
18     x=0; register char ch=getchar();
19     for(;ch>'9'||ch<'0';) ch=getchar();
20     for(;ch>='0'&&ch<='9';ch=getchar()) x=x*10+ch-'0';
21 }
22
23 bool judge(int *a)
24 {
25     for(int i=0; i<9; ++i)
26         if(a[i]) return 0;
27     return true;
28 }
29
30 void DFS(int num)
31 {
32     memcpy(&tmp,&tim,sizeof(tim));
33     for(int i=0; i<9; ++i)
34         for(int j=0; j<9; ++j)
35             tmp[i]=(tmp[i]+op[j][i]*cnt[j])%4;
36     if(judge(tmp))
37     {
38         for(int i=0; i<9; ++i)
39             for(int j=0; j<cnt[i]; ++j)
40                 printf("%d ",i+1);
41         std::exit(0) ;
42     }
43     if(num==9) return ;
44     for(int i=0; i<4; ++i)
45         cnt[num]=i,DFS(num+1);
46 }
47
48 int Aptal()
49 {
50     for(int i=0; i<9; ++i)
51         read(tim[i]),tim[i]/=3,tim[i]%=4;
52     DFS(0);
53     return 0;
54 }
55
56 int Hope=Aptal();
57 int main(){;}

转载于:https://www.cnblogs.com/Shy-key/p/7498907.html

Vijos——T 1016 北京2008的挂钟 || 洛谷—— P1213 时钟相关推荐

  1. 四川2008省选·洛谷·奖励关

    初见安~这里是传送门:洛谷P2473 题目描述 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出 ...

  2. 北京2008中国代表团名单

    北京2008中国代表团名单 团部领导 团 长 刘 鹏 副团长 于再清 段世杰 肖 天 崔大林 蔡振华 秘书长 崔大林(兼) 副秘书长 孙康林 孙永言 于 晨 殷宝林 张洪涛 杨廼军 宋 晶 倪会忠 宋 ...

  3. 北京2008年第29届奥运会吉祥物五个福娃(组图)

    http://news.163.com 2005-11-11 20:58:16 来源: 北京奥组委网站 网友评论 50 条 福娃是北京2008年第29届奥运会吉祥物,其色彩与灵感来源于奥林匹克五环.来 ...

  4. 北京2008年第29届奥运会吉祥物――福娃

    北京2008年第29届奥运会吉祥物――福娃 人民网体育在线北京11月11日讯 据北京奥组委官方网站报道:福娃是北京2008年第29届奥运会吉祥物,其色彩与灵感来源于奥林匹克五环.来源于中国辽阔的山川大 ...

  5. 北京2008福娃2图标

    北京2008福娃2图标由 beijing2008提供.这组图标包含贝贝.晶晶.欢欢.迎迎.妮妮福娃在内的各种体育项目,图片为.png格式. 下载: 北京2008福娃2图标.rar 随机文章: 北京20 ...

  6. 距离北京奥运还有359天,发布WPF版本的北京2008标志(上)

    原文:距离北京奥运还有359天,发布WPF版本的北京2008标志(上) 效果图:   XAML代码: <Canvas Width="343.581055" Height=&q ...

  7. 距离北京奥运还有359天,发布WPF版本的北京2008标志(下)

    原文:距离北京奥运还有359天,发布WPF版本的北京2008标志(下) 图片显示效果: XAML代码: <Viewbox Width="463.548828" Height= ...

  8. 北京2008奥运会门票到手

    今天去中国银行拿到了北京2008奥运会门票,是2008年8月9日在北京奥林匹克篮球馆举行的一场女子篮球小组赛的门票: 同时拿到的还有一份标注各大场馆位置的北京地图,以及一本<奥运会观众指南> ...

  9. 计算机软考2008上半年,北京2008下半年计算机软考各科目考试安排

    根据人力资源和社会保障部.工业和信息化部全国计算机专业技术资格考试办公室<关于推迟的2008年下半年计算机技术与软件专业技术资格考试有关问题的通知>(软考办[2008]6号)文件精神,北京 ...

最新文章

  1. 多目录cmake工程 CmakeLists.txt编写
  2. UNIX重定向--dup(2)函数
  3. CentOS 7核心安装及基本配置
  4. Python多任务(7.多进程的应用:文件的拷贝器例子)
  5. 数据连接java面试题
  6. 去哪儿-04-iconsDev
  7. php装饰器模式 简书,装饰器模式/包装器模式
  8. VS2012一打开就停止工作的解决方法
  9. 中文对比英文自然语言处理NLP的区别综述
  10. Powershell中禁止执行脚本解决办法
  11. 完全卸载NI系列软件的方法
  12. 【变废为宝】电信IPTV中兴zxv10 b860Av1.1
  13. DDOS学习+网络钓鱼+验证码攻击
  14. 阿里云ECS主机绑定域名
  15. Java - 为什么String在Java中是不可变的?
  16. 基于Spring Boot的个人博客系统的设计与实现 毕业设计-附源码271611
  17. 拿到蚂蚁金服 offer, 我不去了
  18. AP 计算机 从D到A,8节课完成飞跃的进步----麻省理工老师的学生如何说
  19. java byreference_深入理解Java中的引用(一)——Reference
  20. 蓝桥 百亿富翁 stack<Type> 栈

热门文章

  1. MediaInfo源代码分析 1:整体结构
  2. Linux 使用 shell 脚本处理字符串
  3. Linux查看安装了哪些软件
  4. grid php 用法,grid布局主要用法
  5. 【开学】下半年简单规划
  6. 【初赛】各种排序算法总结
  7. php mysql网站统计源码_php统计器代码(在线人数据统计程序源码)
  8. python生成倒计时图片_python pygame--倒计时
  9. fastjson将json字符串转化为java对象
  10. 5.顺序表和链表的最值,逆置和归并有序表