C. Milking cows(贪心)

C. Milking cows(贪心)

思路:根据贪心思想,肯定是先从一边开始喂牛,因为如果从中间喂,两边惊吓的牛会更多,所以考虑从左边开始喂,显然对于从左到右,我们先喂面向右边的,这样所有面向右边的牛不会再产生贡献,此时的贡献就是面向左的牛看这些牛产生的贡献。

同理从右到左也是一样,因为假设 a 1 = 1 , a 2 = 0 a_1=1,a_2=0 ,因为喂 a 1 a_1 时, a 2 a_2 会产生贡献,同理喂 a 2 a_2 a 1 a_1 也产生贡献,他们是等价的。

AC代码:

#include<cstdio>
using namespace std;
typedef long long ll;
int main(){
	int n;
	ll cnt=0,ans=0;
	scanf("%d",&n);
	for(int i=1,x;i<=n;i++){
		scanf("%d",&x);
		if(x) cnt++;
		else ans+=cnt;
	}
	printf("%lld\n",ans);
	return 0;
} 
原创文章 201 获赞 165 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_45750972/article/details/105965067