1 条题解

  • 0
    @ 2026-4-19 14:57:48

    构造的构造需要构造专门用来构造的构造做法:

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e5+10;
    signed main()
    {
    	int n,k;cin>>n>>k;
    	if(n>=3&&k>=2&&k<=n*2-2)
    	{
    		cout<<"Yes"<<'\n';
    		int pos=0;
    		for(int i=1;i<=n-3;i++)
    		{
    			pos++;
    			if(k==n*2-2&&pos>=k-2&&pos<k+2)pos=k+2;
    			else if(k!=n*2-2&&pos>=k-1&&pos<k+3)pos=k+3;
    			cout<<pos<<'\n';
    		}
    		if(k==n*2-2)
    			cout<<k-2<<'\n'<<k+1<<'\n'<<k<<'\n'<<k-1<<'\n';
    		else
    			cout<<k+2<<'\n'<<k-1<<'\n'<<k<<'\n'<<k+1<<'\n';
    		for(int i=1;i<=n-2;i++)
    		{
    			pos++;
    			if(k==n*2-2&&pos>=k-2&&pos<k+2)pos=k+2;
    			else if(k!=n*2-2&&pos>=k-1&&pos<k+3)pos=k+3;
    			cout<<pos<<'\n';
    		}
    		return 0;
    	}
    	if(n==2&&k==2)
    	{
    		cout<<"Yes"<<'\n';
    		for(int i=1;i<=3;i++)cout<<i<<'\n';
    		return 0;
    	}
    	cout<<"No";
    	return 0;
    }
    • 1

    信息

    ID
    8771
    时间
    2000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    9
    已通过
    3
    上传者