死亡游戏,问一把左轮枪,左轮有N个空间,其中用k发子弹,有p个问题,问抢第a[i]个空间有木有子弹,小明为了使自己被秒的概率最小,如何摆放子弹(游戏会一直继续知道有人挂掉),答案要按字典序显示。。。
分类思想吧
7 0 7(为了方便1-7顺序)
。。。。。。。
7 1 7
。。。。。。X
7 2 7
。。。。。XX
7 3 7
。。。X。XX
7 4 7
。X。X。XX
...
8 0 8
不写了,把情况都列一下,总结规律
View Code
#include<stdio.h>
int main()
{
__int64 n,k,p;
int i;
scanf("%I64d%I64d%I64d",&n,&k,&p);
__int64 temp;
if(k==0)
{
for(i=0;i<p;i++)
{
scanf("%I64d",&temp);
printf(".");
}
}
else if(n==k*2)
{
for(i=0;i<p;i++)
{
scanf("%I64d",&temp);
if(temp%2==0)printf("X");
else printf(".");
}
}
else if((n>k*2)&&(n%2==1))//特殊判断当n为奇数时
{
for(i=0;i<p;i++)
{
scanf("%I64d",&temp);
__int64 z;
z=n-temp;
if((z==0)||((k-1)*2>=z&&z%2==1))
printf("X");
else
printf(".");
}
}
else if(n>k*2)//n>k*2,n为偶数时
{
for(i=0;i<p;i++)
{
scanf("%I64d",&temp);
__int64 z;
z=n-temp+1;
if(z<=2*k&&z%2==1)
printf("X");
else
printf(".");
}
}
else//n<2*k
{
__int64 t,rr;
t=n-k;
rr=n-t*2;
for(i=0;i<p;i++)
{
scanf("%I64d",&temp);
__int64 z;
z=n-temp+1;
t=z-rr;
if((t<=0)||(t%2==1))
printf("X");
else printf(".");
}
}
printf("\n");
}