当前位置: 首页 > article >正文

xtu oj 六边形

六边形
题目描述
一个六边形组成的“花朵”图案,编号如图所示。

其中
2∼7构成内圈,8∼19构成外圈。 你可以按顺时钟或者逆时针方向,循环移动外圈或者内圈六边形里数字,但是不能在内外圈之间移动里面的数字。

任取一个六边形和其周围围绕的六个六边形,可以构成的一个“小花”图形,我们想知道所有这样的“小花”中的数字累加和最小是多少?

输入格式
第一行输入一个整数(1≤T≤1000),表示样例的个数。以后每个样例占1行,为19个非负整数,每个数的值不超过1000,为对应编号格子中的数字。

输出格式
每行输出一个样例的结果,为一个整数。

样例输入
1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
样例输出
28
样例解释
无论怎么旋转内外圈,中央的那个子六边形的累计和都是
1+2+3+4+5+6+7=28,这个是最小的。

解题思路:无论怎样旋转,构成六边形必有最内圈a[1]那个数,只要考虑两种情况即可。

1.最内圈+第二圈 即a[1]+a[2]+...+a[7]

2、最内圈a[1]+第二圈连续三个最小数+第三圈连续三个最小数

两种情况比较即可得出答案

AC代码

#include<stdio.h>
int main(){
	int T;
	scanf("%d",&T);
	while(T--){
		int a[22]={};
		int i,j;
		for(i=1;i<=19;i++){
			scanf("%d",&a[i]);
		}
	    int min=0;
	    //内圈 
	    for(i=1;i<=7;i++){
	    	min+=a[i];
		}
		int min1=a[2]+a[3]+a[4],min2=a[8]+a[9]+a[10];
		int sum1,sum2;
		for(i=2;i<=7;i++){
	        if(i<=5)sum1=a[i]+a[i+1]+a[i+2];
	        else if(i==6)sum1=a[6]+a[7]+a[2];
	        else sum1=a[7]+a[2]+a[3];
			if(sum1<=min1)min1=sum1;
		}
		for(i=8;i<=19;i++){
			if(i<=17)sum2=a[i]+a[i+1]+a[i+2];
	        else if(i==18)sum2=a[18]+a[19]+a[8];
	        else sum2=a[19]+a[8]+a[9];
			if(sum2<=min2)min2=sum2;
		}
		int sum=a[1]+min1+min2;
		if(sum<=min)min=sum;
		printf("%d\n",min);
	}
} 


http://www.kler.cn/a/326694.html

相关文章:

  • 【Unity3D】ECS入门学习(六)状态组件 ISystemStateComponentData
  • 欲海航舟:探寻天性驱动下的欲望演变与人生驾驭
  • 在国产电脑上运行PDFSAM软件使用pdf分割合并交替混合处理pdf文档
  • 学习 Python 编程的规则与风格指南
  • 【js】记录预览pdf文件
  • 双指针——查找总价格为目标值的两个商品
  • 制造企业如何提升项目管理效率?惠科股份选择奥博思PowerProject项目管理系统
  • Windows环境Apache httpd 2.4 web服务器加载PHP8:Hello,world!
  • 【BurpSuite】访问控制漏洞和权限提升 | Access control vulnerabilities (3-6)
  • 一个静态ip可以提取出来多少ip
  • 新版pycharm如何导入自定义环境
  • elasticsearch_exporter启动报错 failed to fetch and decode node stats
  • C语言_回调函数和qsort
  • 全局安装cnpm并设置其使用淘宝镜像的仓库地址(地址最新版)
  • [leetcode] 71. 简化路径
  • 平安养老险肇庆中心支公司开展“2024年金融教育宣传月”活动
  • 【设计模式-模板】
  • k8s StorageClass 存储类
  • 中信银行西安分行开展“担当新使命 消保县域行”金融教育宣传活动
  • 总结之Coze 是一站式 AI Bot 开发平台——工作流使用及coze总结(三)
  • vivado中除法器ip核的使用
  • VS开发 - 静态编译和动态编译的基础实践与混用
  • golang学习笔记23-面向对象(五):多态与断言【重要】
  • C++学习9.24
  • git本地分支落后于远程分支,因此推送被拒绝怎么办?
  • nodejs逐字读取文件示例