POJ 2181

直接DP,设当前第i个数为结尾的算奇数次和偶数次的得到的最大值。分开设即可。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <climits>
#include <string.h>
#include <queue>
#include <cmath>
#include <vector>
using namespace std;

int main(){
	int oddn,even,n,tmp,to,te;
	while(scanf("%d",&n)!=EOF){
		for(int i=1;i<=n;i++){
			scanf("%d",&tmp);
			if(i==1){
				oddn=tmp;
				even=0;
			}
			else{
				to=even+tmp;
				te=oddn-tmp;
				oddn=max(oddn,to);
				even=max(te,even);
			}
		}
		printf("%d\n",max(oddn,even));
	}
	return 0;
}

  

时间: 2024-09-28 22:07:49

POJ 2181的相关文章

POJ 2181 -- Jumping Cows

Jumping Cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7624   Accepted: 4586 Description Farmer John's cows would like to jump over the moon, just like the cows in their favorite nursery rhyme. Unfortunately, cows can not jump. The

POJ 2181 Jumping Cows DP

题意:n<=2e5件物品 按照1~n顺序选择物品,每件物品可以拿或者不拿,奇数次拿物品分数+a[i],偶数次拿分数-a[i] 问最大得分?显然每件物品有2种状态,第奇数次拿,第偶数次拿(不拿话 ans就不统计第i个)设dp[i][1,2] 前i件物品 最后一件状态i为1,2;dp[i][1]=max(dp[j][2])+a[i] 1<=j<=i(j~i不拿) 保持前缀i中最大的dp[j][2]即可 #include <iostream> #include <algori

水过的题

BZOJ 3767: A+B Prlblem加强版:BZOJ 很少见的水题 高精加 python水过 1 a=int(raw_input()) 2 b=int(raw_input()) 3 print a+b BZOJ 3043: IncDec Sequence:差分过后就成了要使差分数列全为0的最小次数,第二问即将差分数列全削成正数或负数后,剩下的操作可以作用在前一段区间,也可以后一段区间,因此会造成不同数列的情况 /**************************************

[poj2181]jumping cows

poj 2181 Jumping Cows Description Farmer John's cows would like to jump over the moon, just like the cows in their favorite nursery rhyme. Unfortunately, cows can not jump. The local witch doctor has mixed up P (1 <= P <= 150,000) potions to aid the

ACM训练方案-POJ题目分类

ACM训练方案-POJ题目分类 博客分类: 算法 ACM online Judge 中国: 浙江大学(ZJU):http://acm.zju.edu.cn/ 北京大学(PKU):http://acm.pku.edu.cn/JudgeOnline/ 杭州电子科技大学(HDU):http://acm.hdu.edu.cn/ 中国科技大学(USTC):http://acm.ustc.edu.cn/ 北京航天航空大学(BUAA)http://acm.buaa.edu.cn/oj/index.php 南京

转载:poj题目分类(侵删)

转载:from: POJ:http://blog.csdn.net/qq_28236309/article/details/47818407 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K–0.50K:中短代码:0.51K–1.00K:中等代码量:1.01K–2.00K:长代码:2.01K以上. 短:1147.1163.1922.2211.2215.2229.2232.2234.2242.2245.2262.2301.2309.2313.2334.2346.2348

poj 动态规划题目列表及总结

此文转载别人,希望自己能够做完这些题目! 1.POJ动态规划题目列表 容易:1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1208, 1276,1322, 1414, 1456, 1458, 1609, 1644, 1664, 1690, 1699, 1740(博弈),1742, 1887, 1926(马尔科夫矩阵,求平衡), 1936, 1952, 1953, 1958, 1959, 1962, 1975,

动态规划POJ专题

声明:本文属博主原创文章,未经允许请勿转载. 经典题目题号(此处为转载):容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1191,1208, 1276, 1322, 1414, 1456, 1458, 1609, 1644, 1664, 1690, 1699, 1740, 1742, 1887, 1926, 1936, 1952, 1953, 1958, 1959, 1962, 1975, 1989, 

POJ - 3186 Treats for the Cows (区间DP)

题目链接:http://poj.org/problem?id=3186 题意:给定一组序列,取n次,每次可以取序列最前面的数或最后面的数,第n次出来就乘n,然后求和的最大值. 题解:用dp[i][j]表示i~j区间和的最大值,然后根据这个状态可以从删前和删后转移过来,推出状态转移方程: dp[i][j]=max(dp[i+1][j]+value[i]*k,dp[i][j-1]+value[j]*k) 1 #include <iostream> 2 #include <algorithm&