ysg 一道简单的数论题
先声明一点,这个题从一套模拟题中选取出来,所以可能会冒犯到原出题人。请谅解
题干:
ysg,yxy,azw 三人正在刷题。
他们每做一题的时间都是一个有理数。
如果在某一时刻,三人同时做完一道 题,那么,他们会开始谈笑风生。
现在,他们想知道,从时刻 0 开始,至少要等多久才能谈笑风生。
输入格式
一行 6 个整数 a1,b1,a2,b2,a3,b3,其中 ysg 每做一道题的时间是 a1/b1,yxy 是 a2/b2,azw 是 a3/b3。不保证 a,b 互质。
输出格式
一行 2 个数 c,d,表示第一次谈笑风生是在时刻 c/d。其中 c,d 互质。
输入样例 3 6 4 5 3 1
输出样例 12 1
这个题一看上去便是gcd和数论一套瞎搞。
可是它的格式有点难搞,其输入输出格式都是分数,所以不能一开始就化为小数(几乎所有的设计小数的题都不能直接化为小数),还有一点见到分数要直接约分,以免爆long long
闲话不多说,我们来看看这道题,我们可以先把题意简化一下就是三人在哪一时刻他们所做的题都是个整数。
很明显,题目的样例意思就是a1时间内做了b1道题,a2时间内做了b2道题,a3时间内做了b3道题。
我们就要先使通分一下,使分母都相同,这样很明显此时在做题都相同的情况下,时间是不同的,我们再求出在当前分数下,最早什么时间相同时
再把相同的时间和相同做的题约分就得到了结果。
代码:
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int a1,b1,a2,b2,a3,b3;
inline int gcd(int x,int y){
if(y>x) swap(x,y);
if(y==) return x;
return gcd(y,x%y);
}
inline void huajian(int &x,int &y){
int g=gcd(x,y);
x/=g; y/=g;
}
inline int get_lcm(int a,int b,int c){
int l1=a*b/gcd(a,b);
return l1*c/gcd(l1,c);
}
int main()
{
freopen("ysg.in","r",stdin);
freopen("ysg.out","w",stdout);
scanf("%d%d%d%d%d%d",&a1,&b1,&a2,&b2,&a3,&b3);
huajian(a1,b1);
huajian(a2,b2);
huajian(a3,b3);
int lcm1=get_lcm(b1,b2,b3);
int lcm2=get_lcm(a1*lcm1/b1,a2*lcm1/b2,a3*lcm1/b3);
huajian(lcm1,lcm2);
printf("%d %d\n",lcm2,lcm1);
fclose(stdin); fclose(stdout);
return ;
}
ysg 一道简单的数论题的更多相关文章
- 【正睿多校联盟Day4 T4 简单的数论题】
题目名有毒 由于并没有系统地开始学习数论,所以数论题基本靠暴力. 然鹅本题的题解相当简单: emmm....我当你没说 一个简单易懂的方法是这样的: 1. 欧拉定理的推论 若正整数a,n互质,则对于任 ...
- A/B HDU-1576(简单的数论题)
Problem Description 要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1). Input 数据的第一 ...
- FJUT-这还是一道数论题
这还是一道数论题 TimeLimit:4000MS MemoryLimit:128MB 64-bit integer IO format:%lld Special Judge Problem D ...
- [BZOJ 3209]花神的数论题
一道简单的数位 dp 题 但是脑子里只有 __builtin_popcountll 了呢(自重) 看完题解后很快就理解了,而且有一种这么简单的题居然没想到做法真是不应该唉~的感觉 用 f[i] 表示 ...
- 又一道简单题&&Ladygod(两道思维水题)
Ladygod Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit S ...
- 14年安徽省赛数论题etc.
关于最大公约数的疑惑 题目描述 小光是个十分喜欢素数的人,有一天他在学习最大公约数的时候突然想到了一个问题,他想知道从1到n这n个整数中有多少对最大公约数为素数的(x,y),即有多少(x,y),gcd ...
- CSU 1785: 又一道简单题
1785: 又一道简单题 Submit Page Summary Time Limit: 5 Sec Memory Limit: 128 Mb Submitted: 602 ...
- 【数位DP】【P4317】花神的数论题
[数位DP][P4317]花神的数论题 Description 给定 \(n\),求 \(n\) 以内所有正整数二进制下 \(1\) 的个数的乘积,答案对 \(10^7 + 7\) 取模 Limita ...
- BZOJ 3209: 花神的数论题 [数位DP]
3209: 花神的数论题 题意:求\(1到n\le 10^{15}\)二进制1的个数的乘积,取模1e7+7 二进制最多50位,我们统计每种1的个数的数的个数,快速幂再乘起来就行了 裸数位DP..\(f ...
随机推荐
- developer的996,需要谁来拯救
不为996辩护,但向奋斗者致敬! 随着996.icu愈演愈烈,不仅是国际友人发文问候,连国内互联网的大佬都被卷进风波,整理下大致思路如下: 马云:因为有自己想要实现的目标,因为有奔头,所以我们努力工作 ...
- 并发连接MySQL
先吐槽一下libmysqlclientAPI的设计, 多个线程同时去connect居然会core掉. 后来Google了一番, 才发现mysql_real_connect不是线程安全的, 需要一些额外 ...
- Javascript 小练习
--------------------------要收获别人五年才能收获的东西,你就要做好准备,遭受别人五人所遭受的坎坷” // -------------------------------*** ...
- mariadb(第一章)
数据库介绍 1.什么是数据库? 简单的说,数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织,存储的,我们可以通过数据库提供的多种方法来 ...
- PySpider框架的基本用法
pyspider安装: 3.7之后无法正常使用,使用可以下载Python3.6或以下,或者修改pyspider内部代码 ———————————————————————————————————————— ...
- UVA - 12716 - 异或序列
求满足GCD(a,b) = a XOR b; 其中1<=b <=a<=n. 首先做这道题需要知道几个定理: 异或:a XOR b = c 那么 a XOR c = b; 那么我们令G ...
- Oracle 创建外部表
Oracle 外部表能迅速的将海量的数据导入到数据库里面,外部表的创建使用步骤如下: 1 创建一个Directory:必须用sys用户创建,用户存放外部数据文件. create directory D ...
- PostgreSQL 安装了contrib 之后 登录失败的问题
1. 自己之前只是安装了 pg 10.6 2. 开发同事 需要用到 一个extensions 叫做 uuid-ossp 3. 执行报错 详情见昨天的blog 4. 然后执行了升级操作 结果 pg10 ...
- socket通信原理三次握手和四次握手详解
对TCP/IP.UDP.Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵.那么我想问: 1. 什么是TCP/IP.UDP?2. Sock ...
- MySqlHelper的封装
其实MySqlHelper和SqlHelper是一样的,只是使用的驱动不一样而已. public class MySQLHelper { public static final String url ...