2019 年百度之星·程序设计大赛 - 初赛三(解题报告)

最短路 1
Problem Description
有一张 nn 个点的完全无向图,点的标号是 1…n1…n,其中边 (i,j)(i,j) 的长度是 ixorji xor j,现在你需要求出点 11 到点 nn 的最短路的长度。

Input
第一行一个正整数 TT 表示数据组数 1\leq T\leq 1001≤T≤100

对于每组数据:第一行一个正整数 nn 表示点数 (2\leq n\leq 10^5)(2≤n≤10
​5
​​ )

Output
输出 TT 行,每行一个整数表示点 11 到点 nn 的最短路

Sample Input
1
3
Sample Output
2
这道题就是一道很水的题,如果用最常规的dijkstra算法的话,这道题的内存限制过不了,因此,我就在打完dijkstra之后,。输入一些样例之后发现了这个规律,就把这道题AC了。要想用dijkstra做的话也可以,就是得用邻接表来做。

#include
int main(){
	int T,i,j,n;
	scanf("%d",&T);
	while(T--){
		scanf("%d",&n);
		if(n%2==1)
			printf("%d\n",n-1);
		else
			printf("%d\n",n+1);
	}
	return 0;
}

你可能感兴趣的:(竞赛题)