POJ 2181 Jumping Cows [贪心]

原创 2012年03月29日 20:29:06

题意: 

给定一个数字串,按奇偶顺序挑选几个数字,+奇选的数字-偶选的数字,问怎样顺序挑选使最后的和最大。


思路:

O(n)贪心。

本质上其实是在对这个串进行分割,分割成若干段,每个段里面有一个最大值,一个最小值,且最大值在最小值前面。

O(N)去遍历,先找出最大值,然后找出最小值,就算完成一个子段。

至于最后的子段肯定是只有最大值,所以只需在读取的串最后面加一个数字0即可。


#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define Max(a,b) ((a)>(b)?(a):(b))
#define Min(a,b) ((a)<(b)?(a):(b))
using namespace std;
const int N=150005;
const int inf=(1<<30);
int n,m;
int a[N];
void solve()
{
	int flag=0;
	int mx=0,mn=inf;
	int i=1,ans=0;
	while(i<=n)
	{
		if(!flag)
		{
			if(a[i]>mx)
			{
				mx=a[i];
			}
			else
			{
				flag=1;
			}
		}
		if(flag)
		{
			if(a[i]<mn)
			{
				mn=a[i];
			}
			else
			{
				flag=0;
				ans+=(mx-mn);
				mx=0;
				mn=inf;
				continue;
			}
		}
		i++;
	}
	if(flag)
	  ans+=mx;
	printf("%d\n",ans);
}
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",a+i);
	}
	a[++n]=0;
	solve();
	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

poj 2181 Jumping Cows

Description Farmer John's cows would like to jump over the moon, just like the cows in their favo...

POJ 2181 Cows 树状数组

来源:http://poj.org/problem?id=2481 题意:有一些牛,这些牛有一个属性值,这个属性值的范围给出,为si,ei,若si = ej && ei - si > ej - sj...

POJ 2456 Aggressive cows(二分+贪心)

POJ 2456 Aggressive cows(二分+贪心) http://poj.org/problem?id=2456 题意:        数轴上有n个不同的点, 现在要你选出C个来(C=...

poj 2456 Aggressive cows (二分+贪心思想)

Description Farmer John has built a new long barn, with N (2 His C (2 <= C <= N) cows don't like...

Poj 2456 Aggressive cows【贪心+二分】

Aggressive cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11430 ...

【贪心专题】POJ 2456 Aggressive cows && NYOJ 586 疯牛(最大化最小值 贪心+二分搜索)

链接: click here~~ 题意:农夫 John 建造了一座很长的畜栏,它包括N (2 但是,John的C (2 【解题思路】其实就是给你n个坐标,让你选m个(m 类似的最大化最小值或者...

poj 2181 (线段树)

看别人的思路: 从后往前推,排在最后一头牛比他编号小的数量有x头牛,那么最后一头牛的编号必然为x+1。 按照这种思路下去,我们把1-n编号的牛排成一排。把x+1这头牛从里面删除。 假如倒数第二头...

POJ 2181

Description Farmer John's cows would like to jump over the moon, just like the cows in their favori...

【POJ2463】Bungee Jumping

Bungee Jumping Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1365   ...

USACO-Section 1.2 Milking Cows【贪心算法】

中文描述:三个农民每天清晨5点起床,然后去牛棚给3头牛挤奶。第一个农民在300秒(从5点开始计时)给他的牛挤奶,一直到1000秒。第二个农民在700秒开始,在 1200秒结束。第三个农民在1500秒开...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)