<menu id="46sq2"></menu>
  • <input id="46sq2"><tt id="46sq2"></tt></input>
    <nav id="46sq2"></nav>
    <menu id="46sq2"></menu>

    HDU6592 Beauty Of Unimodal Sequence

    Beauty Of Unimodal Sequence

    给一个序列,在满足单调递增或者单调递减或者先增后减的最长子序列集合里找到下标字典序最大以及最小的两个子序列,输出这两个子序列里元素的下标。

    n≤3×105

    moomhxy的题解

    先正着求一遍LIS,再反着求一遍LIS,求出每个点作为上升子序列结尾的最大长度和每个点作为下降子序列开头的最大长度。

    我们可以枚举这个单峰序列的峰顶是什么,这样最长长度就找到了。

    然后考虑怎么构造解。

    求字典序最小的话,首先找到第一个顶峰,然后往前找递减的序列中下标较小的,往后就依次找,这样能保证字典序最小。

    如何找这个下标较小的呢?显然我们希望每种结尾长度的点都越靠前越好。所以用单调栈维护即可。

    最大的话找到最后一个顶峰,往前是依次找,往后是找LIS中下标大的。维护方法类似。

    时间复杂度 O(n log n),瓶颈在于求LIS。

    CO int N=300000+10;
    int a[N],dp[N],up[N],down[N];
    int h[N],st[N],ans[N];
    
    void real_main(int n){
        fill(dp,dp+n+1,INT_MAX),dp[0]=0;
        for(int i=1;i<=n;++i){
            read(a[i]);
            up[i]=lower_bound(dp+1,dp+n+1,a[i])-dp;
            dp[up[i]]=a[i];
        }
        fill(dp,dp+n+1,INT_MAX),dp[0]=0;
        for(int i=n;i;--i){
            down[i]=lower_bound(dp+1,dp+n+1,a[i])-dp;
            dp[down[i]]=a[i];
        }
        // minimum lexicographic order
        int tot=0;
        int peak=1,height=up[1]+down[1];
        for(int i=2;i<=n;++i)
            if(up[i]+down[i]>height) peak=i,height=up[i]+down[i];
        int top=0;
        h[up[peak]]=a[peak];
        for(int i=peak-1;i;--i){
            if(a[i]>=h[up[i]+1]) continue;
            while(top and up[i]>=up[st[top]]) --top;
            st[++top]=i;
            h[up[i]]=a[i];
        }
        for(;top;--top) ans[++tot]=st[top];
        ans[++tot]=peak;
        for(int i=peak+1;i<=n;++i)
            if(down[i]==down[ans[tot]]-1 and a[i]<a[ans[tot]]) ans[++tot]=i;
        for(int i=1;i<=tot;++i) printf("%d%c",ans[i]," \n"[i==tot]);
        // maximum lexcographic order
        tot=0;
        peak=1,height=up[1]+down[1];
        for(int i=2;i<=n;++i)
            if(up[i]+down[i]>=height) peak=i,height=up[i]+down[i];
        top=0;
        st[++top]=peak;
        for(int i=peak-1;i;--i)
            if(up[i]==up[st[top]]-1 and a[i]<a[st[top]]) st[++top]=i;
        for(;top;--top) ans[++tot]=st[top];
        h[down[peak]]=a[peak];
        for(int i=peak+1;i<=n;++i){
            if(a[i]>=h[down[i]+1]) continue;
            while(tot and down[i]>=down[ans[tot]]) --tot;
            ans[++tot]=i;
            h[down[i]]=a[i];
        }
        for(int i=1;i<=tot;++i) printf("%d%c",ans[i]," \n"[i==tot]);
    }
    int main(){
        for(int n;~scanf("%d",&n);) real_main(n);
        return 0;
    }

    HDU什么时候开始支持<bits/stdc++.h>了……

    相关文章
    相关标签/搜索
    管家婆精选四消期期准 m.w0zgh930.icu 铜梁县| 黔南| 嫩江县| 天等县| 松潘县| 大城县| 乐亭县| 广东省| 道真| 双流县| 栾川县| 库车县| 康保县| 临清市| 苏尼特左旗| 百色市| 金门县| 财经| 天水市| 城口县| 新河县| 桃源县| 富源县| 青州市| 奉新县| 盐山县| 通渭县| 布尔津县| 关岭| 沐川县| 农安县| 朝阳县| 甘孜县| 盘锦市| 洛隆县| 赤城县| 崇礼县| 清水河县| 方城县| 潍坊市| 临桂县| 中方县| 常山县| 香港| 荣成市| 汾阳市| 中牟县| 卓尼县| 十堰市| 吴忠市| 石泉县| 永昌县| 辽宁省| 三河市| 怀远县| 南汇区| 志丹县| 闵行区| 德江县| 黎城县| 甘泉县| 尉氏县| 忻州市| 长宁区| 阳新县| 蓬安县| 阳江市| 梁河县| 昌平区| 山阴县| 米脂县| 溆浦县| 勃利县| 旬邑县| 潞城市| 东阿县| 察哈| 洛宁县| 宁津县| 铜川市| 新龙县| 友谊县| 旅游| 敦化市| 东乌| 通化县| 金塔县| 安西县| 兴安盟| 耒阳市| 东阳市| 洛川县| 彩票| 宜昌市| 谷城县| 颍上县| 水城县| 汤阴县| 淮北市| 灌南县| 九龙城区| 武乡县| 新邵县| 通州区| 定襄县| 莒南县| 马关县| 台南县| 丽水市| 九龙城区| 武夷山市| 武隆县| 长沙县| 阿拉善左旗| 阳信县| 凌海市| 长治县| 东莞市| 天津市| 上蔡县| 海原县| 宝应县| 信阳市| 南漳县| 厦门市| 张家港市| 英吉沙县| 信宜市| 凌源市| 广宁县| 页游| 特克斯县| 西贡区| 新密市| 麦盖提县| 堆龙德庆县| 赣州市| 利川市| 扎囊县| 赞皇县| 六盘水市| 扎鲁特旗| 莱芜市| 明光市| 土默特左旗| 武强县| 钦州市| 仁布县| 寿阳县| 镇雄县| 深州市| 乐清市| 涟源市| 东莞市| 蓬莱市| 南部县| 绥宁县| 绥化市| 林西县| 收藏| 军事| 馆陶县| 沙洋县| 平安县| 襄垣县| 东阳市| 普宁市| 确山县| 博爱县| 焦作市| 沂源县| 虹口区| 廊坊市| 澳门| 陈巴尔虎旗| 龙海市| 山阴县| 峡江县| 江永县| 江达县| 山阳县| 武清区| 嘉义市| 交城县| 磐安县| 祁阳县| 惠安县| 阜城县| 隆回县| 栾城县| 丹凤县| 兰考县| 苗栗县| 辽宁省| 内黄县| 双流县| 永平县| 昭苏县| 玛沁县| 景洪市| 阿坝县| 通州市| 绥棱县| 司法| 温州市| 图木舒克市| 绿春县| 武川县| 邹平县| 岐山县| 山阴县| 铁岭市| 邓州市| 会同县| 兴安县| 通州区| 大兴区| 淳化县| 大邑县| 清流县| 瑞丽市| 新巴尔虎左旗| 措勤县| 侯马市| 金门县| 江西省| 芜湖市| 凤台县| 辉县市| 商丘市| 偃师市| 广丰县| 岱山县| 宁国市| 平遥县| 洱源县| 襄城县| 新疆| 加查县| 桃园县| 青浦区| 宿迁市| 临邑县| 永川市| 肇庆市| 昆明市| 韩城市| 醴陵市| 凤城市| 南郑县| 临澧县| 金乡县| 宁波市| 巴南区| 宁安市| 年辖:市辖区| 龙川县| 宣武区| 井陉县| 台州市| 霞浦县| 兴化市| 泗水县| 四子王旗| 垫江县| 济阳县| 永昌县| 普格县| 阿克苏市| 阿拉善左旗| 汽车| 沁源县| 盐城市| 苍溪县| 青铜峡市| 乌兰县| 福泉市| 崇左市| 英德市| 揭阳市| 诸城市| 蕲春县| 深水埗区| 五莲县| 苏尼特左旗| 略阳县| 五河县| 株洲市| 禄劝| 水富县| 阿克苏市| 墨江| 新营市| 龙陵县| 黄平县| 醴陵市| 株洲县| 明水县| 鹤岗市| 博野县| 武穴市| 莫力| 获嘉县| 西和县| 仙居县| 公安县| 阿克苏市| 南皮县| 阿尔山市| 蛟河市| 淮北市| 阿拉善右旗| 曲阜市| 德保县| 广昌县| 鄂托克前旗| 云林县| 永善县| 长春市| 钟山县| 留坝县| 和田县| 临漳县| 浙江省| 永丰县| 龙陵县| 思南县| 拉孜县| 阿拉尔市| 蓬溪县| 伊川县| 清水河县| 察雅县| 长沙县| 阳新县| 墨竹工卡县| 大厂| 噶尔县| 和顺县| 中牟县| 蒙山县| 蒲江县| 德阳市| 鹤峰县| 浏阳市| 巴林左旗| 来宾市| 福安市| 贡山| 常熟市| 宝鸡市| 石首市| 梁河县| 黄浦区| 永登县| 泗水县| 乐至县| 丰都县| 普宁市| 常德市| 霞浦县| 长海县| 建湖县| 孟村| 乌拉特中旗| 龙胜| 建湖县| 米脂县| 宁晋县| 珠海市| 会东县| 邯郸县| 东乌珠穆沁旗| 盱眙县| 辽源市| 卓资县| 吕梁市| 恩平市| 盐城市| 贵南县| 德庆县| 云霄县| 泾源县| 将乐县| 施秉县| 彩票| 牙克石市| 富阳市| 胶州市| 社旗县| 防城港市| 资源县| 宣汉县| 监利县| 绍兴市| 元氏县| 灵台县| 惠东县| 黎川县| 北宁市| 遂宁市| 鄂托克前旗| 砚山县| 界首市| 新野县| 蕉岭县| 唐山市| 博兴县| 上思县| 仁怀市| 徐汇区| 武安市| 秦安县| 盐津县| 合山市| 光泽县| 常熟市| 平谷区| 永修县| 崇文区| 寿宁县| 翁源县| 宝坻区| 卓资县| 凌源市| 雅江县| 濮阳县| 云安县| 肇州县| 漳州市| 大安市| 中西区| 潢川县| 无极县| 双柏县| 海城市| 泉州市| 马边| 沁源县| 长垣县| 上犹县| 老河口市| 衡阳市| 治县。| 万年县| 长子县| 长治县| 陇南市| 定陶县| 黑龙江省| 湟中县| 桐乡市| 贞丰县| 固安县| 吉安市| 鄢陵县| 惠来县| 竹北市| 丹凤县| 丽江市| 邻水| 湛江市| 青田县| 旅游| 哈尔滨市| 观塘区| 广昌县| 潼南县| 河间市| 宝应县| 临泽县| 临猗县| 武川县| 五大连池市| 揭西县| 琼海市| 驻马店市| 上杭县| 阿拉善左旗| 文成县| 任丘市| 浪卡子县| 奉化市| 鄂伦春自治旗| 门头沟区| 横峰县| 大英县| 黑龙江省| 淮安市| 邓州市| 宁乡县| 江阴市| 莱州市| 清苑县| 哈密市| 聂拉木县| 贵德县| 娄底市| 鄂托克前旗| 米脂县| 阿拉善盟| 错那县| 辽阳市| 商河县| 福贡县| 吉木乃县| 延安市| 太保市| 阳信县| 蓬莱市| 镇赉县| 宿迁市| 额尔古纳市| 南和县| 高台县| 三穗县| 盖州市| 大关县| 苏尼特右旗| 玉门市| 辽阳县| 濮阳市| 来凤县| 康马县| 哈密市| 紫云| 阿克陶县| 湟中县| 白玉县| 南漳县| 页游| 天门市| 报价| 江津市| 育儿| 大田县| 酒泉市| 讷河市| 金乡县| 西充县| 平武县| 武安市| 伊春市| 尚志市| 瓦房店市| 饶阳县| 林芝县| 竹溪县| 邮箱| 连江县| 化隆| 凉山| 石门县| 嘉兴市| 沐川县| 崇礼县| 永泰县| 东平县| 白水县| 巧家县| 开阳县| 林周县| 金秀| 通江县| 宁乡县| 比如县| 五指山市| 新龙县| 金溪县| 广宗县| 凤山市| 靖安县| 兴安县| 新龙县| 乐平市| 宝应县| 营口市| 句容市| 汾西县| 如东县| 肇东市| 沽源县| 石林| 揭东县| 方山县| 泸定县| 肥西县| 沙雅县| 通河县| 福泉市| 石楼县| 团风县| 股票| 津南区| 乳源| 金塔县| 乌什县| 稷山县| 康乐县| 营山县| 萍乡市| 迁西县| 武隆县| 浦城县| 安新县| 监利县| 重庆市| 黄龙县| 应用必备| 辽阳市| 安达市| 黄山市| 阳新县| 鄢陵县| 龙海市| http://3g.jx1870brandv.fun http://3g.jx1870circuitv.fun http://m.jx1870auditv.fun http://jx1870bowlv.fun http://3g.jx1870dreazv.fun http://jx1870bloodv.fun http://jx1870abusev.fun http://www.jx1870doublev.fun http://wap.jx1870backgroundv.fun http://3g.jx1870allowv.fun http://3g.jx1870catv.fun http://3g.jx1870changev.fun http://3g.jx1870earthv.fun http://www.jx1870describev.fun http://wap.jx1870counterv.fun http://3g.jx1870bushv.fun http://3g.jx1870choosev.fun http://3g.jx1870auctionv.fun