poj2452
题意:就是说给你一段区间,要你找出一段最长的区间,在这段区间的所有数都大于区间的第一个数、小于区间的最后一个数......输出区间的长度,若是长度为0则输出-1.
4
5 4 3 6
4
6 5 4 3
思路:暴力吧,有些技巧。可以说是区间合并,往后找一个数,然后往前找它前面有多少个数比它小,并记录最小值,和最小值的位置,然后用当前值所在位置减去最小值所在位置,就是这段区间的结果,再把这结果保存到当前值所在位置,然后往下找.....
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define M 50100
struct node
{
int num;
int sum;
}s[M];
int main()
{
int n;
while(scanf("%d",&n)>0)
{
//memset(s,0,sizeof(s));
for(int i=1;i<=n;i++)
{
scanf("%d",&s[i].num);
s[i].sum=0;
}
int ans=0;
for(int i=2;i<=n;i++)
{
int j=i-1;
//int sum=0;
int minx=100000000;
int xxx=-1;
while(j>=1)
{
if(s[i].num>s[j].num)
{
if(s[j].sum==0)
{
//sum++;
if(s[j].num<minx)
{
minx=s[j].num;
xxx=j;
}
j--;
}
else
{
//sum+=s[j].sum;
j-=s[j].sum;
}
}
else
break;
}
if(xxx!=-1)
s[i].sum=i-xxx;
else
s[i].sum=0;
if(ans<s[i].sum)
ans=s[i].sum;
}
if(ans==0)
printf("-1\n");
else
printf("%d\n",ans);
}
return 0;
}
poj2452的更多相关文章
- POJ-2452 Sticks Problem 二分+RMQ
题目链接: https://cn.vjudge.net/problem/POJ-2452 题目大意: 给出一个数组a,求最大的j-i满足 i<j && a[i] ... a[j] ...
- Sticks Problem
Sticks Problem poj-2452 题目大意:给你一串n个数的数列a,上面的数为a1到an.我们求最大的y-x,其中,y和x满足1.x<y 2.任意的x<i<y,都有ai ...
- ACM学习大纲
1 推荐题库 •http://ace.delos.com/usaco/ 美国的OI 题库,如果是刚入门的新手,可以尝试先把它刷通,能够学到几乎全部的基础算法极其优化,全部的题解及标程还有题目翻译可以b ...
- ACM训练大纲
1. 算法总结及推荐题目 1.1 C++ STL • STL容器: set, map, vector, priority_queue, queue, stack, deque, bitset• STL ...
- ACM学习大纲(转)
1 推荐题库 •http://ace.delos.com/usaco/ 美国的OI 题库,如果是刚入门的新手,可以尝试先把它刷通,能够学到几乎全部的基础算法极其优化,全部的题解及标程还有题目翻译可以b ...
随机推荐
- ORACLE检查死锁
一.数据库死锁的现象程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错.二.死锁的原理当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提交,另一条对于这一列数据做更 ...
- java 管道流代码示例
import java.io.IOException;import java.io.PipedInputStream;import java.io.PipedOutputStream; public ...
- login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- ScriptManager.RegisterAsyncPostBackControl 方法
来源:VS2012帮助文档 用途: 将控件注册为异步回发的触发器 语法: public void RegisterAsyncPostBackControl( Control control ) 参数 ...
- Visual C#两分钟搭建BHO IE钩子
微软在1997年正式推出Browser Helper Object (BHO), 使程序员能够更好的对IE进行二次开发和操作. 在通过编写BHO程序数月后, 我希望把我的一些经验告诉才开始的同志, 避 ...
- MySQL-关于事务的使用
如果你一次执行单条查询语句, 则没有必要启用事务支持, 数据库默认支持SQL执行期间的读一致性, 如果你一次执行多条查询语句, 例如统计查询, 报表查询, 在这种场景下, 多条查询SQL必须保证整体的 ...
- HDUOJ-----取(m堆)石子游戏
取(m堆)石子游戏 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Sub ...
- 【LeetCode】12. Integer to Roman (2 solutions)
Integer to Roman Given an integer, convert it to a roman numeral. Input is guaranteed to be within t ...
- Java Web Project自定义错误页面,log4j记录日志。
创建记录日志的文件LoggerHelper.java: package com.wyp.helper; import org.apache.log4j.Logger; public class Log ...
- C#趣味程序---车牌号推断
甲说前两位同样,乙说后两位同样,丙说四位的车牌号刚好是一个数的平方.这个车牌号是多少? using System; namespace ConsoleApplication1 { class Prog ...