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

Codeforces Round #624 (Div. 3) D - Three Integers(枚举技巧)

题目链接


题目大意

给出三个数 a ≤ b ≤ c a \leq b \leq c abc,现在每次可以将一个数 + 1 +1 +1或者 − 1 -1 1,每次移动步数加一,但不能减到小于等于 0 0 0。现在求若移动到 c % b = = 0    & &    b % a = = 0 c\%b==0 ~~\&\& ~~b\%a==0 c%b==0  &&  b%a==0最小的移动总步数

解题思路

我们知道,整除关系也是倍数关系,那么我们在素筛那里是如何处理每个确定是素数的倍数呢?每次加上这个数的大小!那么这时我们发现可以一个三重循环,第一层 i i i暴力到数的最大范围,第二层 j j j每次增加 i i i,第三层 k k k每次增加 j j j,这样保证了整除关系的三个数的枚举,再维护一个最小值即可。注意数的范围要比10000大一些,第一次10010却WA了,第二次11000就过了

代码:

#include <iostream>
#include <math.h>
using namespace std;
#define INF 0x3f3f3f3f
const int maxn=11000;

int a,b,c,t;
int main()
{
    int x,y,z,ans,res;
    scanf("%d",&t);
    while(t--){
        scanf("%d%d%d",&x,&y,&z);
        ans=INF;
        for(int i=1;i<=maxn;i++)
            for(int j=i;j<=maxn;j+=i)
                for(int k=j;k<=maxn;k+=j){
                    res=abs(i-x)+abs(j-y)+abs(k-z);
                    if(res<ans){
                        ans=res;
                        a=i,b=j,c=k;
                    }
                }
        printf("%d\n",ans);
        printf("%d %d %d\n",a,b,c);
    }
    return 0;
}

相关文章:

  • Android应用程序使用Google Map
  • 程序员如何提高工作效率
  • Codeforces Round #624 (Div. 3) F - Moving Points(树状数组+去重离散化)
  • Codeforces Round #624 (Div. 3) 解(补)题报告
  • chipmunk物理引擎的基本概念和基本用法
  • STL之list
  • Medusa 3D 我的场景编辑器
  • 跟我学交换机配置(三)
  • 跟我学交换机配置(四)
  • 哈密顿回路 竞赛图 构造哈密顿回路(待更新)
  • 展现体验式营销的魅力(3,完)
  • UCF Local Programming Contest 2015 计蒜客重现 解(补)题报告
  • 那些年我们一起踩过的坑——读取字符(串)篇
  • Android开发指南-用户界面-菜单特性
  • ICPC North Central NA Contest 2017 - Is-A? Has-A? Who Knowz-A? (Floyd求传递闭包)
  • 分享的文章《人生如棋》
  • 【React系列】如何构建React应用程序
  • 10个最佳ES6特性 ES7与ES8的特性
  • Android开源项目规范总结
  • CentOS6 编译安装 redis-3.2.3
  • Java程序员幽默爆笑锦集
  • leetcode讲解--894. All Possible Full Binary Trees
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • nodejs:开发并发布一个nodejs包
  • Redux系列x:源码分析
  • 高度不固定时垂直居中
  • 关于字符编码你应该知道的事情
  • 京东美团研发面经
  • 前端临床手札——文件上传
  • 译米田引理
  • 国内开源镜像站点
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​如何防止网络攻击?
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #HarmonyOS:基础语法
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • $().each和$.each的区别
  • $.ajax,axios,fetch三种ajax请求的区别
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (Java)【深基9.例1】选举学生会
  • (附源码)php新闻发布平台 毕业设计 141646
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (六)vue-router+UI组件库
  • (强烈推荐)移动端音视频从零到上手(下)
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (原創) 物件導向與老子思想 (OO)
  • (转)ABI是什么
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .Net8 Blazor 尝鲜
  • .Net程序帮助文档制作
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .NET命令行(CLI)常用命令
  • /bin/bash^M: bad interpreter: No such file or directory