记录编号 72920 评测结果 AAAAAAAAAA
题目名称 机房 最终得分 100
用户昵称 Gravatar超级傲娇的AC酱 是否通过 通过
代码语言 C++ 运行时间 0.123 s
提交时间 2013-10-19 18:14:07 内存使用 2.62 MiB
显示代码纯文本
#include<fstream>
#include<cmath>
#include<string.h>
using namespace std;
ifstream fi("orz.in");
ofstream fo("orz.out");
int main()
{
	int orz1[2501]={0},orz2[2501]={0},i,j,x,n,m,F[2501];
	fi>>n>>m;
	memset(F,15,sizeof(F));F[0]=0;
	for(i=1;i<=n;i++)
	{
		fi>>x;
		(x==1)?(orz1[i]=orz1[i-1]+1,orz2[i]=orz2[i-1]):(orz2[i]=orz2[i-1]+1,orz1[i]=orz1[i-1]);
		for(j=0;j<i;j++)
			if(abs(orz1[i]-orz1[j]-(orz2[i]-orz2[j]))<=m||orz1[i]==orz1[j]||orz2[i]==orz2[j])
				F[i]=min(F[i],F[j]+1);//加入后满足条件下更优???想到哪是哪。。。
	}
	fo<<F[n];
	return 0;
}