Problem Description
Here is no naked girl nor naked runners, but a naked problem: you are to find the K-th smallest element in the set of all irreducible fractions p/q,with 0<p<q<=N.
Input
The first line of input is an integer T(T<=1000), indicating there are T cases.
For each cases, there is one line with two positive integers N and K(1<=K<N<=100000).
Output
For each case, output one line containing the answer.
Sample Input
4
5 1
5 2
5 3
5 4
Sample Output
1/5
1/4
1/3
2/5
//题解:???
//标程:
#include<iostream>
#include<cstdio>
using namespace std;
const int size = 1000010;
int a1[size],a2[size],b1[size],b2[size],s[size];
int main()
{
// freopen("a.txt","r",stdin);
int t, n, k, a, b;
cin >> t;
while(t --)
{
cin >> n >> k;
a1[0] = s[0] = 0;
b1[0] = a2[0] = b2[0] = 1;
int i = 0;
while(1)
{
// printf("i = %d a1 = %d b1 = %d a2 = %d b2 = %d\n",i,a1[i],b1[i],a2[i],b2[i]);
a = a1[i] + b1[i];
b = a2[i] + b2[i];
printf("a = %d, b = %d\n",a,b);
if(b > n) i --;
else if(s[i] == 0)
{
a1[i + 1] = a1[i];
a2[i + 1] = a2[i];
b1[i + 1] = a;
b2[i + 1] = b;
// printf("i = %d a1 = %d a2= %d b1 = %d b2 = %d\n",i,a1[i+1],a2[i+1],b1[i+1],b2[i+1]);
s[i] ++;
i ++;
s[i] = 0;
}
else
{
k --;
if(k == 0) break;
a1[i] = a;
a2[i] = b;
// printf("i = %d a1 = %d a2 = %d\n",i,a1[i],a2[i]);
s[i] = 0;
}
}
printf("%d/%d\n",a,b);
}
return 0;
}
裸题
最新推荐文章于 2024-04-29 23:36:06 发布