2017年“嘉杰信息杯” 中国大学生程序设计竞赛全国邀请赛 Strange Optimization
Strange Optimization |
||
Accepted : 89 | Submit : 350 | |
Time Limit : 1000 MS | Memory Limit : 65536 KB |
Strange OptimizationBobo 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,j∈Z|i/n−j/m+t| . Help him! Note: It can be proved that the result is always rational. InputThe input contains zero or more test cases and is terminated by end-of-file. Each test case contains two integers n,m .
OutputFor each case, output a fraction p/q which denotes the result. Sample Input1 1 1 2 Sample Output1/2 1/4 NoteFor 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",n/__gcd(n,m)*m*2); 16 } 17 } 18 return 0; 19 }