http://codeforces.com/contest/712/problem/C

要使得把三角形由边长n变成m,等价于由m变成n

如果是从n变成m,则很难判断每次判断变成多少。比如22的变成4,一开始那一条边变成什么都是可以得,都是满足三角形规律的。

但是如果你直接变成m,则后面的得不到最优。

变成22、22、4的话,后面的一路被限制。

那么如果你从4变到22,则每次选最大即可。

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <assert.h>
#define IOS ios::sync_with_stdio(false)
using namespace std;
#define inf (0x3f3f3f3f)
typedef long long int LL;#include <iostream>
#include <sstream>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <string>
int arr[33];
int n, m;
void work() {arr[1] = arr[2] = arr[3] = m;int ans = 0;while (true) {if (arr[1] == arr[2] && arr[2] == arr[3] && arr[3] == n) break;int mi = inf, id;for (int i = 1; i <= 3; ++i) {if (mi > arr[i]) {mi = arr[i];id = i;}}int haha1 = 0, haha2 = 0;for (int i = 1; i <= 3; ++i) {if (id == i) continue;if (!haha1) haha1 = arr[i];else haha2 = arr[i];}if (haha1 + haha2 - 1 >= n) {arr[id] = n;} else arr[id] = haha1 + haha2 - 1;ans++;}cout << ans << endl;
}int main() {
#ifdef localfreopen("data.txt", "r", stdin);
//    freopen("data.txt", "w", stdout);
#endifIOS;while (cin >> n >> m) work();return 0;
}

View Code

转载于:https://www.cnblogs.com/liuweimingcprogram/p/6123989.html

C. Memory and De-Evolution 逆向思维相关推荐

  1. c/c++动态检测内存错误利器 - ASan

    ASan,即Address Sanitizer,是一个适用于c/c++的动态内存错误检测器,它由一个编译器检测模块(LLVM pass)和一个替换malloc函数的运行时库组成,在性能及检测内存错误方 ...

  2. 耶鲁大学开放课程:《心理学导论》

    课程类型:心理学 课程介绍: 你的梦应该如何解析?男人和女人在两性需求的性质和程度是否不同?猩猩能否学习手语?为什么我们不能 胳肢自己?本课程试图回答这些以及其他诸如此类的问题,并提供了思想和行为科学 ...

  3. SBX(Simulated binary crossover)模拟二进制交叉算子和DE(differential evolution)差分进化算子

    一起来学演化计算-SBX(Simulated binary crossover)模拟二进制交叉算子和DE(differential evolution)差分进化算子 觉得有用的话,欢迎一起讨论相互学习 ...

  4. SBX(Simulated binary crossover)模拟二进制交叉算子和DE(differential evolution)差分进化算子...

    一起来学演化计算-SBX(Simulated binary crossover)模拟二进制交叉算子和DE(differential evolution)差分进化算子 觉得有用的话,欢迎一起讨论相互学习 ...

  5. 差分进化算法(Differential Evolution,DE)实例详解

    差分进化算法是(differential evolution,DE)是基于群体智能理论的优化算法,是通过群体内个体间的合作与竞争而产生的智能优化搜索算法.对比进化计算,它保留了基于种群的全局搜索策略, ...

  6. 差分进化算法 (differential evolution,DE)与离散差分进化算法(discrete DE, DDE)

    目录 概述 初始化 变异操作 交叉操作 选择操作 参数分析 优点 缺点 离散差分进化算法 概述 差分进化算法是一种用于解决全局优化问题的随机搜索算法.与遗传算法. 粒子群优化算法.蚁群算法.人工蜂群算 ...

  7. Efficient Hybrid De Novo Error Correction and Assembly for Long Reads

    Efficient Hybrid De Novo Error Correction and Assembly for Long Reads       长read的高效的混合从头纠错和装配 Abstr ...

  8. LSTM:《Long Short-Term Memory》的翻译并解读

    LSTM:<Long Short-Term Memory>的翻译并解读 目录 Long Short-Term Memory Abstract 1 INTRODUCTION 2 PREVIO ...

  9. Making a Difference to Differential Evolution

    0.论文背景 差分进化(Differential Evolution)和进化规划(Evolutionary Programming)是进化计算中的两种主要算法.它们已成功地应用于许多真实世界的数值优化 ...

  10. Self-adaptive Differential Evolution with Neighborhood Search

    0.论文背景 本文是在SaDE和NSDE的基础上,结合二者的特点,提出了SaNSDE算法. Yang Z, Tang K, Yao X. Self-adaptive differential evol ...

最新文章

  1. jxl解析excel
  2. Monokai风格的EditPlus配色方案
  3. 插入排序之——直接插入排序(c/c++)
  4. 主流报表制作工具之王者争夺战:功能大PK系列之“删除当前行”按钮制作
  5. 关于以追加模式写入文件时,为什么第一行是空行?
  6. mysql 计算差值_Prometheus + Granafa 构建MySQL监控平台
  7. maven项目的pom文件中常用的简单的标签理解
  8. 牛客寒假算法基础集训营2 A 处女座的签到题及一丢丢nth_elemen容器的简单用法...
  9. 一篇文章掌握整个JVM,JVM超详细解析。【持续更新 康师傅yyds】
  10. 从Activiti切换到Camunda的5个理由
  11. Google maps及51ditu的图片切割及存储方法2
  12. 能够自动感知背景主色调的按钮
  13. 写公众号的一些【奇葩经历】以及【思考】
  14. 网络直播课程:神马是敏捷?(直播时间:2014-7-14 20:00-21:00)
  15. win10无法安装提示磁盘布局不受UEFI固件支持的解决方法
  16. 计算机毕业设计之java+ssm供应链管理信息系统
  17. 数据库技术:关系型数据库设计总结
  18. 400Gbps 网络面临的挑战
  19. Attention-based Extraction of Structured Information from Street View Imagery:基于注意力的街景图像提取结构化信息
  20. 2022年证券从业资格投资顾问考试每日一练及答案

热门文章

  1. 以太坊 ERC-20 ERC-721 ERC-1155区别对比
  2. linux .o,.a,.so文件区别是什么
  3. C++ set 排序 修改元素之后不会改变原来的排序
  4. form表单提交大量input,php接收不全
  5. 稳定币usda是哪个发行的_usdt稳定币是谁发行的?
  6. liunx下安装redis开启网络
  7. matlab 数字基带,基于MATLAB的数字基带传输的 FIR滤波器的设计
  8. oracle精度说明符1~38_数据库显示精度说明符过多
  9. idea删除不用或者失效的jdk
  10. 安装composer并创建laravel项目流程