求调
查看原帖
求调
1050431
DevilsFlame楼主2023/12/25 12:26

TLE,咋剪枝啊?(没学过专业剪枝,莫怪)

#include<bits/stdc++.h>
using namespace std;
int k,t,n;
int px(int x,int r,int m,int v){
	if(r>k&&v>k)
		return 0;
	if(x<0&&m<0)
		return 0;
	if(x-(k-r)>n&&m-(k-v)>n)
		return 0;
	if(x==n&&k==r||m==n&&v==k)
		return 1;
	if(px(x-1,r+1,x*2,r+1)==1)
		return 1;
	else
		if(px(m*2,v+1,m-1,v+1)==1)
			return 1;
	return 0;
}
int main(){
	cin>>t;
	while(t--){
		cin>>k>>n;
		if(pow(2,k)<n){
			cout<<"No"<<endl;
			continue;
		}
		if(px(1,0,2,1)==1){
			cout<<"Yes"<<endl;
		}
		else cout<<"No"<<endl;
	}
	return 0;
}
2023/12/25 12:26
加载中...