uva 10673 Play with Floor and Ceil 数学

题目:

C - Play with Floor and Ceil
Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu

x = p  xk  + q  xk

 

It's a fairly easy task to prove this theorem, so we'd not ask you to do that. We'd ask for something even easier! Given the values of x and k, you'd only need to nd integers p and q that satis es the given equation.

 

Input

 

The rst line of the input contains an integer, T (1 T 1000) that gives you the number of test cases. In each of the following T lines youd be given two positive integers x and k. You can safely assume that x and k will always be less than 108.

 

Output

 

For each of the test cases print two integers: p and q in one line. These two integers are to be separated by a single space. If there are multiple pairs of p and q that satisfy the equation, any one would do. But to help us keep our task simple, please make sure that the values,

 

p

x

 

and

q

x

 

 

 

 

k

k

t in a 64 bit signed integer.

 

Sample Input

 

3

 

5 2

 

40 2

 

24444 6

 

Sample Output

 

1 1

 

1 1

0 6

题目大意:

给x和k两个值求 p 和q两个整数使得x=p*x/k(下限)+q*x/k(上限)成立  

题目思路:

做数学题要先化解,尽可能减少变量,否则直接暴力为o(n^2)

题目求解:

假设x/k(下限)为dx  上限为 ux

原式 x*k=p*dx+q*(dx+ux-dx)

x*k=(p+q)*dx+(ux-dx)*q

假设p+q==k    

(x-dx)*k=(ux-dx)*q

化解为只有一个未知量

程序:

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    int ci;
    scanf("%d",&ci);
    while(ci--)
    {
        long long int x,k,x_low,x_high;
        scanf("%lld%lld",&x,&k);
            x_low=x/k*k;
            x_high=(x/k+1)*k;
            int n=(x-x_low)*k/(x_high-x_low);
            printf("%d",k-n);
            printf(" %d\n",n);
    }
    return 0;
}










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值