求助,死循环!
查看原帖
求助,死循环!
856326
Cubexyyy001楼主2023/10/30 20:15

代码:

#include<bits/stdc++.h>
using namespace std;
int a[1001],n;
int hsg(int x)//求坏人是否死光的函数 
{
	for(int i=x;i<=(x-1)*2;i++)if(a[i]!=-1)return false;
	return true;
}
int ysf(int x)
{
	int l=x;
	while(1)
	{
		a[l]=-1;//死亡位置标记为-1 
		if(l%(n*2)<=n)return false;//死的是好人就直接返回false 
		for(int i=1;i<=x;i+=(a[i]!=-1))
		{
			//if(a[i]!=-1)i++;
			l++;
		}
		l%=(n*2);//防止位置超出人数 
		if(hsg(n/2+1)==true)return true;//如果坏人死光就返回true 
	}
}
int main()
{
	cin>>n;
	for(int i=n/2+1;;i++)//从坏人开始的第一个位置循环 
	{
		if(ysf(i)== true)//函数求以i做m是否能在第一个好人die之前干掉所有坏人 
		{
			cout<<i;
			return 0;
		}
	}
 	return 0;
}

就硬卡着,啥也不输,猜测不是超时而是死循环

2023/10/30 20:15
加载中...