1564 膜拜

1564 膜拜

貌似这个题是二分图?好像不是
要么保证整一个机房都是同一个神牛的膜拜者,或者两个神牛的膜拜者人数,不超过m人
很明显就是动态规划吗
dp[i]表示i个人需要的最少机房数
初始化dp[0]=0 dp[1]=1
dp[i]=min(dp[j])+1,其中0≤j<i,并且区间(i,j)可以成段
目标是dp[n]
对于每一个数都有切割或者不切割两个可能什么时候切割呢?
分三种情况,两个的人数之差小于m,或者都膜拜甲或者都膜拜乙
那么这样就用切割
那么不砍的话,dp自然不变
如果砍,那就是上一个分段的地方 j 的最小分段值加1因又砍了一段
然后就没了

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string>
#include<cstring> 
using namespace std;
int n,m,a[2505];
int dp[2505],sum[2][2505];//sum:膜拜两者人数的前缀和 
int t(int a,int b)
{
	return abs( (sum[0][a]-sum[1][a]) - (sum[0][b]-sum[1][b]) );
}//返回a,b之间膜拜两者人数之差的绝对值 
int main()
{
	cin>>n>>m;
	memset(dp,0x3f,sizeof(dp)); 
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		if(a[i]==2)	a[i]=0;//把第2个人变成第0个人,方便操作 
		sum[a[i]][i]=sum[a[i]][i-1]+1;
		sum[a[i]^1][i]=sum[a[i]^1][i-1];//x^1可以让1变成0,0变成1 
	}
	dp[0]=0;
	dp[1]=1;//dp初始化 
	for(int i=1;i<=n;i++)
	{
		for(int j=i-1;j>=0;j--)
		{
			if((t(i,j)<=m)||( sum[0][i]-sum[0][j]==0 )||( sum[1][i]-sum[1][j]==0 ) )//两个区间之内,如果崇拜 两个牛的人小于m是可以的,如果无法崇拜一方,就转移 
				dp[i]=min ( dp[i] , dp[j]+1 );
			//i,j区间内,若崇拜两者人数之差的绝对值<=m,或无崇拜某一方的人,则进行转移 
		}
	}
	cout << dp[n] << endl;
	return 0;
} 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 您可以通过说出赞美的话,或者向他表示您的敬意来向他膜拜。例如:“gzn真是太厉害了,我真的很佩服你。”或者“gzn,你真的很优秀,我想向你学习。”但是,膜拜他人可能会让您看起来很不自信,所以我建议您可以尝试学习他的优秀之处,并努力成为一个更优秀的人。 ### 回答2: 如果你觉得一个叫gzn的人很强,想要膜拜他,以下是一些建议: 1. 尊重他:向gzn表达你对他的尊敬和赞赏,对他的成就和才能表示钦佩。遇到他时,礼貌地与他交谈,并注意言行举止的得体和尊重。 2. 学习他的优点:了解gzn的优秀之处,并从中学习。看看他取得成功的原因,是否是他的刻苦努力、智慧决策或者他在某个领域的专业知识。尝试模仿他的行为和思考方式,研究并学习他的成功之道。 3. 向他请教:如果有机会,向gzn提出问题,寻求他的建议和指导。尊重地向他表达你的兴趣,并请教他在某个领域中的经验和见解。展示你对他的学习态度和对他智慧的崇拜。 4. 支持他的事业:如果gzn有自己的事业或项目,你可以尽力支持和关注他的努力和成果。参与他的项目,分享他的成就,为他的事业助力。这样,你不仅可以表达你的钦佩之情,还能够与他建立更紧密的联系。 5. 自我成长:尽管你想向gzn学习,但也要保持自己的独立思考和个性。不要完全模仿他,而是将他的优点和经验与你自己的才能和兴趣结合起来。追求自己的成长,并为自己设定目标,努力成为一个强大而有原创力的个体。 最重要的是,膜拜他不仅仅是以身体力行,更是通过行动向他证明你是一个值得尊敬和关注的人。承担起积极向上的行为和责任,以自己的努力和成就来回报他的关注和期待。 ### 回答3: 如果你觉得一个叫gzn的人很强,想要向他膜拜,你可以考虑以下几点: 1. 尊重与赞美:向gzn表示对他所取得成就的钦佩和赞美,这是最基本的表达方式之一。尊敬他的才华和技能,并且以谦逊和真诚的态度向他表达你的敬意。 2. 学习与模仿:观察gzn的行为和习惯,尝试学习他的成功之道。了解他取得成就的原因,从他的经验中汲取灵感,将其运用到自己的生活中。努力追求自己的目标,并向gzn学习如何提升自己的能力和技巧。 3. 合作与交流:如果你有机会与gzn进行交流或合作,抓住这个机会。分享自己的观点和想法,与他探讨各种话题,寻求他的建议和指导。与gzn建立良好的合作关系,有助于你从他的经验中获益。 4. 成为他人的榜样:通过向身边的人展示你对gzn的尊敬和模仿,成为他人的榜样。在自己的生活和工作中发挥积极的影响力,传递正能量,鼓励他人追求自己的目标和理想。这样的行为也能够向gzn表达你对他的敬意。 不管你选择了哪种方式,保持真诚和谦虚的态度非常重要。膜拜并不意味着盲目崇拜,而是对别人的才华和成就表示敬意,并从中获得启发与动力。记住要相信自己的潜力,努力发展自己的实力,成为更好的自己。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值