题意:每次可以-5/-2/-1/+1/+2/+5,问是否存在方案使得A变成B

题解:首先我们可以设A<B,若A>B,则交换AB,因为A到B和B到A是互逆的过程,所以可以交换

其次将B-=A,因为从3到5和从0到2是一样的

这样题目转化为每次可以-5/-2/-1/+1/+2/+5,问是否存在方案总和为B

若一种方案同时存在加法和减法,那么相互抵消之后,同一个数只存在加法或减法,即-5+1+2是合法的,而-5+1+2+5不是,因为没有抵消完

观察经过次数可以达到的数

一:1 2 5

二:1 2 3 4 5 6 7 10

三:1 2 3 4 5 6 7 8 9 10 11 12 15

容易看出如果B为1/2/5则一次即可达到

如果B为5的倍数,则B/5次可以达到

否则设次数为i,则需要满足(i-1)*5+2>=B且(i-2)*5+2<B

容易解出i=(B-3)/5+2

#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
int T;
int a,b;
int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&a,&b);
if(a>b)swap(a,b);
b-=a;
if(b== || b== || b==)printf("1\n");
else
{
if(b%==)printf("%d\n",b/);
else printf("%d\n",(b-)/+);
}
}
return ;
}

最新文章

  1. Javascript练习
  2. spring mvc 使用ehcache
  3. css3属性书写顺序
  4. Java设计模式——装饰者模式
  5. javascript学习之位置获取
  6. 移除virbr0
  7. 如何设置电脑的IP
  8. memcach 安装
  9. HDOJ 4893 Wow! Such Sequence!
  10. C++程序原码
  11. #include&quot;*.c&quot; 文件问题
  12. Web框架-Django基础
  13. 关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
  14. CF 741D. Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths [dsu on tree 类似点分治]
  15. 应邀ITGeGe在线教育社区嵌入式基础开发讲师
  16. spring中一些aware接口
  17. [LeetCode] Most Profit Assigning Work 安排最大利润的工作
  18. 【SpringBoot】springboot -- 2.0版本自定义ReidsCacheManager的改变
  19. 浅谈HTTP协议与TCP协议
  20. C#反编译笔记

热门文章

  1. pthon之mock应用
  2. beego 注解路由无效问题分析
  3. Fiddler代理抓取的接口的服务器返回出现&quot;Response body is encoded. Click to decode. &quot;
  4. vts测试流程
  5. 剑指offer--day03
  6. thead tbody tfoot
  7. oracle--批量删除部分表,将某一列拼接成字符串
  8. 15 (H5*) JS第5天 对象
  9. Node.js实战7:你了解buffer吗?
  10. JDK中主要包的介绍