pku 2455 Sticks Problem

标签: permutation iostream algorithm up
493人阅读 评论(0) 收藏 举报

这道题是月赛题,有解题报告的。

用的是分治的做法。

当时想到了,但总感觉有点不够完美,所以没做,原来是没有正确估算时间复杂度……

#include <iostream>
#include <algorithm>
#define N 50001
using namespace std;
int n;
int a[N];
int b[N];

int bst;
void getLong(int low,int up)
{
	if (low>=up || up - low +1 <=bst) return;

	int i;
	int minV=1000000000,minP,maxV=-1,maxP;
	for (i=low; i<=up; ++i)
	{
		if (a[i]> maxV)
		{
			maxV = a[i];
			maxP = i;
		}
		if (a[i] < minV)
		{
			minV = a[i];
			minP = i;
		}
	}
	if (minP < maxP)
	{
		bst = max(bst,maxP-minP);
		getLong(low,minP);
		getLong(maxP+1,up);
	}
	else
	{
		getLong(low,maxP);
		getLong(maxP+1,minP-1);
		getLong(minP,up);
	}
}
int main()
{
	while (scanf("%d",&n)!=EOF)
	{
		for (int I=0; I<n; ++I)
		{
			scanf("%d",&a[I]);
		}
		memcpy(b,a,sizeof(a));
		if (next_permutation(b,b+n) == false)
		{
			cout<<-1<<endl;
			continue;
		}
		bst = 0;
		getLong(0,n-1);
		cout<<bst<<endl;
	}
}

 

查看评论

POJ2452 && BNU2571:Sticks Problem

Description Xuanxuan has n sticks of different length. One day, she puts all her sticks in a line, ...
  • libin56842
  • libin56842
  • 2013-10-08 23:56:45
  • 1484

POJ 2452 Sticks Problem(二分+RMQ)

POJ 2452 Sticks Problem(二分+RMQ) 分析: 首先知道,当给出的序列是递减的(不用严格递减)话就一定不存在给定的序列.    然后用二分法假设我们当前猜测存在长度为temp的...
  • u013480600
  • u013480600
  • 2014-03-24 01:15:59
  • 1025

pku 2455

http://poj.org/problem?id=2455 二分枚举+网络流,注意有重边的情况 #include #include #include using namespace std...
  • ywhorizen
  • ywhorizen
  • 2011-08-10 11:06:08
  • 259

poj 2452 Sticks Problem

http://poj.org/problem?id=2452 #include #include #include #include #include #include #inclu...
  • jk13171217
  • jk13171217
  • 2015-07-27 17:37:25
  • 263

poj-2452 Sticks Problem(二分+RMQ)

Sticks Problem Time Limit: 6000MS   Memory Limit: 65536K Total Submissions: 10299   Accepted: ...
  • acm_cxq
  • acm_cxq
  • 2016-04-01 16:48:00
  • 241

pku算法

主流算法:1.搜索 //回溯2.DP(动态规划) 3.贪心 4.图论 //Dijkstra、最小生成树、网络流5.数论 //解模线性方程6.计算几何 //凸壳、同等安置矩形的并的面积与周长7.组合数学...
  • politefish
  • politefish
  • 2009-10-22 15:11:00
  • 6702

acm poj 1025

  • 2010年03月09日 19:10
  • 9KB
  • 下载

sticks_backtracking

  • 2011年05月13日 20:11
  • 2KB
  • 下载

POJ2452---Sticks Problem(单调栈+RMQ,方法不够优秀)

Description Xuanxuan has n sticks of different length. One day, she puts all her sticks in a line, ...
  • Guard_Mine
  • Guard_Mine
  • 2015-05-15 18:37:49
  • 822

HDU 1051 wooden sticks

D - Wooden Sticks There is a pile of n wooden sticks. The length and weight of each stick are known...
  • Rainbow__sea
  • Rainbow__sea
  • 2017-10-29 09:07:25
  • 103
    个人资料
    等级:
    访问量: 4万+
    积分: 847
    排名: 6万+
    文章分类
    最新评论