/*
*题目大意:
*    给定a, b, c,代表三种不同颜色的球的个数,然后规定
*    如果把任意两种不同颜色的球放在一起,那么它们两个
*    的颜色将变成第三种颜色的球的颜色。求判断最后所有的
*    球能否变成同一种颜色,如果能,输出最小步数。否则输
*    出):。
*解题思路:
*    广搜实现不了,因为a,b,c都是<=1000,标志状态的数组太
*    大。其实就是找规律。其实a, b, c由a-x,b-x,c+2x可得到只
*    要三种球的个数其中任意两种球个数只差是3的倍数,即可
*    变成同一种颜色。
*解题感想:
*    wa了2次,第一次忽略了,其实只要有两种满足三的倍数,
*    那么即使另外一种球的个数小于它们只差除以三也是可以
*    变成一种颜色的。第二次wa是因为没有判断变成三种颜色的球
*    的步数中求最小。
*/

 1 #include <iostream>
 2 #include <cmath>
 3 using namespace std;
 4
 5 int main(void)
 6 {
 7 #ifndef ONLINE_JUDGE
 8     freopen("in.txt", "r", stdin);
 9 #endif
10
11     int a[3];
12     while(scanf("%d %d %d", &a[0], &a[1], &a[2]) == 3)
13     {
14         bool flag = false;
15         int ans = INT_MAX;
16         //for(int i = 0; i < 3; i++)
17         {
18             int temp = abs(a[0] - a[1]);
19             if(temp % 3 == 0)
20             {
21                 int t = temp / 3;
22                 flag = true;
23                 t = (a[0] + a[1] + t) / 2 + t;
24                 if(ans > t)
25                     ans = t;
26             }
27
28             temp = abs(a[0] - a[2]);
29             if(temp % 3 == 0)
30             {
31                 int t = temp / 3;
32                 flag = true;
33                 t = (a[0] + a[2] + t) / 2 + t;
34                 if(ans > t)
35                     ans = t;
36             }
37
38             temp = abs(a[1] - a[2]);
39             if(temp % 3 == 0)
40             {
41                 int t = temp / 3;
42                 flag = true;
43                 t = (a[1] + a[2] + t) / 2 + t;
44                 if(ans > t)
45                     ans = t;
46             }
47         }
48         if(flag == false)
49             puts("):");
50         else
51             printf("%d\n", ans);
52     }
53     return 0;
54 }

转载于:https://www.cnblogs.com/cchun/archive/2012/05/26/2519276.html

HDU2277_变色球相关推荐

  1. html地球仪代码,HTML5 旋转的变色球(地球仪)

    CSS 语言: CSSSCSS 确定 * { box-sizing: border-box; font-size: 0px; font-family: verdana; } .container { ...

  2. 快轮天才发明家刘峰,上榜福布斯2017年亚洲人物

    天才发明家刘峰此次的上榜,不仅代表个人的荣誉,更代表智能出行领域正在得到世界的认可与支持. 今日,美国知名财经媒体福布斯发布亚洲地区30位30岁以下商业领袖"30 Under 30 Asia ...

  3. 改变自己,让自己变得更好

    在现实生活中,有些时候我们会想着去改变别人,希望别人能顺从自己一点,这样心里会好受一些:但往往让我们想不到的是,每个人都有自己的想法,都有自己的主见: 并不是每个人都能理解你,都会按你的意愿去顺从你的 ...

  4. 经历能让人变得更理智更成熟

    生活中,有大多数的人:都会经历过一些痛苦,一些困难和挫折.苦日子是所有人都不愿意经历的,然而生活的现实却让很多人躲不过苦难的降临.而我就是集中的一个,我从小第一个大的经历就是被父母一大早赶着叫我起床去 ...

  5. 这样的独处,能让你变得越来越优秀

    每个人都想成为一个优秀的人:然而优秀是一定要付出努力和行动的.独处也是能让一个人变得优秀的,因为在独处中你专注的学习能更有效. 独处能让人醒悟,能让人可以静下心来,从而更好的领悟到最真实的自己.人只有 ...

  6. Facebook 发布深度学习工具包 PyTorch Hub,让论文复现变得更容易

    近日,PyTorch 社区发布了一个深度学习工具包 PyTorchHub, 帮助机器学习工作者更快实现重要论文的复现工作.PyTorchHub 由一个预训练模型仓库组成,专门用于提高研究工作的复现性以 ...

  7. pytorch中如何处理RNN输入变长序列padding

    一.为什么RNN需要处理变长输入 假设我们有情感分析的例子,对每句话进行一个感情级别的分类,主体流程大概是下图所示: 思路比较简单,但是当我们进行batch个训练数据一起计算的时候,我们会遇到多个训练 ...

  8. echarts数据变了不重新渲染,以及重新渲染了前后数据会重叠渲染的问题

    1.echarts数据变了但是视图不重新渲染 新建Chart.vue文件 <template>  <p :id="id" :style="style&q ...

  9. 织梦手机站下一篇变上一篇而且还出错Request Error!

    最新的织梦dedecms程序手机版下一篇变上一篇而且还出错Request Error!,这是因为官方写错了一个地方 打开 /include/arc.archives.class.php 找到 $mli ...

最新文章

  1. 腾讯云服务器搭建WampServer环境
  2. 为什么索引可以让查询变快,你有思考过吗?
  3. 一个经典面试题:如何保证缓存与数据库的双写一致性?
  4. poj 2288(状态压缩dp + TSP问题)
  5. java socket通信安全_Java Socket通信
  6. java中的static关键字总结
  7. 奇咔咔机器人教育_奇咔咔机器人教育,提升孩子的注意力
  8. 4步搞定MySQL安装部署(附MySQL一键式部署脚本)
  9. socket,ioctl获取ip
  10. 结构方程模型及PLS估计【评价】
  11. 数学建模 ---斯皮尔曼相关系数
  12. js通过身份证计算年龄
  13. spss分析方法-相关分析(转载)
  14. gwas snp 和_GWAS,SNP,和疾病
  15. 中国象棋java大作业doc_《java语言程序设计》课程设计-中国象棋对弈系统(源码).doc...
  16. android 夜间模式源码,Android Support Library 之 夜间模式
  17. git命令行切换到某一个提交版本的分支
  18. 一段很现实的话适合发朋友圈文案
  19. unity导入模型呈现紫色解决方法
  20. 关于组织 2021年全国大学生数学建模竞赛的通知

热门文章

  1. unity3d 预制体
  2. 关于apache和tomcat集群,线程是否占用实验
  3. MSSQL分组取后每一组的最新一条记录
  4. tkinter的GUI设计:界面与逻辑分离(三)-- 多页面
  5. 产品经理,你来自江湖
  6. Office 365身份认证管理-添加并验证联合认证域
  7. C#WinForm WebBrowser (二) 实用方法总结
  8. js 调用服务器端方法总结
  9. CSS+DIV-设置表格与表单
  10. leetcode 1449. 数位成本和为目标值的最大数字(dp)