构造做题记录

\(\text{Problems}\)

\(\text{Problem}1\text{ ARC}200\text{D (}2405\text{)}\)

$\text{Solution}$
#define forUp(i,a,b) for(int i=(a);i<=(b);++i)
#define forUP(i,a,b) for(int i=(a);i<(b);++i)
int V,k;
void solve(){
	cin>>V>>k;
	if(k==2){
		if(V%2==0){
			cout<<"Yes\n";
			cout<<"2\n";
			cout<<0<<' '<<V/2<<'\n';
		}
		else cout<<"No\n";
	}
	else if(k==4){
		if(V%4==0){
			cout<<"Yes\n";
			cout<<"3\n";
			cout<<0<<' '<<V/4<<' '<<V/2<<'\n';
		}
		else cout<<"No\n";
	}
	else if(k==V){
		cout<<"Yes\n";
		cout<<V<<'\n';
		forUP(i,0,V)cout<<i<<' ';cout<<'\n';
	}
	else if(k%2==1){
		cout<<"Yes\n";
		cout<<(k+1)/2<<'\n';
		forUp(i,0,(k-1)/2)cout<<i<<' ';cout<<'\n';
	}
	else{
		cout<<"Yes\n";
		cout<<k/2<<'\n';
		cout<<0<<' ';forUp(i,2,k/2)cout<<i<<' ';cout<<'\n';
	}
}
posted @ 2025-11-10 10:01  LXcjh4998  阅读(4)  评论(0)    收藏  举报