CodeForces - 1311D Three Integers(暴力)
题目链接:点击查看
题目大意:给出三个数 a , b , c ,每次操作可以挑选任意一个数让其加一或减一,现在问最少需要操作多少次,可以使得:
- a 可以整除 b
- 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(暴力)相关推荐
- 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. ...
- codeforces 1311D(暴力)
题意描述 You are given three integers a≤b≤c. In one move, you can add +1 or −1 to any of these integers ...
- codeforces数学1600day6[CodeForces - 1029C多区间交+枚举,CodeForces 992C[数学公式推导],CodeForces 992B[质因数分解+暴力枚举]]
A - Maximal Intersection CodeForces - 1029C 题目大意:就是给你n个区间,这n个区间有公共的区间长度为x,现在叫你从这n个区间中删掉一个使得x最大化. 解题思 ...
- CodeForces - 1553E Permutation Shift(暴力+置换群求环)
题目链接:点击查看 题目大意:假设初始时的数组为 [1,2,3,...,n][1,2,3,...,n][1,2,3,...,n],同时 kkk 为偏移量,则原数组会循环右移 kkk 个单位,假设 k= ...
- Codeforces Gym 100418K Cards 暴力打表
Cards Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.action ...
- Codeforces 993A. Two Squares(暴力求解)
解题思路(暴力解法) 平行于x轴的正方形和与x轴成45度倾斜的正方形相交的点中必定有整数点.即若两正方形相交,必定存在整数i,j,使(i,j)同时属于两个正方形. 我们把两个正方形中的整数点都找出来, ...
- CodeForces - 1551F Equidistant Vertices(暴力+dp)
题目链接:点击查看 题目大意:给出一棵 nnn 个节点组成的树,问选出 kkk 个节点满足相互之间距离相等的方案数有多少 题目分析:n=100n=100n=100,感觉数据范围越小的题目越难发现 ta ...
- CodeForces - 1141D Colored Boots(暴力+水题)
题目链接:点击查看 题目大意:给出两个字符串s和t,两个字符串中相同的字母可以匹配,问号可以和任意字符匹配,现在问两个字符串最多能匹配多少个字符,并给出匹配的下标 题目分析:挺好玩的一道水题,大体思路 ...
- CodeForces - 1215C Swap Letters(暴力+思维+模拟)
题目链接:点击查看 题目大意:给出两个只由字母a和字母b所组成的字符串,我们记为s和t,现在我们可以交换两个字符串任意位置的字母(只能在两个串之间交换,不能在自己串中交换),现在问能否通过一定次数的交 ...
最新文章
- 机器学习入门学习笔记:(1)BP神经网络原理推导及程序实现
- python之_init_函数的简介
- 紧跟月影大佬的步伐,一起来学习如何写好JS(上)
- 数据结构 树和二叉树
- ssl1463-公共子串【各种dp之1】
- 如何清理 Weblogic Server 缓存
- 泛泰A860(高通公司8064 cpu 1080p) 拂4.4中国民营recovery TWRP2.7.1.2文本(通过刷第三版)...
- ZABBIX自动发现Redis端口并监控
- tomcat源码阅读之session管理器(Manager)
- 系统学习机器学习之半参数方法(一)--基于距离
- iMazing支持哪些数据类型
- 傅里叶分析——傅里叶级数
- 查找计算机所有图片文件夹,win10系统搜索电脑里的所有图片的操作方法
- 使用 X-Frame-Options 防止被iframe 造成跨域iframe 提交挂掉
- django线上环境配置
- 浅谈 CMap 与 map
- 大数据时代的Serverless工作负载预测赛后总结
- 引才!博士60万、硕士35万、本科28万,沿海城市
- 孤立波matlab,色散方程的两个八点差分格式
- 周鸿袆:教你打造十页完美商业计划书
热门文章
- java中do loop的使用_Java中do-while循环——通过示例学编程(11)
- linux twiki 添加权限,Linux安装TWiki
- Spring与日志的整合
- feign 能干什么:
- RPC实现Provider服务端业务逻辑
- 初步认识Volatile-缓存一致性协议
- 高仿真的类-DefaultListableBeanFactory
- MybatisPlus介绍
- SpringCloud_Sell.sql
- android 等待动画 库,android--AnimationDrawable实现等待动画效果