题目链接:点击查看

题目大意:给出三个数 a , b , c ,每次操作可以挑选任意一个数让其加一或减一,现在问最少需要操作多少次,可以使得:

  1. a 可以整除 b
  2. b 可以整除 c

题目分析:乍一看是一道数论题,但结合最优性剪枝的方法,我们可以写一个三层for循环的暴力,因为三个数初始时最大只有1e4,所以我们第一层for枚举 a ,第二层for枚举 b ,第三层for枚举 c ,直接暴力枚举肯定是不行的,1e12的复杂度,但在确定了a之后,因为b只能是a的倍数,所以第二层for的复杂度一下子就降下来了,同理第三层for的复杂度也不会太高,大概是nlognlogn?我猜的,反正不会很大,然后配合上最优性剪枝,就能轻松过题了

需要注意的是上限的确定问题,第一个上限是枚举 a 的上限,一开始我写的上限是 a + b + c ,结果WA了,一气之下改成了1e5就A了。。不过赛后被rj了,还是有点小难受的,这里就是第二个上限,也就是最终答案的上限了,最后初始化改成了无穷大就AC了,有时候比赛莽一点也未尝不是好事

代码:

#include<iostream>
#include<cstdio>
#include<string>
#include<ctime>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<stack>
#include<climits>
#include<queue>
#include<map>
#include<set>
#include<sstream>
using namespace std;typedef long long LL;typedef unsigned long long ull;const int inf=0x3f3f3f3f;const int N=2e5+100;int main()
{
#ifndef ONLINE_JUDGE
//    freopen("input.txt","r",stdin);
//    freopen("output.txt","w",stdout);
#endif
//  ios::sync_with_stdio(false);int w;cin>>w;while(w--){int a,b,c;scanf("%d%d%d",&a,&b,&c);int ans=inf;int limit=1e5+100;int aa,bb,cc;for(int i=1;i<=limit;i++){if(abs(a-i)>ans)continue;for(int j=1;j*i<=limit;j++) {if(abs(a-i)+abs(b-j*i)>ans)continue;for(int k=1;k*j*i<=limit;k++){if(ans>abs(a-i)+abs(b-j*i)+abs(c-j*i*k)){ans=abs(a-i)+abs(b-j*i)+abs(c-j*i*k);aa=i,bb=j*i,cc=j*i*k;}}}}printf("%d\n",ans);printf("%d %d %d\n",aa,bb,cc);}return 0;
}

CodeForces - 1311D Three Integers(暴力)相关推荐

  1. Three Integers CodeForces - 1311D(思维+暴力)

    You are given three integers a≤b≤c. In one move, you can add +1 or −1 to any of these integers (i.e. ...

  2. codeforces 1311D(暴力)

    题意描述 You are given three integers a≤b≤c. In one move, you can add +1 or −1 to any of these integers ...

  3. codeforces数学1600day6[CodeForces - 1029C多区间交+枚举,CodeForces 992C[数学公式推导],CodeForces 992B[质因数分解+暴力枚举]]

    A - Maximal Intersection CodeForces - 1029C 题目大意:就是给你n个区间,这n个区间有公共的区间长度为x,现在叫你从这n个区间中删掉一个使得x最大化. 解题思 ...

  4. CodeForces - 1553E Permutation Shift(暴力+置换群求环)

    题目链接:点击查看 题目大意:假设初始时的数组为 [1,2,3,...,n][1,2,3,...,n][1,2,3,...,n],同时 kkk 为偏移量,则原数组会循环右移 kkk 个单位,假设 k= ...

  5. Codeforces Gym 100418K Cards 暴力打表

    Cards Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  6. Codeforces 993A. Two Squares(暴力求解)

    解题思路(暴力解法) 平行于x轴的正方形和与x轴成45度倾斜的正方形相交的点中必定有整数点.即若两正方形相交,必定存在整数i,j,使(i,j)同时属于两个正方形. 我们把两个正方形中的整数点都找出来, ...

  7. CodeForces - 1551F Equidistant Vertices(暴力+dp)

    题目链接:点击查看 题目大意:给出一棵 nnn 个节点组成的树,问选出 kkk 个节点满足相互之间距离相等的方案数有多少 题目分析:n=100n=100n=100,感觉数据范围越小的题目越难发现 ta ...

  8. CodeForces - 1141D Colored Boots(暴力+水题)

    题目链接:点击查看 题目大意:给出两个字符串s和t,两个字符串中相同的字母可以匹配,问号可以和任意字符匹配,现在问两个字符串最多能匹配多少个字符,并给出匹配的下标 题目分析:挺好玩的一道水题,大体思路 ...

  9. CodeForces - 1215C Swap Letters(暴力+思维+模拟)

    题目链接:点击查看 题目大意:给出两个只由字母a和字母b所组成的字符串,我们记为s和t,现在我们可以交换两个字符串任意位置的字母(只能在两个串之间交换,不能在自己串中交换),现在问能否通过一定次数的交 ...

最新文章

  1. 机器学习入门学习笔记:(1)BP神经网络原理推导及程序实现
  2. python之_init_函数的简介
  3. 紧跟月影大佬的步伐,一起来学习如何写好JS(上)
  4. 数据结构 树和二叉树
  5. ssl1463-公共子串【各种dp之1】
  6. 如何清理 Weblogic Server 缓存
  7. 泛泰A860(高通公司8064 cpu 1080p) 拂4.4中国民营recovery TWRP2.7.1.2文本(通过刷第三版)...
  8. ZABBIX自动发现Redis端口并监控
  9. tomcat源码阅读之session管理器(Manager)
  10. 系统学习机器学习之半参数方法(一)--基于距离
  11. iMazing支持哪些数据类型
  12. 傅里叶分析——傅里叶级数
  13. 查找计算机所有图片文件夹,win10系统搜索电脑里的所有图片的操作方法
  14. 使用 X-Frame-Options 防止被iframe 造成跨域iframe 提交挂掉
  15. django线上环境配置
  16. 浅谈 CMap 与 map
  17. 大数据时代的Serverless工作负载预测赛后总结
  18. 引才!博士60万、硕士35万、本科28万,沿海城市
  19. 孤立波matlab,色散方程的两个八点差分格式
  20. 周鸿袆:教你打造十页完美商业计划书

热门文章

  1. java中do loop的使用_Java中do-while循环——通过示例学编程(11)
  2. linux twiki 添加权限,Linux安装TWiki
  3. Spring与日志的整合
  4. feign 能干什么:
  5. RPC实现Provider服务端业务逻辑
  6. 初步认识Volatile-缓存一致性协议
  7. 高仿真的类-DefaultListableBeanFactory
  8. MybatisPlus介绍
  9. SpringCloud_Sell.sql
  10. android 等待动画 库,android--AnimationDrawable实现等待动画效果