hdu(1276)士兵队列训练问题
2013-08-19 15:47
281 查看
题意很清楚,但要注意一点,就是判断for循环结束的条件是:
就在在这一轮报完之后,m==3,即可结束。。
#include"stdio.h"
#include"string.h"
int main()
{
int n,m,k,i,s,t;
int a[6000];
scanf("%d",&k);
while(k--)
{
scanf("%d",&n);
for(i=1;i<=n;i++)
a[i]=1;
m=n;
while(m>3)
{
s=0;
for(i=1;i<=n;i++)
{
if(a[i]==1)
{ s++;
if(s==2)
{
a[i]=0;
s=0;
m--;
}
}
}
if(m==3)//判段结束的条件要放在外边。。因为每一轮都要报完。。就在这错了几次。。
break;
t=0;
for(i=1;i<=n;i++)
{
if(a[i]==1)
{ t++;
if(t==3)
{
a[i]=0;
t=0;
m--;
}
}
}
}
for(i=1;i<=n;i++)
if(a[i])
{
printf("%d",i);a[i]=0;
break;
}
for(i=1;i<=n;i++)
if(a[i])
printf(" %d",i);
printf("\n");
}
return 0;
}
就在在这一轮报完之后,m==3,即可结束。。
#include"stdio.h"
#include"string.h"
int main()
{
int n,m,k,i,s,t;
int a[6000];
scanf("%d",&k);
while(k--)
{
scanf("%d",&n);
for(i=1;i<=n;i++)
a[i]=1;
m=n;
while(m>3)
{
s=0;
for(i=1;i<=n;i++)
{
if(a[i]==1)
{ s++;
if(s==2)
{
a[i]=0;
s=0;
m--;
}
}
}
if(m==3)//判段结束的条件要放在外边。。因为每一轮都要报完。。就在这错了几次。。
break;
t=0;
for(i=1;i<=n;i++)
{
if(a[i]==1)
{ t++;
if(t==3)
{
a[i]=0;
t=0;
m--;
}
}
}
}
for(i=1;i<=n;i++)
if(a[i])
{
printf("%d",i);a[i]=0;
break;
}
for(i=1;i<=n;i++)
if(a[i])
printf(" %d",i);
printf("\n");
}
return 0;
}
相关文章推荐
- ACM学习历程—HDU 1276 士兵队列训练问题(队列)
- hdu 1276 士兵队列训练问题
- HDU-1276 士兵队列训练问题
- hdu_1276 士兵队列训练问题
- hdu,1276,士兵队列训练问题
- hdu 1276 士兵队列训练问题(队列)
- hdu1276士兵队列训练问题(简单队列)
- HDU 1276 士兵队列训练问题
- HDU 1276 士兵队列训练问题
- HDU 1276 士兵队列训练问题
- HDU 1276 士兵队列训练问题(队列)
- 士兵队列训练问题http://acm.hdu.edu.cn/showproblem.php?pid=1276
- hdu 1276 士兵队列训练问题(STL的list)
- hdu 1276 士兵队列训练问题(水题)
- 士兵队列训练问题(HDU 1276)
- HDU 1276 士兵队列训练问题
- HDU 1276 士兵队列训练问题
- hdu 1276 士兵队列训练问题
- HDU 1276 士兵队列训练问题 【模拟】
- hdu 1276 士兵队列训练问题