Move Affected clocks 1 ABDE 2 ABC 3 BCEF 4 ADG 5 BDEFH 6 CFI 7 DEGH 8 GHI 9 EFHI (Figure 2)
3 3 0 2 2 2 2 1 2
4 5 8 9
翻译:
输入:从标准输入设备读入9个整数,表示各时钟指针的起始位置。0=12点、1=3点、2=6点、3=9点。
输出:输出一个移动序列,使得9个时钟的指针都指向12点。按照移动的序号由小到大,输出结果.
#include<iostream> #include<string> using namespace std ; int a[10] ;//接收输入数据 int b[10] ;//接收选择方法的次数 int c[10] ;//存储结果 int tempsum ,sum=28; string s ; int main() { int i ; for(i=1;i<10;i++) cin>>a[i] ; for(b[1]=0;b[1]<=3;b[1]++) for(b[2]=0;b[2]<=3;b[2]++) for(b[3]=0;b[3]<=3;b[3]++) for(b[4]=0;b[4]<=3;b[4]++) for(b[5]=0;b[5]<=3;b[5]++) for(b[6]=0;b[6]<=3;b[6]++) for(b[7]=0;b[7]<=3;b[7]++) for(b[8]=0;b[8]<=3;b[8]++) for(b[9]=0;b[9]<=3;b[9]++) { c[1] = (b[1] + b[2] + b[4] + a[1])%4 ; c[2] = (b[1] + b[2] + b[3] + b[5]+a[2])%4 ; c[3] = (b[2] + b[3] + b[6]+a[3])%4 ; c[4] = (b[1] + b[4] + b[5] + b[7]+a[4])%4 ; c[5] = (b[1] + b[3] + b[5] + b[7] + b[9]+a[5])%4 ; c[6] = (b[3] + b[5] + b[6] + b[9]+a[6])%4 ; c[7] = (b[4] + b[7] + b[8]+a[7])%4 ; c[8] = (b[5] + b[7] + b[8] + b[9]+a[8])%4 ; c[9] = (b[6] + b[8] + b[9]+a[9])%4 ; if((c[1]+c[2]+c[3]+c[4]+c[5]+c[6]+c[7]+c[8]+c[9])==0) { tempsum = b[1]+b[2]+b[3]+b[4]+b[5]+b[6]+b[7]+b[8]+b[9] ; if(tempsum<sum) { sum = tempsum ; s = "" ; // cout<<sum<<endl ; for(i=1;i<=b[1];i++) s = s + "1 " ; for(i=1;i<=b[2];i++) s = s + "2 " ; for(i=1;i<=b[3];i++) s = s + "3 " ; for(i=1;i<=b[4];i++) s = s + "4 " ; for(i=1;i<=b[5];i++) s = s + "5 " ; for(i=1;i<=b[6];i++) s = s + "6 " ; for(i=1;i<=b[7];i++) s = s + "7 " ; for(i=1;i<=b[8];i++) s = s + "8 " ; for(i=1;i<=b[9];i++) s = s + "9 " ; } } } cout<<s<<endl ; return 0 ; }
相关推荐
该题记录了本人研究该题的记录,有些是心得,希望能给大家帮助。
* 枚举:枚举是指通过遍历所有可能的情况来解决问题的方法,如 poj1753、poj2965。 * 贪心:贪心算法是指通过选择当前最优的解来解决问题的方法,如 poj1328、poj2109、poj2586。 * 递归和分治法:递归和分治法是指...
* 枚举法:通过枚举所有可能的解来解决问题,例如 poj1753、poj2965。 * 贪心算法:通过选择当前最优的解决方案来解决问题,例如 poj1328、poj2109、poj2586。 * 递归和分治法:通过将问题拆分成小问题来解决,...
- 枚举:通过列举所有可能的情况来解决问题,例如`poj1753, poj2965`。 - 贪心算法:在每一步选择中都采取在当前状态下最好或最优的选择,如`poj1328, poj2109, poj2586`。 - 分治法:将一个复杂的问题分成两个或...
例如,题目poj1753和poj2965可以采用枚举策略解决,但这种方法效率较低,适用于小规模数据或当其他算法难以实现时。 #### 贪心 贪心算法是一种局部最优解策略,每次选择当前状态下看似最优的选择,以期望最终达到...
《翻转游戏——POJ1753解题分析与实现》 在计算机科学与编程领域,解决问题的能力是至关重要的。北京大学在线编程平台POJ(Problemset Online Judge)中的题目POJ1753——“Flip Game”,就是一个很好的锻炼逻辑...
4. "第三季枚举":枚举算法通常用于遍历所有可能的情况来求解问题,这在解决一些组合优化或图论问题时非常常见。 5. "第二季循环":循环是程序控制流的基础,这部分可能包括for、while等循环结构的运用,以及复杂的...
- **枚举**:通过尝试所有可能的情况来解决问题,例如poj1753和poj2965。 - **贪心**:每次选择当前最优解,如poj1328、poj2109和poj2586。 - **递归与分治**:将大问题分解为小问题解决,如快速排序、归并排序等...
如poj1753、poj2965用于枚举训练,poj1328、poj2109、poj2586是贪心策略的实例,poj2506和poj3295涉及分治法,poj1068、poj2632等则用于模拟训练。 2. **图算法**:包括图的深度优先遍历、广度优先遍历、最短路径...
这可能需要用到贪心算法(Greedy Algorithm)或者深度优先生成树(Depth First Search Tree)来枚举所有可能的操作序列,找到满足条件的最少操作数。 以上五个题目涵盖了图论、动态规划、回溯法、数论和贪心算法等...
史上最全poj题目分类 本文将对史上最全poj题目分类进行详细的知识点介绍,涵盖了基本算法、基本数据结构、高级数据结构、数学等方面的知识点。 基本算法 贪心算法是一种常用的算法思想,贪心算法的核心思想是每次...
POJ1054讨厌的青蛙,利用枚举算法解题,值得一做。
《POJ编程指导》是一本介绍如何使用POJ(北大在线评判系统)进行ACM算法学习和实践的书籍。ACM竞赛是国际大学生程序设计竞赛(International Collegiate Programming Contest,简称ICPC)的前身,它为计算机编程爱好...
在初期阶段,选手需要掌握基本算法,如枚举、贪心、递归和分治法等。然后,需要学习图算法,如深度优先遍历、广度优先遍历、最短路径算法和最小生成树算法等。最后,需要学习数据结构,如串、排序、堆和哈希表等。 ...
### POJ 分类题目知识点详解 #### 一、基本算法 **1. 枚举** - **定义**:枚举是一种通过尝试所有可能情况来解决问题的方法。 - **示例题目**: - poj1753 - poj2965 - **应用场景**:适用于问题规模较小或解决...
poj 百练 题目分类是指在 POJ(Peking University Online Judge)平台上面的编程题目的分类,这些题目涵盖了多种编程领域,包括枚举、递归、模拟、数制转换、高精度计算、简单计算、字符串处理和日期时间处理等。...
在提供的代码文件中,"POJ2965-The Pilots Brothers' refrigerator(DFS+enum).cpp" 应该是使用DFS和枚举实现的解决方案,而 "POJ2965-The Pilots Brothers' refrigerator(DFS+Bit).cpp" 是使用DFS和位运算的版本。...
在本篇文章中,我们将深入探讨POJ平台上的一系列经典图论问题,并根据提供的部分内容,总结出每个题目背后所涉及的核心算法和技术点。这些题目不仅考验了参赛者的逻辑思维能力,同时也对数据结构和算法的掌握提出了...
### PKU POJ 1162 Building with Blocks 解题报告 #### 题目概述 本题名为“Building with Blocks”,属于经典的积木搭建问题。题目要求利用一定数量的基本单位积木,搭建出特定的三维形状。积木的种类不超过12种,...