2017年“嘉杰信息杯” 中国大学生程序设计竞赛全国邀请赛 Strange Optimization

Strange Optimization

Accepted : 89   Submit : 350
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(1/2+α) is maximized, where f(t)=mini,jZ|i/nj/m+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 .

  • 1n,m109
  • 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.

解法:猜的结论...

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 #define ll long long
 4 int main()
 5 {
 6     ll n,m;
 7     while(cin>>n>>m)
 8     {
 9         if(n==m)
10         {
11             cout<<"1/2"<<endl;
12         }
13         else
14         {
15             printf("1/%lld
",n/__gcd(n,m)*m*2);
16         }
17     }
18     return 0;
19 }
原文地址:https://www.cnblogs.com/yinghualuowu/p/6875498.html