C. Memory and De-Evolution 逆向思维
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 逆向思维相关推荐
- c/c++动态检测内存错误利器 - ASan
ASan,即Address Sanitizer,是一个适用于c/c++的动态内存错误检测器,它由一个编译器检测模块(LLVM pass)和一个替换malloc函数的运行时库组成,在性能及检测内存错误方 ...
- 耶鲁大学开放课程:《心理学导论》
课程类型:心理学 课程介绍: 你的梦应该如何解析?男人和女人在两性需求的性质和程度是否不同?猩猩能否学习手语?为什么我们不能 胳肢自己?本课程试图回答这些以及其他诸如此类的问题,并提供了思想和行为科学 ...
- SBX(Simulated binary crossover)模拟二进制交叉算子和DE(differential evolution)差分进化算子
一起来学演化计算-SBX(Simulated binary crossover)模拟二进制交叉算子和DE(differential evolution)差分进化算子 觉得有用的话,欢迎一起讨论相互学习 ...
- SBX(Simulated binary crossover)模拟二进制交叉算子和DE(differential evolution)差分进化算子...
一起来学演化计算-SBX(Simulated binary crossover)模拟二进制交叉算子和DE(differential evolution)差分进化算子 觉得有用的话,欢迎一起讨论相互学习 ...
- 差分进化算法(Differential Evolution,DE)实例详解
差分进化算法是(differential evolution,DE)是基于群体智能理论的优化算法,是通过群体内个体间的合作与竞争而产生的智能优化搜索算法.对比进化计算,它保留了基于种群的全局搜索策略, ...
- 差分进化算法 (differential evolution,DE)与离散差分进化算法(discrete DE, DDE)
目录 概述 初始化 变异操作 交叉操作 选择操作 参数分析 优点 缺点 离散差分进化算法 概述 差分进化算法是一种用于解决全局优化问题的随机搜索算法.与遗传算法. 粒子群优化算法.蚁群算法.人工蜂群算 ...
- Efficient Hybrid De Novo Error Correction and Assembly for Long Reads
Efficient Hybrid De Novo Error Correction and Assembly for Long Reads 长read的高效的混合从头纠错和装配 Abstr ...
- LSTM:《Long Short-Term Memory》的翻译并解读
LSTM:<Long Short-Term Memory>的翻译并解读 目录 Long Short-Term Memory Abstract 1 INTRODUCTION 2 PREVIO ...
- Making a Difference to Differential Evolution
0.论文背景 差分进化(Differential Evolution)和进化规划(Evolutionary Programming)是进化计算中的两种主要算法.它们已成功地应用于许多真实世界的数值优化 ...
- Self-adaptive Differential Evolution with Neighborhood Search
0.论文背景 本文是在SaDE和NSDE的基础上,结合二者的特点,提出了SaNSDE算法. Yang Z, Tang K, Yao X. Self-adaptive differential evol ...
最新文章
- jxl解析excel
- Monokai风格的EditPlus配色方案
- 插入排序之——直接插入排序(c/c++)
- 主流报表制作工具之王者争夺战:功能大PK系列之“删除当前行”按钮制作
- 关于以追加模式写入文件时,为什么第一行是空行?
- mysql 计算差值_Prometheus + Granafa 构建MySQL监控平台
- maven项目的pom文件中常用的简单的标签理解
- 牛客寒假算法基础集训营2 A 处女座的签到题及一丢丢nth_elemen容器的简单用法...
- 一篇文章掌握整个JVM,JVM超详细解析。【持续更新 康师傅yyds】
- 从Activiti切换到Camunda的5个理由
- Google maps及51ditu的图片切割及存储方法2
- 能够自动感知背景主色调的按钮
- 写公众号的一些【奇葩经历】以及【思考】
- 网络直播课程:神马是敏捷?(直播时间:2014-7-14 20:00-21:00)
- win10无法安装提示磁盘布局不受UEFI固件支持的解决方法
- 计算机毕业设计之java+ssm供应链管理信息系统
- 数据库技术:关系型数据库设计总结
- 400Gbps 网络面临的挑战
- Attention-based Extraction of Structured Information from Street View Imagery:基于注意力的街景图像提取结构化信息
- 2022年证券从业资格投资顾问考试每日一练及答案
热门文章
- 以太坊 ERC-20 ERC-721 ERC-1155区别对比
- linux .o,.a,.so文件区别是什么
- C++ set 排序 修改元素之后不会改变原来的排序
- form表单提交大量input,php接收不全
- 稳定币usda是哪个发行的_usdt稳定币是谁发行的?
- liunx下安装redis开启网络
- matlab 数字基带,基于MATLAB的数字基带传输的 FIR滤波器的设计
- oracle精度说明符1~38_数据库显示精度说明符过多
- idea删除不用或者失效的jdk
- 安装composer并创建laravel项目流程