回炉-拨钟问题

题目:拨钟问题

1166:拨钟问题

描述

有9个时钟,排成一个3*3的矩阵。

|-------|    |-------|    |-------|
|       |    |       |    |   |   |
|---O   |    |---O   |    |   O   |
|       |    |       |    |       |
|-------|    |-------|    |-------|A            B            C    |-------|    |-------|    |-------|
|       |    |       |    |       |
|   O   |    |   O   |    |   O   |
|   |   |    |   |   |    |   |   |
|-------|    |-------|    |-------|D            E            F    |-------|    |-------|    |-------|
|       |    |       |    |       |
|   O   |    |   O---|    |   O   |
|   |   |    |       |    |   |   |
|-------|    |-------|    |-------|G            H            I    

(图 1)
现在需要用最少的移动,将9个时钟的指针都拨到12点的位置。共允许有9种不同的移动。如下表所示,每个移动会将若干个时钟的指针沿顺时针方向拨动90度。

移动 影响的时钟

 1         ABDE2         ABC3         BCEF4         ADG5         BDEFH6         CFI7         DEGH8         GHI9         EFHI   

输入

9个整数,表示各时钟指针的起始位置,相邻两个整数之间用单个空格隔开。其中,0=12点、1=3点、2=6点、3=9点。

输出

输出一个最短的移动序列,使得9个时钟的指针都指向12点。按照移动的序号从小到大输出结果。相邻两个整数之间用单个空格隔开。
样例输入

3 3 0 
2 2 2 
2 1 2 

样例输出

4 5 8 9 

思路:枚举,也就是暴力,注意一个方法最多使用三次。

#include <string.h>
#include <stdio.h>
#define FOR(x) for(x=0;x<=3;x++)
int main()
{int i,a[10],b[10],c[10];for(i=1;i<=9;i++)scanf("%d",&a[i]);FOR(b[1])FOR(b[2])FOR(b[3])FOR(b[4])FOR(b[5])FOR(b[6])FOR(b[7])FOR(b[8])FOR(b[9]){c[1]=(a[1]+b[1]+b[2]+b[4])%4;c[2]=(a[2]+b[1]+b[2]+b[3]+b[5])%4;c[3]=(a[3]+b[2]+b[3]+b[6])%4;c[4]=(a[4]+b[1]+b[4]+b[5]+b[7])%4;c[5]=(a[5]+b[1]+b[3]+b[5]+b[7]+b[9])%4;c[6]=(a[6]+b[3]+b[5]+b[6]+b[9])%4;c[7]=(a[7]+b[4]+b[7]+b[8])%4;c[8]=(a[8]+b[5]+b[7]+b[8]+b[9])%4;c[9]=(a[9]+b[6]+b[8]+b[9])%4;if(c[1]+c[2]+c[3]+c[4]+c[5]+c[6]+c[7]+c[8]+c[9]==0){for(i=0;i<b[1];i++) printf("1 ");for(i=0;i<b[2];i++) printf("2 ");for(i=0;i<b[3];i++) printf("3 ");for(i=0;i<b[4];i++) printf("4 ");for(i=0;i<b[5];i++) printf("5 ");for(i=0;i<b[6];i++) printf("6 ");for(i=0;i<b[7];i++) printf("7 ");for(i=0;i<b[8];i++) printf("8 ");for(i=0;i<b[9];i++) printf("9 ");printf("\n");return(0);}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu扩展触摸屏触控错位修复

Ubuntu扩展触摸屏触控错位修复 当我们ubuntu外接一个触摸显示器的时候&#xff0c;会发现触摸扩展屏幕&#xff0c;发现操控的是主屏幕&#xff0c;我写了一个脚本去修复。 #! /bin/bash #------------------------------------------------------------------------------ #…

目标检测与分割总结

目标检测最常用的三个模型&#xff1a;Faster R-CNN、SSD和YOLO Faster R-CNN架构 在Faster RCNN中&#xff0c;候选框是经过RPN产生的&#xff0c;然后再把各个“候选框”映射到特征图上&#xff0c;得到RoIs。 Faster R-CNN步骤&#xff1a; (1) 由输入图片产生的区域候选…

shell脚本单词去重多个文件

shell脚本单词去重多个文件 例如要求如下&#xff1a; 有多个txt文件&#xff0c;每个文件内有多行单词 中间为英文的”,”&#xff0c;或者中文的”&#xff0c;”逗号作为分隔符。 world,世界 set&#xff0c;设置 good,好&#xff0c;商品 .... 将这些文件汇总去除重复…

win10连接烟台大学校园网

第一步 右键网络图标&#xff0c;打开网络管理中心 第二步&#xff1a; 设置添加新的网络&#xff0c;方法步骤如下&#xff1a; 第三步&#xff1a;新建VPN连接&#xff0c;注意协议为L2TP 第四步&#xff1a; 第五步&#xff1a; 第六步&#xff1a; 创建结束后进入更…

Angular国际化方案

Angular国际化方案 首先和大家推荐一个xlf文件的操作工具,支持合并和编辑功能,github,到release界面下载。 对于Angular国际化,官方提供了i18n方案,也就是标签的方式,通过angular CLI来识别。国际化方案必须在编译前定义下来,所以不能动态翻译。也就是当有人切换语言时,…

模拟退火算法(TSP问题)

模拟退火算法解决TSP问题 算法思想 模拟退火算法&#xff08;Simulate Anneal&#xff0c;SA&#xff09;是一种通用概率演算法&#xff0c;用来在一个大的搜寻空间内找寻命题的最优解 模拟退火算法来源于固体退火原理&#xff0c;将固体加温至充分高&#xff0c;再让其徐徐…

2-docker 安装

2-docker 安装 Ubuntu 安装 由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此&#xff0c;我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。 $ sudo apt-get update$ sudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg-agent \sof…

U-Net++粗略解释

Paper&#xff1a;UNet: A Nested U-Net Architecture for Medical Image Segmentation u-net网络的基本拓扑结构 目前最先进的图像分割模型是各种个同样的 encoder-decoder架构&#xff0c;他们具有一个关键的相似性&#xff1a;skip connections&#xff0c;它可以将编码器…

Spring中的组合模式

组合模式是一种对象设计模式&#xff0c;它允许你将对象组合成树形结构以表示“部分-整体”的层次结构&#xff0c;使得客户端以统一的方式处理单个对象和对象的组合。在Spring框架中&#xff0c;组合模式被广泛应用&#xff0c;让我们深入分析一下。 在Spring中&#xff0c;组…

Docker+Nginx部署Angular

DockerNginx部署Angular 在部署Angular生产环境之前&#xff0c;需要电脑已经安装docker。 添加Dockerfile 在已经完成的Angular项目的项目根目录下添加Dockerfile文件。 Dockerfile文件内容&#xff1a; FROM nginx:1.11-1.11-alpine COPY index.html /usr/share/nginx/ht…

U-net网络详解

U-net网络 简单说一下网络图中各项所代表的内容&#xff1a; 蓝/白色框表示feature map(特征图) 蓝色箭头表示3x3卷积&#xff0c;主要用于特征提取 灰色箭头表示skip-connection&#xff08;跳跃连接&#xff0c;通常用于残差网络中&#xff09;,在这里是用于用于特征融合&…

Angular Web App部署Ubuntu Nginx

Angular Web App部署Ubuntu Nginx 当我们想发布Angular Web App的时候,我们想在开发的时候部署测试,那么这篇文章使用Nginx来部署我们的Angular 系统环境 lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.4 LTS Rele…

遗传算法-01背包

遗传算法 算法思想 遗传算法&#xff08;Genetic Algorithm, GA&#xff09;是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型&#xff0c;是一种通过模拟自然进化过程搜索最优解的方法。 其主要特点是直接对结构对象进行操作&#xff0c;不存在求导和函…

Angular Web App部署Linux Nginx Https

Angular Web App部署Linux Nginx Https 提示:这篇文章是基于内网的 互联网就开始将 WEB 服务从 HTTP 迁移到 HTTPS,而现在为了更快的推进 HTTPS 的普及,Chrome 将从 2018 年 7 月起标记所有的 HTTP 网站为不安全链接。 HTTPS 会逐渐成为 WEB 服务的标配,最最重要的是,它能…

SOLO算法简读

论文链接&#xff1a;https://arxiv.org/abs/1912.04488 代码链接&#xff1a;https://github.com/WXinlong/SOLO 摘要 提出一种新的实例分割方法。与语义分割等其他密集预测任务相比&#xff0c;实例分割的难度要大得多。为了预测每个实例的掩码&#xff0c;主流方法要么遵…

Rxjs的flatMap使用

Rxjs的flatMap使用 flatMap是Rxjs比较绕的一个概念&#xff0c;这里我们只是讲解如何使用。在Rxjs 4.0版本时叫flatMap,在Rxjs 5.0时被更名为margeMap,现在flatMap作为margeMap的别名使用&#xff0c;这是考虑向下兼容。 官方flatMap的定义&#xff1a; Projects each sourc…

关于Loss的简单总结

Dice Loss 参考&#xff1a;https://blog.csdn.net/l7H9JA4/article/details/108162188 Dice系数&#xff1a; 是一种集合相似度度量函数&#xff0c;通常用于计算两个样本的相似度&#xff0c;取值范围为[0,1]。 s2∣X∩Y∣∣X∣∣Y∣s \frac{2|X ∩ Y|}{|X||Y|} s∣X∣∣Y…

Angular_PWA使用+Demo

Angular_PWA使用+Demo 什么是PWA PWA(Progressive Web App)利用TLS,webapp manifests和service workers使应用程序能够安装并离线使用。 换句话说,PWA就像手机上的原生应用程序,但它是使用诸如HTML5,JavaScript和CSS3之类的网络技术构建的。 如果构建正确,PWA与原生应…

SOLOv2论文简读

论文&#xff1a;SOLOv2: Dynamic, Faster and Stronger 代码&#xff1a;https://github.com/WXinlong/SOLO 摘要 主要提出了作者在SOLOv2中实现的优秀的实例分割方法&#xff0c;旨在创建一个简单、直接、快速的实例分割框架&#xff1a; 通过提出动态学习对象分割器的mas…

Angular6_PWA

Angular6_PWA Angular正式发布了V6.0,我们已经可以利用对应的@angular/cli V6.0来直接开发PWA应用了。 第一步:安装@angular/cli V6.0 如果你机器上有老版本,请先卸载。 打开你的终端,执行: npm install -g @angular/cli 或 cnpm install -g @angular/cli 安装成功…