卧薪尝胆,厚积薄发。
      
    
            Milking cows
        
        
        Description:
有一排奶牛,分别向左和向右看,如果某只奶牛还没有被挤过奶,并且看到它看的方向一只奶牛被挤奶了,他就会被惊吓,按一个顺序挤奶,最小化被惊吓的次数和。
$1\leqslant n\leqslant 2\times 10^5$
Solution:
如果两只奶牛左边的向右看,右边的向左看,那么一定会产生一次惊吓,而如果不是上述情况,一定有一种方法不产生一次惊吓,于是答案就是这样的对数,直接统计一下就好了。
Code:
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cmath>
#include<cctype>
#include<cstring>
using namespace std;
#define R register
inline int rd()
{
	R char c = getchar();
	while(c != '0' && c != '1')c = getchar();
	return c - '0';
}
int n;
#define MAXN 200010
int a[MAXN];
int main()
{
	scanf("%d",&n);
	int sum = 0;
	long long ans = 0;
	for(int i = 1;i <= n;++i)
	{
		a[i] = rd();
		ans += sum * (a[i] ^ 1);
		sum += a[i];
	}
	cout << ans << endl;
	return 0;
}
 In tag:
算法-贪心
          In tag:
算法-贪心 
          
        
        Copyright © 2020
        
          wjh15101051
        
      
      ღゝ◡╹)ノ♡
     Date: Fri Nov 02 17:19:18 CST 2018
          Date: Fri Nov 02 17:19:18 CST 2018
           In Category:
          In Category:
           
         Timeline
            Timeline
           About
            About
           Toolbox
            Toolbox
           Friends
              Friends