Strange Optimization

Accepted : 67   Submit : 289
Time Limit : 1000 MS   Memory Limit : 65536 KB

Strange Optimization

Bobo is facing a strange optimization problem. Given n,m , he is going to find a real number α such that f(12+α) is maximized, where f(t)=mini,j∈Z|in−jm+t| . Help him!

Note: It can be proved that the result is always rational.

Input

The input contains zero or more test cases and is terminated by end-of-file.

Each test case contains two integers n,m .

  • 1≤n,m≤109
  • The number of tests cases does not exceed 104 .

Output

For each case, output a fraction p/q which denotes the result.

Sample Input

1 1
1 2

Sample Output

1/2
1/4

Note

For the first sample, α=0 maximizes the function

//题意还是很好懂的,只要明白扩展欧几里得原理,这题很简单,i/n - j/m 可以化为 ( mi - nj ) / ( n * m )

因为 i,j 为整数所以等于  k*gcd(n,m)/(n*m)

所以 f(t)的最大值为 1 / ( Lcm(n,m)*2 )

 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <string.h>
 4 #include <algorithm>
 5 using namespace std;
 6 #define LL long long
 7
 8 LL gcd(LL a,LL b)
 9 {
10     return b==0?a:gcd(b,a%b);
11 }
12
13 int main()
14 {
15     LL n,m;
16     while (scanf("%I64d%I64d",&n,&m)!=EOF)
17     {
18         LL p = gcd(n,m);
19         LL q = n*m*2;
20         LL yue = gcd(p,q);
21         printf("%I64d/%I64d\n",p/yue,q/yue);
22     }
23     return 0;
24 }

View Code

转载于:https://www.cnblogs.com/haoabcd2010/p/6861733.html

Strange Optimization(扩展欧几里得)相关推荐

  1. 扩展欧几里得 POJ 1061

    感觉这道题目的数据好水啊...我的代码我都觉得姿势特别奇怪...竟然还过了... 好吧,原来不是姿势奇怪,而是逆元需要用的时候是余数也需要的时候,这里的余数是不需要的,所以就AC了 就说一下碰到的问题 ...

  2. 求逆元(线性求逆元)及其扩展欧几里得

    线性求逆元模板: int inv[maxn]; void initInverse(){inv[1] = 1;for(int i = 2; i <= maxn; i++)inv[i] = (p - ...

  3. poj-青蛙的约会(扩展欧几里得)nyoj-小柯的约会

    由题意可列出方程 x + m * s - (y + n * s) = k * l; 化简得   (n-m)*s + k*l = x - y 化简得   (n-m)*s = x - y (mod l); ...

  4. [模板]欧几里得算法/扩展欧几里得

    最大公因数(欧几里得算法) $gcd(a,b)=gcd(b\%a,a)$(不一定需要a<b) $gcd(0,b)=b$ 1 inline int gcd(int a,int b){ 2 retu ...

  5. “景驰科技杯”2018年华南理工大学程序设计竞赛 H-对称与反对称(扩展欧几里得求逆元)

    题目链接 题目描述: 给出一个N*N的方阵A.构造方阵B,C: 使得A = B + C.其中 B为对称矩阵,C为反对称矩阵. 对于方阵S中的任意元素,若(S)ij = (S)ji,则称S为对称矩阵 对 ...

  6. CodeForces - 724C Ray Tracing(扩展欧几里得解方程)

    题目链接:点击查看 题目大意:在 n∗mn*mn∗m 的矩阵中,从点 (0,0)(0,0)(0,0) 发射一个小球,以四十五度的方向出发,速度是 2\sqrt{2}2​,当碰到壁时,会进行反射:当碰到 ...

  7. 牛客多校3 - Fraction Construction Problem(扩展欧几里得)

    题目链接:点击查看 题目大意:给出 a 和 b ,求解满足条件的 c,d,e,f ,使得: d < b f < b c,e 均为小于等于 4e12 的正整数 题目分析:分情况讨论一下,首先 ...

  8. POJ - 1061 青蛙的约会(扩展欧几里得)

    题目链接:点击查看 题目大意:两只青蛙在一个单向循环数轴上跳动,给出初始位置和每秒跳动的距离以及数轴长度,问是否可以相遇,若能相遇求出最小时间 题目分析:自从第一次接触扩展欧几里得以来已经有半年时间了 ...

  9. POJ - 2142 The Balance(扩展欧几里得)

    题目链接:点击查看 题目大意:给出两种重量的砝码,我们需要利用天平称出指定重量的药物,我们需要求出这两种砝码各自的数量,使得砝码数量之和最小 题目分析:我们可以先列出关系式,假设两个砝码的重量分别为a ...

最新文章

  1. 三维曲面matlab程序,用matlab画三维曲面图 - 程序语言 - 小木虫 - 学术 科研 互动社区...
  2. graphcool-framework 一个基于graphql的后端开发框架
  3. mysql case break_按月转移日志表中日志时,mysql总是报‘MySQL server has gone away’这样的错!...
  4. mysql查询数据库desc_数据库查询DESC
  5. 机器学习教会我们的六件事
  6. HADOOP_MAPRED_ROOT_LOGGER has been replaced by HADOOP_ROOT_LOGGER
  7. Linux命令 — 设置或查看网络配置命令ifconfig
  8. [html] 请问60*80的canvas占多少内存?你是怎么计算的?
  9. 数学也浪漫 数学的几句贴心话
  10. CCF201612-2 工资计算(100分)
  11. Effective C++(9) 构造函数调用virtual函数会发生什么
  12. 关于-最佳的业务连续性容灾架构设计
  13. Android自定义选座,Android实现电影院选座效果
  14. 深入浅出WPF笔记——属性
  15. ZJOI2018 Round2 被踩记被虐记
  16. WIN10 Wifi已连接无internet完美解决办法
  17. qtdesigner设计表格_Qt表格视图-简单表格
  18. import torchvision报错,UserWarning: Failed to load image Python extension: Could not find module ‘C:\U
  19. python量化选股策略 源码_【一点资讯】Python实现行业轮动量化选股【附完整源码】...
  20. Gate 7.2的安装与部署(一)

热门文章

  1. [转] Windows Server 2012 Beta Cluster (Hyper-V 3.0)-iSCSI篇
  2. 你被人工智能给忽悠了吗?原来我们曾经认为的都是假的
  3. PCA原理分析和意义(二)
  4. Mybatis的CRUD之XML方式以及动态SQL
  5. Android App 瘦身总结 第三章 代码混淆及优化
  6. loj10200. 「一本通 6.2 练习 3」Goldbach's Conjecture
  7. 017 包扫描器和标记注解
  8. 51Nod:活动安排问题之二(贪心)
  9. javaweb项目部署到tomcat之后java文件没有编译
  10. 216. Combination Sum III