B. New Year and Ascent Sequence

题意:定义上升序列Ascent,在一组序列A中,存在1<i<j<n,使得Ai<Aj。现在给定n个序列,求n个序列两两组合的n^2个组合序列中,有多少个组合是Ascent序列。。

思路: 用两个MAX,MIN数组分别记录下每个序列的最大值和最小值,然后把最大值进行排序。每次做一遍二分,取每个数组中的最小值到所有数组中的最大值中找有多少个数比它大,这样组合的新序列便是满足Ascent性质。如果本身这个序列就已经满足Ascent的性质,那么直接把最大值设置为9999999,最小值设置为-1存进去。

AC代码:

 #include<iostream>
#include<vector>
#include<cstring>
#include<map>
#include<algorithm>
using namespace std;
vector<int> MAX;
vector<int> MIN;
int main(){
int t;
cin>>t;
for(int i = ;i<t;i++){
int Length;
cin>>Length;
long long Min = ;
long long Max = -;
int ok = ;
for(int j = ;j<Length;j++){
long long cur;
cin>>cur;
if(cur> Min && ok == ){
ok = ;
}
Min = min(Min,cur);
Max = max(Max,cur);
}
if(ok == ){
MAX.push_back(Max);
MIN.push_back(Min);
}
else{
MAX.push_back();
MIN.push_back(-);
}
}
sort(MAX.begin() ,MAX.end() );
long long ans = ;
for(int i = ;i<t;i++){
ans+=(MAX.end() -upper_bound(MAX.begin() ,MAX.end() ,MIN[i]));
//cout<<ans<<endl;
}
cout<<ans;
return ;
}

最新文章

  1. MicroERP软件更新记录1.1
  2. asp.net App_Code文件夹相关操作
  3. u Calculate e阶乘相加求和问题
  4. springMVC 缓存(入门 spring+mybaties+redis一)
  5. 【转】如何安装mysql服务
  6. 13.首次安装CY7C68013A驱动失败记(结果竟然是这样)
  7. NOIP2000 进制转换
  8. 利用over开窗函数取第一条记录
  9. Oracle删除死锁进程的方法
  10. C#实现GridView导出Excel
  11. 【转】linux shell 逻辑运算符、逻辑表达式
  12. 《css世界》笔记之流、元素与基本尺寸
  13. leetcode — substring-with-concatenation-of-all-words
  14. What is event bubbling and capturing?
  15. mysql 去除字符串中前后空格
  16. doc.getElementById(id); null
  17. RHEL7 在不同的环境中使用不同的网络配置文件
  18. linux常用命令:less 命令
  19. xml表头内容什么意思
  20. “Hello World!”团队第六周第七次会议

热门文章

  1. 【笔记】机器学习 - 李宏毅 - 2 - Regression + Demo
  2. Mybatis的延迟加载和立即加载
  3. 抛弃VMware吧,使用Win10自带的Hyper-V创建虚拟机
  4. grid 布局(2)
  5. 自主开发编程语言被指Python套壳,中科院开发者道歉
  6. overfitting &amp;&amp;underfitting
  7. 服务&amp;软件&amp;基础设施的区别
  8. python语言基础3
  9. C#关于文件的创建
  10. C++——动态内存分配2-创建对象数组