这个题 LIS  +  并查集的思想 + 链式前向星

要求找s(i,j)使i j 能有最长的LIS  。。。

做法是枚举每一个j 即终点  算 起点 的可能

无力吐槽了  bc 的时候写错了一个地方 导致TLE  后来幡然醒悟了

改了就a了

+++++++++++++++++++++++++++++++++++++++++++

不想说什么了 直接上代码

+++++++++++++++++++++++++++++++++++++++++++

#include <cstdio>
#include <cmath>
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <string>
#include <queue>
#include <map>
#include <stack>
#include <cstring>
#define CL(a,b) memset(a,b,sizeof(a))
#define ll __int64
#define TEST cout<<"TEST ***"<<endl;
#define INF 0x7ffffff0
#define MOD 1000000007
using namespace std; typedef struct node
{
int p,next;
}N;
N no[];
int head[],cv; int num[];
int fa[];
int pi[];
int so[],ct;
int n; void inithead()
{
CL(head,-);
cv=;
} void addnode(int s,int e)
{
no[cv].p=e;no[cv].next=head[s];head[s]=cv++;
} void initfa()
{
int i,j;
for(i=;i<=;i++)fa[i]=i;
} int finr(int x)
{
if(fa[x]==x)return x;
fa[x]=finr(fa[x]);
return fa[x];
} void unio(int x,int y)
{
int rx=finr(x);
int ry=finr(y);
fa[rx]=ry;
} int bin(int s,int e,int v)
{
int m=(s+e)/;
if(so[m]>=v&&so[m-]<v)return m;
if(so[m]>v)return bin(s,m,v);
return bin(m+,e,v);
} int main()
{
while(scanf("%d",&n)!=EOF)
{
int i,j,a,p,v;
initfa();
inithead();
so[]=-;ct=;
for(i=;i<=n;i++)
{
scanf("%d",&a);
num[i]=a;
if(a>so[ct])
{
ct++;
so[ct]=a;
addnode(ct,i);
pi[i]=ct;
}
else
{
p=bin(,ct,a);
so[p]=a;
addnode(p,i);
pi[i]=p;
}
if(pi[i]!=)
{
p=head[pi[i]-];
while(p!=-)
{
v=no[p].p;
if(num[v]<a)
{
unio(i,v);
break;
}
p=no[p].next;
}
}
}
ll rem=,la=,he;
i=n;
while(i>=)
{
la++;
if(pi[i]==ct)
{
he=finr(i);
rem+=la*he;
la=;
}
i--;
}
printf("%I64d\n",rem);
}
return ;
}

HDU 5141的更多相关文章

  1. HDU 1561 The more, The Better(树形背包)

    The more, The Better Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  2. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  3. 【HDU 3037】Saving Beans Lucas定理模板

    http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...

  4. hdu 4859 海岸线 Bestcoder Round 1

    http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...

  5. HDU 4569 Special equations(取模)

    Special equations Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

  6. HDU 4006The kth great number(K大数 +小顶堆)

    The kth great number Time Limit:1000MS     Memory Limit:65768KB     64bit IO Format:%I64d & %I64 ...

  7. HDU 1796How many integers can you find(容斥原理)

    How many integers can you find Time Limit:5000MS     Memory Limit:32768KB     64bit IO Format:%I64d ...

  8. hdu 4481 Time travel(高斯求期望)(转)

    (转)http://blog.csdn.net/u013081425/article/details/39240021 http://acm.hdu.edu.cn/showproblem.php?pi ...

  9. HDU 3791二叉搜索树解题(解题报告)

    1.题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=3791 2.参考解题 http://blog.csdn.net/u013447865/articl ...

随机推荐

  1. delphi2010 开发及调试WebService 实例

    使用delphi已经10多年了,一直搞桌面程序开发,对Webservice一直很陌生,近来因工作需要,学习delphi开发WebService,担心遗忘,作此笔记. 特别感谢 中塑在线技术总监 大犇 ...

  2. HTML5最佳实践

    首先先给大家推荐个不错的 前端 网站:http://www.tystudio.net HTML5正迅速称为web前端开发技术标准,作为一名前段开发人员,了解并正确的使用HTML5制作网站变得越来越重要 ...

  3. MSSQL2005 导出excel文件

    Title:MSSQL2005 导出excel文件  --2011-01-16 16:01 EXEC master..xp_cmdshell 'bcp "select * from 数据库名 ...

  4. c++学习笔记和思考

    1.内置类型:int float等编程语言自己定义的类型 类类型:自己声明的类,即是对对象的抽象 2.const double *cp 表示cp是指向一个const类型double类型数据的指针,而非 ...

  5. Delphi判断进程是否存在(使用CreateToolhelp32Snapshot)

      program Project2; uses windows,TLHelp32; function FindProcess(AFileName:string):boolean; var hSnap ...

  6. 用TMS的控件就可以了,有bug叫他们改

    [深圳]大宝delphi本身不是太隐定.不建议弄太多自己的东西.还要debug好长时间.为了快.便不去弄控件了够用了.真的.都不用花太多时间去弄这弄那.有bug叫他们改便可以.

  7. DLL模块:C++在VS下创建、调用dll

    1.dll的优点 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架,ATL.MFC等 ...

  8. [LeetCode] 129. Sum Root to Leaf Numbers 解题思路

    Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number ...

  9. ASCII码表(0 - 255)

    目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准 ...

  10. Hadoop-2.x的源码编译

    由于在Hadoop-2.x中,Apache官网上提供的都是32位版本,如果是生产环境中则需要自行编译64位,编译Hadoop-2.x版本方法如下: 安装编译源码所依赖的底层库 yum install ...