[bzoj1704][Usaco2007 Mar]Face The Right Way 自动转身机_贪心

Face The Right Way 自动转身机 bzoj-1704 Usaco-2007 Mar

题目大意:不想描述题意系列++... ...题目链接

注释:略。


想法:我们直接枚举k,然后从左往右扫。

碰见的第一个亮的就把它后面的都变了

即可。

最后,附上丑陋的代码... ..

#include <cstdio>
#include <cstring>
int v[5001],r[5001];
char str[5];
int main()
{
	int n,k,minm=0x7fffffff,rev,flag,m;
	scanf("%d",&n);
	for(int i=1;i<=n;i++) scanf("%s",str),v[i]=(str[0]!='F');
	for(int i=1;i<=n;i++)
	{
		rev=0,flag=1,m=0;
		memset(r,0,sizeof r);
		for(int j=1;j<=n;j++)
		{
			if(v[j]^rev)
			{
				if(i+j-1>n)
				{
					flag=0;
					break;
				}
				r[j]^=1,r[i+j-1]^=1;
				m++;
			}
			rev^=r[j];
		}
		if(flag&&minm>m)
			minm=m,k=i;
	}
	printf("%d %d\n",k,minm);
	return 0;
}

小结:贪心蒸的难。

posted @ 2018-07-31 21:38  JZYshuraK_彧  阅读(241)  评论(0编辑  收藏  举报