Gym

(Gym.cpp/c/pas)

题目描述 Description

木吉终于到达了 VAN 様的老巢 gym,然而他已经是孤身一人。他决定和 VAN 様来一场对决。他决定和 VAN 様玩♂跑♂步。已知跑道长\(l\)米,而木吉一步能跑且只能跑\(n\)米,VAN様一步能跑且只能跑\(m\)米。现在规定选手不能跑出\(k\)米。而谁最后跑得远谁就赢了。出于公平起见,\(k\)是一个$1 \(到\)l$之间完全随机的正整数。现在木吉想要知道,自己和 VAN 様打成平局的概率是多少。

输入描述 (gym.in) Input Description

第一行为三个整数,依次为\(l,n,m\);

输出描述 (gym.out) Output Description

一个约分后的真分数,格式为a/b,为木吉和 VAN 様打成平局的概率

样例输入 Sample Input

10 3 2

样例输出 Sample Output

3/10

样例解释 Sample Interpretation

当$ k $为$1,6,7 $时,木吉会和 VAN 様打成平局

数据范围 Data Size

对于 30%的数据,\(n,m,l\le 10^6\)

对于 100%的数据,\(n,m,l\le 5\times {10}^{18}\)

题解

首先确定这是一道数论题,于是就往此方向想。

显然,木吉和 VAN 様打成平局的充要条件是:\(k\mod n=k\mod m\)。

不难发现,当\(n=m\)时,\(k\)显然成立。而上式会报错,于是需要特判一下:

if(n==m)
{
fout<<"1/1";
return 0;
}

然后继续开始愉快的推导……

将上式中\(k\)转化为带余除式,有\(k-t_1 n=k-t_2 m\),\(t_1 n=t_2 m\)。

设满足木吉和 VAN打成平局的\(k\)的总数为\(ans\)。

不难发现,当\(k=\infty\)时,木吉和 VAN首次相遇是在\([a,b]\)处。于是,当\(k<[a,b]\)时,\(ans=\min(m,n)\)(两个人都没有跨出一步)。

按照这个思路,我们发现两人在\([a,b]\)处与在起点处是等价的。于是我们就不难推出正解。

毒瘤的是\([a,b]\)unsigned long long竟存不下……于是在必要情况下必须用long double

代码

#include <fstream>
#include <algorithm> using namespace std; typedef long long LL; LL l,n,m; int main()
{
ifstream fin("gym.in");
ofstream fout("gym.out");
fin>>l>>n>>m;
if(n==m)
{
fout<<"1/1";
fin.close();
fout.close();
return 0;
}
LL t=min(n,m);
LL ans=t-1;
if(ans>l)
{
fout<<"1/1";
fin.close();
fout.close();
return 0;
}
LL g=__gcd(m,n);
LL lcm=m/g*n;
if((long double)m/g*n<=(long double)l)
ans+=l/lcm*t;
LL tmp=__gcd(ans,l);
fout<<ans/tmp<<'/'<<l/tmp;
fin.close();
fout.close();
return 0;
}

20180418模拟赛T2——Gym的更多相关文章

  1. 模拟赛T2 交换 解题报告

    模拟赛T2 交换 解题报告 题目大意: 给定一个序列和若干个区间,每次从区间中选择两个数修改使字典序最小. \(n,m\) 同阶 \(10^6\) 2.1 算法 1 按照题意模拟,枚举交换位置并比较. ...

  2. 20161003 NOIP 模拟赛 T2 解题报告

    Weed duyege的电脑上面已经长草了,经过辨认上面有金坷垃的痕迹. 为了查出真相,duyege 准备修好电脑之后再进行一次金坷垃的模拟实验. 电脑上面有若干层金坷垃,每次只能在上面撒上一层高度为 ...

  3. NOIP欢乐模拟赛 T2 解题报告

    小澳的坐标系 (coordinate.cpp/c/pas) [题目描述] 小澳者表也,数学者景也,表动则景随矣. 小澳不喜欢数学,可数学却待小澳如初恋,小澳睡觉的时候也不放过. 小澳的梦境中出现了一个 ...

  4. 20180530模拟赛T2——绀碧之棺

    题目背景 qiancl 得到了一张藏宝图,上面写了一道谜题. 题目描述 定义\(F(n)\)为 n 在十进制下各个数位的平方和,求区间\([a,b]\)中有多少\(n\)满足\(k\times F(n ...

  5. 20180519模拟赛T2——pretty

    [问题描述] 小美今天对于数列很有兴趣.小美打算找出一些漂亮的序列.一个漂亮的序列的限制如下: 长度为 n ,而且数列里只包含 [1,n] 的整数. 要不是不降的序列就是不升的序列. 小美想知道有多少 ...

  6. 2019.11.11 模拟赛 T2 乘积求和

    昨天 ych 的膜你赛,这道题我 O ( n4 ) 暴力拿了 60 pts. 这道题的做法还挺妙的,我搞了将近一天呢qwq 题解 60 pts 根据题目给出的式子,四层 for 循环暴力枚举统计答案即 ...

  7. 5.12 省选模拟赛 T2 贪心 dp 搜索 差分

    LINK:T2 这题感觉很套路 但是不会写. 区间操作 显然直接使用dp不太行 直接爆搜也不太行复杂度太高. 容易想到差分 由于使得整个序列都为0 那么第一个数也要i差分前一个数 强行加一个0 然后 ...

  8. 20161023 NOIP 模拟赛 T2 解题报告

    Task 2.回文串计数 (calc.pas/calc.c/calc.cpp) [题目描述] 虽然是一名理科生,Mcx常常声称自己是一名真正的文科生.不知为何,他对于背诵总有一种莫名的热爱,这也促使他 ...

  9. 20161005 NOIP 模拟赛 T2 解题报告

    beautiful 2.1 题目描述 一个长度为 n 的序列,对于每个位置 i 的数 ai 都有一个优美值,其定义是:找到序列中最 长的一段 [l, r],满足 l ≤ i ≤ r,且 [l, r] ...

随机推荐

  1. [原创] C#编程规范工具介绍

    1.目标 代码编写规范.整齐.整洁.可读. 无错误 无警告 2.排版 安装PowerCommands扩展 “工具”-“扩展管理库”,搜索安装. 设置选中Format document on save和 ...

  2. C中关键字inline用法

    一.什么是内联函数 在C语言中,如果一些函数被频繁的调用,不断地用函数入栈,即函数栈,则会造成栈空间或者栈内存的大量消耗,为了解决这个问题,特别的引入了inline关键字,表示为内联函数.栈空间指的是 ...

  3. C# 实现Escape UnEscape方法(支持中文-转载)

    //Escape方法 public static string Escape(string s) { StringBuilder sb = new StringBuilder(); byte[] by ...

  4. 构造 + 离散数学、重言式 - POJ 3295 Tautology

    Tautology Description WFF 'N PROOF is a logic game played with dice. Each die has six faces represen ...

  5. 适配器(Adapter)模式

    适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. 适配器模式的一些其他名称:变压器模式.转换器模式.包装(Wrapper)模式.适 ...

  6. npm install 报错 error Unexpected end of JSON input while parsing near '...sShrinkwrap":false,"d' 解决办法

    npm install 报错 : error Unexpected end of JSON input while parsing near '...sShrinkwrap":false,& ...

  7. 单口 RAM、伪双口 RAM、真双口 RAM、单口 ROM、双口 ROM 到底有什么区别呢?

    打开 IP Catalog,搜索 Block Memory Generator,即可看到其 Memory Type 可分为 5 中,分别是单口 RAM(Single Port RAM).伪双口 RAM ...

  8. ansible超详细使用指南

    在工作中有用到ansible用于自动部署和环境配置,这里整理了一份很详尽的使用指南,如果有用到的可以看看.关于使用ansible自动部署一个网站和docker化,将在下一篇文章中介绍,敬请期待.文章内 ...

  9. Linux下搭建keepalive+nginx

    一. 安装nginx(略) 二. 安装keepalive 下载http://www.keepalived.org/download.html 安装依赖包 yum install –y popt* gc ...

  10. 全面了解Cookie

    一.Cookie的出现 浏览器和服务器之间的通信少不了HTTP协议,但是因为HTTP协议是无状态的,所以服务器并不知道上一次浏览器做了什么样的操作,这样严重阻碍了交互式Web应用程序的实现. 针对上述 ...