题意:二叉树代表使得平衡天平,修改最少值使之平衡。


代码:(Accepted,0.030s)

//UVa12166 - Equilibrium Mobile
//Accepted 0.030s
//#define _XIENAOBAN_
#include<cstdio>
#include<cstring>
#include<map>int T;
int total;
std::map<long long, int> leaf;void build(int dp) {char c(getchar());if (c == '[') {build(dp + 1),build(dp + 1);getchar();return;}long long n(0);do {n = n * 10 + c - '0';c = getchar();} while (c >= '0' && c <= '9');++leaf[n<<dp];++total;return;
}int main()
{
#ifdef _XIENAOBAN_
#define gets(T) gets_s(T, 129)freopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);
#endifscanf("%d",&T);while (getchar() != '\n');while (total = 0,leaf.clear(),T--) {build(0);int mx(0);for (auto p(leaf.begin());p != leaf.end();++p)if (p->second > mx) mx = p->second;printf("%d\n",total - mx);}return 0;
}

分析:题目给了每一片树叶的值与深度与树的形状。
由题,每个结点(除了树叶)的值为左右儿子之和,且其左右儿子值均相同。
推出,确定任意树叶与树的形状,其他结点的唯一可能的值均可求出(唯一确定)。
推出,确定任意结点与树的形状,其他结点的唯一可能的值均可求出(唯一确定)。
反之,若根节点值为N,且已知树的形状,可推出每个树叶的唯一可能的值(唯一确定)。

一开始想在以每个树叶为基准的情况下求出其他所有树叶的对应值,所以要遍历每个树叶,并对每个树叶遍历其他树叶求是否需要改变,时间复杂度O(n^2),明显就麻烦。
看了题解,既然以某一树叶唯一确定一棵树,则只需求出以每片树叶为基准下的根节点值,看所有树叶对应根节点值相同的最多的,就是不需要改动的树叶最多的情况。时间复杂度O(n)。

唉,大神们的逆向思维就是厉害。论审题、分析题目的重要性。

[刷题]算法竞赛入门经典(第2版) 6-6/UVa12166 - Equilibrium Mobile相关推荐

  1. [刷题]算法竞赛入门经典(第2版) 4-1/UVa1589 - Xiangqi

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 代码:(Accepted,0 ms) //UVa1589 #include<iostream> #incl ...

  2. [刷题]算法竞赛入门经典(第2版) 6-7/UVa804 - Petri Net Simulation

    题意:模拟Petri网的执行.虽然没听说过Petri网,但是题目描述的很清晰. 代码:(Accepted,0.210s) //UVa804 - Petri Net Simulation //Accep ...

  3. [刷题]算法竞赛入门经典(第2版) 4-3/UVa220 - Othello

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 代码:(Accepted,0 ms) //UVa 220 - Othello #include<iostream ...

  4. [刷题]算法竞赛入门经典(第2版) 5-2/UVa1594 - Ducci Sequence

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 代码:(Accepted,20 ms) //UVa1594 - Ducci Sequence #include< ...

  5. [刷题]算法竞赛入门经典 3-10/UVa1587 3-11/UVa1588

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 题目:算法竞赛入门经典 3-10/UVa1587:Box 代码: //UVa1587 - Box #include&l ...

  6. 算法竞赛入门经典(第二版)第三章习题

    声明:作者水平有限,只是会基础C语言的小菜,C++还未入门.作者仅根据算法竞赛入门经典(第二版)书上第三章习题所述题意而编写,并未严格按照原题的输入输出编写,代码仅经过个人测试(OJ网站太慢了).代码 ...

  7. 刘汝佳《算法竞赛入门经典(第二版)》习题(三)

    刘汝佳<算法竞赛入门经典(第二版)>第三章习题(一) 习题3-1 得分(ACM/ICPC Seoul 2005,UVa1585) 给出一个由O和X组成的串(长度为1~80),统计得分.每个 ...

  8. 刘汝佳《算法竞赛入门经典(第二版)》习题(六)

    刘汝佳<算法竞赛入门经典(第二版)>第四章习题(4-1~4-3) 习题4-1 象棋(Xiangai,ACM/ICPC Fuzhou 2011,UVa1589) 考虑一个象棋残局,其中红方有 ...

  9. 刘汝佳《算法竞赛入门经典(第二版)》习题(二)

    刘汝佳<算法竞赛入门经典(第二版)>第二章习题 目录 刘汝佳<算法竞赛入门经典(第二版)>第二章习题 习题2-1 水仙花数 习题2-2 韩信点兵 习题2-3 倒三角形 习题2- ...

最新文章

  1. SGS 0.9.7 协议解析
  2. 代码生成器1.0正式发布
  3. cesium html源码,Cesium源码的本地运行及调试
  4. js获取 jquery获取页面shu
  5. HttpHandler HttpModule入门篇
  6. 算法高级(41)-推荐算法实现
  7. presto .vs impala .vs HAWQ query engine
  8. 关于ecplise中一些很实用的技巧
  9. Java高并发架构设计
  10. VSCode下载与安装及安装汉化包
  11. 【转载】你必须知道的10种国产编程语言
  12. python 数组的排列与组合:combinations 与 permutations
  13. 【Linux】/bin/sh、/bin/bash、/bin/dash、init=/sysroot/bin/bash(sh) 、init=/bin/bash(sh) 的区别
  14. HarmonyOS 系统架构
  15. NLPCC历年投稿及接收率
  16. web设计字体规范_适用于Web设计人员的30种高质量免费字体
  17. Cent OS 7安装redis
  18. 计算机应用基础教学计划第二学期,计算机应用基础教学计划
  19. 云点播视频-DRM-方案调研
  20. viterbi算法词性标注

热门文章

  1. 中国科学技术大学计算机怎么样,中国科学技术大学计算机技术怎么样
  2. android 仿日历翻页特效、仿htc时钟翻页特效、数字翻页切换
  3. DIY便携式肖像绘图机
  4. 2020 届计算机视觉算法工程师秋招进程
  5. CH4-面向对象下 (8个案例实现)
  6. 【利用电容-数字转换器检测液位】
  7. vue2+element ui
  8. Oculus Rift 渲染
  9. 如何把自己写的网页挂在Github上面(完整教程)
  10. android 实现发送短信功能以及解决权限问题