Kai’blog

主博客 | 势利纷华,近之而不染者洁,不近者亦洁,君子不立危墙之下。

CF1978C-rk1300-1.5h

一道构造题,我的做法似乎思维复杂度上远高于答案的做法,因而不是什么好做法,但幸好我最后还是调出来了,另外就是会爆ll...下意识写int的我根本想不起来用ll啊,看来不得不define int long long了

Code

#include <iostream>#include <cstring>#include <string>#include <cstdio>#include <algorithm>#include <cmath>#include <vector>#include <map>#include <set>#include <queue>#include <stack>#include <list>#define int long longusing namespace std; int n,m,k,fk; void change(int rest_k,int pos){	if(pos>n/2&&rest_k>0)	{		cout<<"NO"<<endl;		return;	}	if(rest_k-(n-pos-(pos-1))>0)change(rest_k-(n-pos-(pos-1)),pos+1);	else	{		//int p=1,ans=0;		cout<<"YES"<<endl;		if(rest_k>=1)		{			rest_k+=pos-1;			for(int i=pos+1;i<=pos+1+rest_k-1;i++)				cout<<i<<' ';//,ans+=abs(i-p),p++;			cout<<pos<<' ';//,ans+=abs(pos-p),p++;			for(int i=pos+1+rest_k;i<=n;i++)				cout<<i<<' ';//,ans+=abs(i-p),p++;		}		else		{			for(int i=pos;i<=n;i++)				cout<<i<<' ';//,ans+=abs(i-p),p++;		}		for(int i=pos-1;i>=1;i--)			cout<<i<<' ';//,ans+=abs(i-p),p++;		cout<<endl;//cout<<ans<<endl;if(ans!=fk)cout<<"error"<<endl;	}} void solution(){	cin>>n>>k;	if(k%2==1)cout<<"NO"<<endl;	else	{		fk=k;		k/=2;		change(k,1);	}} signed main(){	ios::sync_with_stdio(0);	cin.tie(0);cout.tie(0);	int T;	cin>>T;	while(T--)		solution();	return 0;} 
posted @   Kai-G  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
Copyright © 2019-2020 拱垲. All rights reserved.
点击右上角即可分享
微信分享提示