CF1082A Vasya and Book 题解
Content
给定 \(T\) 组数据,每组数据给出四个整数 \(n,x,y,d\)。小 V 有一本 \(n\) 页的书,每次可以恰好翻 \(d\) 页,求从第 \(x\) 页恰好翻到第 \(y\) 页的最少次数,或者报告不存在这样的方案。
数据范围:\(1\leqslant n,d\leqslant 10^9\),\(1\leqslant x,y\leqslant n\),\(1\leqslant t\leqslant 10^3\)。
Solution
分类讨论题。
- 如果 \(|x-y|\bmod d=0\),那么从第 \(x\) 页直接可以翻到第 \(y\) 页,那么 \(\dfrac{|y-x|}{d}\) 可作为一个答案。
- 如果 \((y-1)\bmod d=0\),那么可以从第 \(x\) 页先翻到第 \(1\) 页,再翻到第 \(y\) 页,那么 \(\dfrac{x-1}{d}+\dfrac{y-1}{d}+[(x-1)\bmod d\neq 0]\) 可作为一个答案。
- 如果 \((n-y)\bmod d=0\),那么可以从第 \(x\) 页先翻到第 \(n\) 页,再翻到第 \(y\) 页,那么 \(\dfrac{n-x}{d}+\dfrac{n-y}{d}+[(n-y)\bmod d\neq 0]\) 可作为一个答案。
如果三种情况都不符合就输出 -1
,否则输出满足情况的答案中的较小值。
Code
int main() {
MT {
int n = Rint, x = Rint, y = Rint, d = Rint, ans = 0x3f3f3f3f;
if(!(abs(y - x) % d)) ans = min(ans, abs(y - x) / d);
if(!((y - 1) % d)) ans = min(ans, (x - 1) / d + (y - 1) / d + (bool)((x - 1) % d));
if(!((n - y) % d)) ans = min(ans, (n - x) / d + (n - y) / d + (bool)((n - y) % d));
println(ans == 0x3f3f3f3f ? -1 : ans);
}
return 0;
}
CF1082A Vasya and Book 题解的更多相关文章
- CF493A Vasya and Football 题解
Content 有两个球队在踢足球,现在给出一些足球运动员被黄牌或红牌警告的时间,求每个队员第一次被红牌警告的时间. 注意:根据足球比赛规则,两张黄牌自动换成一张红牌. 数据范围:比赛时间 \(90\ ...
- CF1036D Vasya and Arrays 题解
Content 给定两个长度分别为 \(n\) 和 \(m\) 的数列 \(A,B\).你需要将两个数列都恰好分成 \(k\) 份,使得两个数列中第 \(i(i\in[1,k])\) 份的元素和对应相 ...
- CF1065A Vasya and Chocolate 题解
Content 小 V 有 \(s\) 块钱,商店里有巧克力卖,每块巧克力 \(c\) 块钱,现在商店给出优惠:购买 \(a\) 块巧克力可以免费获得 \(b\) 块巧克力,求小 V 最多能够买到的巧 ...
- CF1082解题报告
CF1082A Vasya and Book 模拟一下即可 \(Code\ Below:\) #include <bits/stdc++.h> using namespace std; c ...
- codeforcess水题100道
之所以在codeforces上找这100道水题的原因是为了巩固我对最近学的编程语言的掌握程度. 找的方式在codeforces上的PROBLEMSET中过的题最多的那些题里面出现的最前面的10个题型, ...
- CF355B Vasya and Public Transport 题解
Content 小 \(A\) 要乘坐交通工具,其中公交车的辆数是 \(n\),第 \(i\) 辆公交车的编号为 \(i\),乘坐次数为 \(a_i\):手推车的辆数是 \(m\),每辆手推车的编号为 ...
- CF1042E Vasya and Magic Matrix 题解
题目链接 思路分析 看到题目中 \(n,m \leq 1000\) ,故直接考虑 \(O(n^2)\) 级别做法. 我们先把所有的点按照 \(val\) 值从小到大排序,这样的话二维问题变成序列问题. ...
- Educational Codeforces Round 55 题解
题解 CF1082A [Vasya and Book] 史上最难A题,没有之一 从题意可以看出,翻到目标页只有三种办法 先从\(x\)到\(1\),再从\(1\)到\(y\) 先从\(x\)到\(n\ ...
- Codeforces Round #324 (Div. 2) C. Marina and Vasya 贪心
C. Marina and Vasya Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/584/pr ...
随机推荐
- nacos的简单使用
1.根据自身情况下载稳定版本:https://github.com/alibaba/nacos/releases2.安装:zip包 cmd运行: 8848端口cmd startup.cmd3.登录名密 ...
- CF187D BRT Contract
考虑如果哪次经过了红灯则显然已经和出发的时间没关系了. 然后我们需要做的是怎么样找到最近的一个是红灯的点. 然后实际下是我们做一个前缀和:\(L_i = \sum d_i\) 然后求\(\min (L ...
- 解决 VS Code 无法使用Ctrl+C等快捷键
背景 VScode 安装 Vim扩展后,无法使用Ctrl+C,Ctrl+X和 Ctrl+V等热键 解决方案 方案一 停用Vim 热键覆盖 # 原因: vim 扩展默认启用Vim ctrl键覆盖常见的V ...
- windows下typora图片自动上传到图床(附带腾讯云教程)
目录 1. 背景 2. 在Typora中使用 3. 安装 3.1 安装教程环境说明 3.2 安装步骤 3.3 配置图床 3.3.1 插件配置 3.3.2 腾讯云参数获取 3.3.2.1 新建子用户,获 ...
- 在Linux下搭建nRF51822的开发烧写环境(makefile版)
http://www.qingpingshan.com/m/view.php?aid=394836
- 9. Delete Node in a Linked List
Write a function to delete a node (except the tail) in a singly linked list, given only access to th ...
- Scrapy-Splash的安装和使用
Scrapy-Splash是一个Scrapy中支持JavaScript渲染的工具. Scrapy-Splash的安装分为两部分.一个是Splash服务的安装,具体是通过Docker,安装之后,会启动一 ...
- CAS简介
概念 CAS(Compare And Swap 比较并交换),是 乐观锁 的一种典型实现机制. 乐观锁主要的两个步骤:冲突检测.数据更新. 当多个线程尝试使用CAS同时更新通过一个变量的时候,只有一个 ...
- 【模板】二分图最大匹配(匈牙利算法)/洛谷P3386
题目链接 https://www.luogu.com.cn/problem/P3386 题目大意 给定一个二分图,其左部点的个数为 \(n\),右部点的个数为 \(m\),边数为 \(e\),求其最大 ...
- javaWeb - 3 — JSP (技术已淘汰)— 更新完毕
1.jsp 在servlet中说过java中前端到后台有两条路线嘛 后台 <------ ajax.json <--------- 前端 后台 <------ jsp( EL.JST ...