把数组离散化后,用树状数组维护某个值结尾的符合要求的子序列数量,枚举每一个数组中的数,查询比他大的结尾的子序列个数sum,ans+=sum+1(1是他本身),add(id,sum+1)即可
#include <bits/stdc++.h>
using namespace std;
小红记录了一条山路沿途 n 个测量点的高度 h1,h2,…,hn。他想从中按先后顺序挑选出至少一个点,使得选出的高度满足严格下降(即每个高度都低于前一个),这样便构成一条“下坡路线”。请你计算所有可能的下坡路线总数。答案可能很大,请输出其对 109+7 取模的结果。
本题中,n 满足 1≤n≤2×105,每个高度 hi 满足 1≤hi≤109。
第一行包含一个整数 n(1≤n≤2×105),表示测量点的数量。 第二行包含 n 个用空格分隔的整数 h1,h2,…,hn(1≤hi≤109),表示每个点的高度。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册