过不了测试数据是什么情况?
  • 板块P11463 N角进攻
  • 楼主blodman
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/12/25 12:02
  • 上次更新2024/12/25 19:06:34
查看原帖
过不了测试数据是什么情况?
828259
blodman楼主2024/12/25 12:02
#include <bits/stdc++.h>
using namespace std;

int T;						//T组数据 
int n,x,k;					//每一组n名球员,x方向,k次传球
deque<int> dlh;				//dlh存储左边一半球员位置 
deque<int> drh;				//drh存储右边一半球员位置
int mid;					//mid存储中间球员编号 

int main(){
	cin>>T;
	while(T){
		//输入n、x、k,并构造2个队列 
		cin>>n>>x>>k;
		mid=(n+1)>>1;
		for(int i=1;i<mid;i++){
			dlh.push_back(i);
			drh.push_back(i+mid);
		}
		k=k%(n<<1);			//n=7,k=14时,k次传球位置保持初始状态。k=1和k=15结果是一致的 
		//计算k次 
		while(k){
			if(x==0){		//mid入dlh队列队头,队尾进入mid 
				dlh.push_front(mid);
				mid=dlh.back();
				dlh.pop_back();
				x=1; 		//转方向 
			}
			else{			//mid入drh队队尾,队头入mid 
				drh.push_back(mid);
				mid=drh.front();
				drh.pop_front();
				x=0;		//转方向 
			}
			k--;	
		}
		//先输出dlh,再输出mid,最后输出drh 
		while(!dlh.empty()){
			cout<<dlh.front()<<" ";
			dlh.pop_front();
		}
		cout<<mid<<" ";
		while(!drh.empty()){
			cout<<drh.front()<<" ";
			drh.pop_front();
		}
		cout<<endl;
		//T--,不为0就继续循环 
		T--;
	}
	return 0;
}
 

2024/12/25 12:02
加载中...