CF1077A Frog Jumping 题解
Content
在一个数轴上有一个动点,初始时在 \(0\) 这个位置上,接下来有若干次操作,对于第 \(i\) 次操作:
- 如果 \(i\) 是奇数,那么动点往右移 \(a\) 个单位。
- 如果 \(i\) 是偶数,那么动点往左移 \(b\) 个单位。
现在有 \(t\) 次询问,每次给定 \(a,b,k\) 三个数(其中 \(a,b\) 含义如上所述),求经过 \(k\) 次操作后动点所在的位置。
数据范围:\(1\leqslant t\leqslant 10^3,1\leqslant a,b,k\leqslant 10^9\)。
Solution
这道题目如果用暴力的话显然爆炸,所以我们来看有什么规律。自己画个数轴,跑几下之后就发现:如果操作的次数 \(k\) 是偶数,那么有 \(\dfrac{k}{2}\) 次交替向右移和向左移的操作,答案就是 \(\dfrac{k(a-b)}{2}\)。 那么奇数次也就就很简单了,相当于在偶数次的基础上再往右移一次,那么答案就是 \(\left\lfloor\dfrac{k}{2}\right\rfloor(a-b)+a\)。
注意如果直接相乘的话答案会很大,要开 \(\texttt{long long}\)。建议开变量的时候直接将 \(a,b,k\) 开成 \(\texttt{long long}\) 类型的,这样可以省去强制转化这个部分。
Code
int t;
int main() {
getint(t);
while(t--) {
ll a, b, k, ans;
getll(a), getll(b), getll(k);
if(k % 2) ans = a * (k / 2 + 1) - b * (k / 2);
else ans = a * k / 2 - b * k / 2;
writell(ans);
putchar('\n');
}
return 0;
}
CF1077A Frog Jumping 题解的更多相关文章
- CF1146D Frog Jumping
CF1146D Frog Jumping 洛谷评测传送门 题目描述 A frog is initially at position 00 on the number line. The frog ha ...
- CodeForces Round #521 (Div.3) A. Frog Jumping
http://codeforces.com/contest/1077/problem/A A frog is currently at the point 00 on a coordinate axi ...
- CF1324C Frog Jumps 题解
原题链接 简要题意: 现在河面上有 \(n+2\) 块石头,编号 \(0\) 到 \(n+1\),\(1\)~\(n\) 块石头每块上有一个方向,如果是 \(L\),那么青蛙到这块石头上之后只能往左跳 ...
- [CF1146D]Frog Jumping_exgcd_堆优化dij
Frog Jumping 题目链接:http://codeforces.com/contest/1146/problem/D 数据范围:略. 题解: 首先发现,如果$x\ge a +b$,那么所有的$ ...
- CodeForces Round 521 div3
A:Frog Jumping 代码: #include<bits/stdc++.h> using namespace std; #define Fopen freopen("_i ...
- Codeforces Forethought Future Cup Elimination Round 选做
1146C Tree Diameter 题意 交互题.有一棵 \(n(n\le 100)\) 个点的树,你可以进行不超过 \(9\) 次询问,每次询问两个点集中两个不在同一点集的点的最大距离.求树的直 ...
- 【CF1146】Forethought Future Cup - Elimination Round
Forethought Future Cup - Elimination Round 窝也不知道这是个啥比赛QwQ A. Love "A" 给你一个串,你可以删去若干个元素,使得最 ...
- XVIII Open Cup named after E.V. Pankratiev. Ukrainian Grand Prix
A. Accommodation Plan 对于已知的$K$个点,离它们距离都不超过$L$的点在树上是一个连通块,考虑在每种方案对应的离$1$最近的点统计. 即对于每个点$x$,统计离它距离不超过$L ...
- 杭州集训Day4
别问我为什么没有前三天,有时间再补~ 60+60+50=170. T1 . 坐等 memset0 ( 1s 256MB )( 原题:洛谷CF1151E Number of Components ) 树 ...
随机推荐
- bsp工程管理
1. bsp工程管理的目的 模块化项目,使得项目清晰 2. 代码 拷贝原来工程 创建文件夹 bsp就是工程驱动文件 imx6ull是和芯片有关的文件 obj是生成文件的文件夹 project 工程文件 ...
- WebRTC从摄像头获取图片传入canvas
WebRTC从摄像头获取图片传入canvas 前面我们已经能够利用WebRTC的功能,通过浏览器打开摄像头,并把预览的图像显示在video元素中. 接下来我们尝试从视频中截取某一帧,显示在界面上. h ...
- MYSQL权限全解
• All/All Privileges权限代表全局或者全数据库对象级别的所有权限 • Alter权限代表允许修改表结构的权限,但必须要求有create和insert权限配合.如果是rename表名, ...
- Docker实用命令介绍
Docker实用命令介绍 1. docker启动.关闭.停止 ╭─wil-xz in ~ 12:15:44 ╰─٩(ŏ﹏ŏ.)۶ service docker restart Redirecting ...
- Django创建多对多表关系的三种方式
方式一:全自动(不推荐) 优点:django orm会自动创建第三张表 缺点:只会创建两个表的关系字段,不会再额外添加字段,可扩展性差 class Book(models.Model): # ... ...
- Scrapy-Redis的安装和使用
Scrapy-Redis是Scrapy的分布式扩展模块,有了它,我们就可以方便地实现Scrapy分布式爬虫的搭建.GitHub:https://github.com/rmax/scrapy-redis ...
- day11 四层负载均衡和http协议
day11 四层负载均衡和http协议 四层负载均衡和七层负载均衡的区别 四层和七层负载均衡的区别 四层负载均衡数据包在底层就进行了分发,而七层负载均衡数据包则是在最顶层进行分发.由此可以看出,七层负 ...
- Linux之sftp服务
Linux之sftp服务 一.sftp介绍转自:[1]Linux如何开启SFTP https://www.cnblogs.com/xuliangxing/p/7120205.htmlSFTP是Secu ...
- 接口测试 python+PyCharm 环境搭建
1.配置Python环境变量 a:我的电脑->属性->高级系统设置->环境变量->系统变量中的PATH变量. 变量名:PATH 修改变量值为:;C:\Python27 ...
- windows 查看端口被占用,解除占用
查看 (列举端口为2688) netstat -ano | findstr "2688" 解除 原文地址