HDU-5924:Mr. Frog’s Problem(不等式变换)

来源:互联网 发布:不要网络的指尖帝国 编辑:程序博客网 时间:2024/06/01 10:38

Mr. Frog’s Problem

                                                                        Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
                                                                                               Total Submission(s): 1506    Accepted Submission(s): 871


Problem Description
One day, you, a clever boy, feel bored in your math class, and then fall asleep without your control. In your dream, you meet Mr. Frog, an elder man. He has a problem for you.

He gives you two positive integers A and B, and your task is to find all pairs of integers (C, D), such that ACB,ADB and AB+BACD+DC
 

Input
first line contains only one integer T (T125), which indicates the number of test cases. Each test case contains two integers A and B (1AB1018).
 

Output
For each test case, first output one line "Case #x:", where x is the case number (starting from 1). 

Then in a new line, print an integer s indicating the number of pairs you find.

In each of the following s lines, print a pair of integers C and D. pairs should be sorted by C, and then by D in ascending order.
 

Sample Input
210 109 27
 

Sample Output
Case #1:110 10Case #2:29 2727 9

思路:把上面那个等式化简去掉分母后得(B*C-A*D)*(A*C-B*D)>=0。即B/A>=D/C且A/B>=D/C。

#include<bits/stdc++.h>using namespace std;int main(){    long long A,B;    int T,cas=1;cin>>T;    while(T--)    {        scanf("%lld%lld",&A,&B);        printf("Case #%d:\n",cas++);        if(A==B)printf("1\n%lld %lld\n",A,B);        else printf("2\n%lld %lld\n%lld %lld\n",A,B,B,A);    }    return 0;}



BA
原创粉丝点击