Educational Codeforces Round 55 (Rated for Div. 2) A - Vasya and Book
https://www.cnblogs.com/violet-acmer/p/10035971.html
题意:
一本书有n页,每次只能翻 d 页,问从x页到y页需要翻动几次?
注意:往前翻最少翻到第1页,往后翻最多翻到n页。
题解:
一开始想找规律来着,emmmm,直接用广搜,当时竟然过了,第二天,加数据了,直接就TLE了。
然后,今天下午,mxl给我和lk讲了一下ta的做法,找的规律,啊啊啊,我竟然没想到。
规律:
(1):如果abs(x-y)%d == 0,那么,那么直接输出abs(x-y)/d;
(2):如果abs(x-y)%d != 0,并且(y-1)%d != 0 && (n-y)%d != 0,输出-1。
对(2)的理解:如果abs(x-y)%d != 0,说明不可能从x直接翻到y,那么,只能通过从 x ->1 -> y 或 x -> n -> y了,但如果1不能翻到y并且n也不能翻到y,那肯定
就不会从x翻到y了,所以输出-1。
(3):如果前两种情况都不满足,说明 x 可以通过 (x ->1 -> y) 或 (x -> n -> y) 翻到y,然后,只需输出两中方式的最少翻动的次数即可。
AC代码:
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
using namespace std;
#define INF 0x3f3f3f3f int n,x,y,d; int Solve()
{
int sub=abs(x-y);//规律(1)
if(sub%d == )
return sub/d;
if((y-)%d != && (n-y)%d != )//规律(2)
return -; int xToOne=(x-)/d+((x-)%d == ? :);
int oneToY=((y-)%d == ? (y-)/d:INF);//注意:此处是判断能否有1到y,如果不能,赋值为INF int xToN=(n-x)/d+((n-x)%d == ? :);
int nToY=((n-y)%d == ? (n-y)/d:INF);//同上 return min(xToOne+oneToY,xToN+nToY);//规律(3)
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d%d",&n,&x,&y,&d);
printf("%d\n",Solve());
}
return ;
}
Educational Codeforces Round 55 (Rated for Div. 2) A - Vasya and Book的更多相关文章
- Educational Codeforces Round 55 (Rated for Div. 2) C. Multi-Subject Competition 【vector 预处理优化】
传送门:http://codeforces.com/contest/1082/problem/C C. Multi-Subject Competition time limit per test 2 ...
- Educational Codeforces Round 55 (Rated for Div. 2) A/B/C/D
http://codeforces.com/contest/1082/problem/A WA数发,因为默认为x<y = = 分情况讨论,直达 or x->1->y or x-& ...
- Educational Codeforces Round 55 (Rated for Div. 2) B. Vova and Trophies 【贪心 】
传送门:http://codeforces.com/contest/1082/problem/B B. Vova and Trophies time limit per test 2 seconds ...
- Codeforces 1082 C. Multi-Subject Competition-有点意思 (Educational Codeforces Round 55 (Rated for Div. 2))
C. Multi-Subject Competition time limit per test 2 seconds memory limit per test 256 megabytes input ...
- Codeforces 1082 A. Vasya and Book-题意 (Educational Codeforces Round 55 (Rated for Div. 2))
A. Vasya and Book time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- Educational Codeforces Round 55 (Rated for Div. 2):E. Increasing Frequency
E. Increasing Frequency 题目链接:https://codeforces.com/contest/1082/problem/E 题意: 给出n个数以及一个c,现在可以对一个区间上 ...
- Educational Codeforces Round 55 (Rated for Div. 2):D. Maximum Diameter Graph
D. Maximum Diameter Graph 题目链接:https://codeforces.com/contest/1082/problem/D 题意: 给出n个点的最大入度数,要求添加边构成 ...
- Educational Codeforces Round 55 (Rated for Div. 2):C. Multi-Subject Competition
C. Multi-Subject Competition 题目链接:https://codeforces.com/contest/1082/problem/C 题意: 给出n个信息,每个信息包含专业编 ...
- Educational Codeforces Round 55 (Rated for Div. 2)E
题:https://codeforces.com/contest/1082/problem/E 题意:给出n个数和一个数c,只能操作一次将[L,R]之间的数+任意数,问最后该序列中能存在最多多少个c ...
随机推荐
- php new self()
php里new self() 一般在类内部使用,作用是对自身类实例化 <?php class test{ public function __construct(){ echo ' ...
- spring @Validated 注解开发中使用group分组校验
之前知道spring支持JSR校验,在自己定义的bean中加入@NotNull,@NotBlank,@Length等之类的校验用于处理前台传递过来的request请求,避免在写多余的代码去处理. 但是 ...
- Microsoft Bot Framework with LUIS
今年微软的编程之美的主题是“对话即平台”,“人工智能”,要求参赛选手用到Bot Framework与Cognitive Services. 大多数人应该对这两个技术都不怎么熟悉吧,我就在这里写写自己所 ...
- django--orm表自关联详解
什么是表内自关联 表内自关联是指表内数据相关联的对象和表是相同字段,这样我们就直接用表内关联将外键关联设置成自身表的字段.同样表内关联也分一对多字段和多对多字段 例如:对于微博评论,每条评论都可能有子 ...
- BZOJ2618[Cqoi2006]凸多边形——半平面交
题目描述 逆时针给出n个凸多边形的顶点坐标,求它们交的面积.例如n=2时,两个凸多边形如下图: 则相交部分的面积为5.233. 输入 第一行有一个整数n,表示凸多边形的个数,以下依次描述各个多边形.第 ...
- [NOIp2016] 蚯蚓
类型:单调队列 传送门:>Here< 题意:有$N$只蚯蚓,每秒都会伸长$q$.每一次都会有人选出最长的一条切成两半,长度分别是$\left \lfloor px \right \rflo ...
- Unnitest测试框架总结
Unnitest总结 第一点,setUp和tearDown方法 l 每次执行test开头的用例都会执行setUp和tearDown方法 l 如: import unittest class M ...
- NEW —— Code
http://ai.baidu.com/ 百度AI开放平台
- restfull api交互常用状态码
2xx (成功类别) 200 Ok:标准的 HTTP 响应,表示 GET.PUT 或 POST 的处理成功. 201 Created:在创建新实例时,应返回此状态代码.例如,使用 POST 方法创建一 ...
- 数论细节梳理&模板
初阶 扩展欧拉 \(k\ge\varphi(m)\)时,\(b^k\equiv b^{k\%\varphi(m)+\varphi(m)}(\bmod m\)) 扩展CRT 推式子合并同余方程. htt ...