⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cake share(farey递归造树).cpp

📁 杭电acm解题报告2001---2099.
💻 CPP
字号:
//PKU 3374 59896K 482MS 
#include <cstdio>
#include <string>
#include <algorithm>
using namespace std;
const int NMAX = 3000000;
const int MAX = 8000000;
int total;
int n,k;
bool flag;
int farey[2][MAX];

void make_farey_seq(int x1,int y1,int x2, int y2)
{
	if(x1+x2 > n || y1+y2 > n) return;
	make_farey_seq(x1, y1,x1+x2, y1+y2);
	total ++;
	farey[0][total] = x1+x2;
	farey[1][total] = y1+y2;
	make_farey_seq(x1+x2, y1+y2,x2,y2);
}

int main() {
	int t;
	scanf("%d %d", &n, &t);
	total = 1;
	farey[0][1] = 0;
	farey[1][1] = 1;
	make_farey_seq(0,1,1,1);
	farey[0][total+1] = 1;
	farey[1][total+1] = 1;
	total ++;

	while(t --) {
		scanf("%d", &k);
		if(k > total) puts("No Solution");
		else printf("%d/%d\n", farey[0][k], farey[1][k]);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -