<menu id="gc4q0"></menu>
  • <menu id="gc4q0"></menu>
  • <input id="gc4q0"></input>
    <nav id="gc4q0"></nav>
  • <input id="gc4q0"><acronym id="gc4q0"></acronym></input>
  • 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>了……

    相关文章
    相关标签/搜索
    香港最快現场开奖结果118图库天下彩天空彩免费大全香港蓝月亮精选资料六合宝典天天彩票新版 民县| 北海市| 闵行区| 揭阳市| 荔浦县| 旬阳县| 昆明市| 禄丰县| 定西市| 新昌县| 庆安县| 通榆县| 富川| 吉林市| 格尔木市| 贵州省| 临西县| 额尔古纳市| 定边县| 石嘴山市| 沅江市| 福州市| 莒南县| 通江县| 扬中市| 曲沃县| 苗栗市| 信阳市| 灵寿县| 贵阳市| 辉县市| 湾仔区| 孙吴县| 西林县| 财经| 哈巴河县| 施甸县| 阜康市| 汾阳市| 光泽县| 龙山县| 恩平市| 冕宁县| 宜宾市| 光山县| 栖霞市| 阿合奇县| 岢岚县| 龙里县| 丹阳市| 梁山县| 富民县| 肥西县| 阳东县| 德钦县| 曲麻莱县| 永川市| 柳江县| 宜昌市| 金寨县| 凉山| 同江市| 四子王旗| 陆丰市| 英吉沙县| 太原市| 固始县| 昂仁县| 汽车| 循化| 安新县| 上杭县| 汝南县| 泾阳县| 兴海县| 镇巴县| 延安市| 廉江市| 辽中县| 新营市| 枣庄市| 绥德县| 达拉特旗| 广饶县| 富宁县| 桓台县| 乌兰浩特市| 安陆市| 图木舒克市| 武陟县| 噶尔县| 阳东县| 瑞昌市| 涡阳县| 朝阳区| 新田县| 耿马| 满洲里市| 新干县| 富源县| 罗源县| 万源市| 东丽区| 宜黄县| 巩义市| 古丈县| 遂宁市| 姚安县| 化州市| 永定县| 乡宁县| 若羌县| 祥云县| 深圳市| 永清县| 醴陵市| 河北区| 竹溪县| 澄城县| 辉南县| 武平县| 金沙县| 葵青区| 临汾市| 新民市| 文登市| 安阳县| 顺昌县| 齐河县| 东台市| 怀来县| 桃园市| 稻城县| 鹿泉市| 佛山市| 三都| 丹寨县| 门源| 新兴县| 班戈县| 泽州县| 吉安县| 德兴市| 昌邑市| 石门县| 巴南区| 广水市| 大宁县| 太白县| 宁津县| 化隆| 遵义市| 慈溪市| 新津县| 新巴尔虎右旗| 绥宁县| 铜梁县| 北京市| 宝丰县| 河源市| 孝昌县| 安义县| 肇源县| 长泰县| 隆回县| 江阴市| 阜康市| 来凤县| 海原县| 封开县| 图们市| 和静县| 龙口市| 陕西省| 邢台市| 阜南县| 沙坪坝区| 安化县| 伊宁市| 山东| 绥阳县| 祁阳县| 荥阳市| 股票| 宝山区| 张掖市| 武冈市| 罗城| 崇信县| 新宁县| 民勤县| 青浦区| 诸城市| 济南市| 嘉祥县| 合水县| 开远市| 旬邑县| 金平| 大新县| 宁陵县| 四子王旗| 自贡市| 泉州市| 衡水市| 宜君县| 茶陵县| 博湖县| 如皋市| 通城县| 钟山县| 会同县| 古丈县| 石门县| 宜宾县| 威信县| 津市市| 南陵县| 乌兰察布市| 繁峙县| 遵义市| 芜湖县| 鲁甸县| 尤溪县| 墨竹工卡县| 荥阳市| 渭源县| 克山县| 叙永县| 贵南县| 瑞安市| 北流市| 汉中市| 灵台县| 甘孜县| 孝昌县| 双辽市| 峨山| 淮南市| 临汾市| 三亚市| 灌云县| 米林县| 赤壁市| 清苑县| 秭归县| 和静县| 香格里拉县| 旌德县| 惠东县| 玛沁县| 江都市| 邵阳市| 江门市| 公安县| 射阳县| 山阴县| 元江| 郑州市| 航空| 兴城市| 留坝县| 桑植县| 定兴县| 兴义市| 巴林右旗| 长兴县| 凭祥市| 灵台县| 探索| 积石山| 阳山县| 定日县| 湄潭县| 类乌齐县| 施秉县| 浠水县| 江山市| 滦平县| 西安市| 铅山县| 玉环县| 卓尼县| 九江市| 申扎县| 平乡县| 公安县| 江安县| 安塞县| 寿阳县| 赤峰市| 沈阳市| 右玉县| 青河县| 定边县| 威信县| 内黄县| 容城县| 蒙山县| 阜阳市| 墨江| 永和县| 泗阳县| 佛山市| 周至县| 包头市| 夏邑县| 衡阳县| 冕宁县| 若尔盖县| 宁明县| 怀化市| 庐江县| 三河市| 墨江| 屏南县| 新沂市| 尖扎县| 获嘉县| 新疆| 华阴市| 龙泉市| 黄龙县| 福鼎市| 阿坝| 察哈| 武定县| 穆棱市| 惠州市| 区。| 江安县| 莎车县| 军事| 济阳县| 河北省| 图木舒克市| 嵩明县| 仪征市| 陆良县| 荃湾区| 仪征市| 桑日县| 紫云| 美姑县| 榆中县| 高淳县| 黄浦区| 新巴尔虎右旗| 包头市| 叶城县| 景洪市| 临桂县| 广东省| 兴和县| 师宗县| 大丰市| 青神县| 柘城县| 保定市| 永安市| 资阳市| 西城区| 九台市| 社旗县| 博白县| 贡嘎县| 阜康市| 离岛区| 通道| 环江| 永善县| 施秉县| 金溪县| 肥西县| 阿勒泰市| 麻城市| 蒙城县| 金平| 万载县| 安西县| 鱼台县| 保亭| 杨浦区| 永胜县| 丰宁| 泸西县| 九龙县| 晋宁县| 甘洛县| 犍为县| 翁源县| 铅山县| 马鞍山市| 松桃| 长泰县| 商洛市| 蓬莱市| 孝义市| 信阳市| 共和县| 调兵山市| 洛阳市| 昌都县| 伽师县| 东光县| 如皋市| 上饶县| 民权县| 保靖县| 慈利县| 商丘市| 兴国县| 南京市| 定边县| 舟山市| 昌宁县| 和龙市| 古蔺县| 鄂尔多斯市| 彩票| 塔河县| 新化县| 潼关县| 科技| 体育| 永寿县| 水富县| 库尔勒市| 高邑县| 博乐市| 楚雄市| 新丰县| 寿阳县| 富宁县| 资溪县| 尼勒克县| 溆浦县| 香河县| 南康市| 邛崃市| 阜新| 克什克腾旗| 博罗县| 安顺市| 台中县| 伊宁县| 汉沽区| 达拉特旗| 依兰县| 岢岚县| 中卫市| 桂平市| 新建县| 化隆| 长治市| 沾益县| 桓台县| 汽车| 淳安县| 肇庆市| 贡觉县| 轮台县| 邵武市| 宁远县| 巴塘县| 深水埗区| 磐石市| 云和县| 怀远县| 邢台市| 枣强县| SHOW| 曲水县| 台山市| 延吉市| 谢通门县| 广饶县| 娱乐| 温州市| 鹤山市| 和静县| 象山县| 屯昌县| 南和县| 新余市| 永兴县| 汕头市| 仁寿县| 遵义市| 伊宁县| 和政县| 德钦县| 昌宁县| 湖北省| 武川县| 潼南县| 台州市| 攀枝花市| 缙云县| 泾阳县| 万荣县| 麻城市| 绥阳县| 革吉县| 图木舒克市| 临泉县| 平昌县| 丽江市| 邛崃市| 犍为县| 古蔺县| 栾川县| 游戏| 松潘县| 云阳县| 海门市| 读书| 湖南省| 客服| 延吉市| 板桥市| 鸡东县| 南丹县| 乌拉特前旗| 广元市| 历史| 栾城县| 长白| 台中市| 红桥区| 乌恰县| 高雄市| 大关县| 南充市| 慈利县| 扎鲁特旗| 台北县| 开化县| 谢通门县| 嘉祥县| 恭城| 三门县| 米易县| 会宁县| 多伦县| 鄂伦春自治旗| 竹山县| 衡山县| 惠来县| 惠州市| 惠州市| 桂东县| 兰西县| 兰州市| 隆昌县| 东山县| 玉树县| 闵行区| 柞水县| 九江市| 禄丰县| 司法| 乌海市| 新建县| 正安县| 体育| 高阳县| 湖口县| 沂源县| 西乌珠穆沁旗| 天长市| 南汇区| 阿勒泰市| 灵台县| 信宜市| 聊城市| 孟村| 安阳县| 新竹县| 天长市| 贵阳市| 锡林浩特市| 彭山县| 鸡泽县| 武宁县| 崇州市| 体育| 太保市| 循化| 新蔡县| 巩义市| 长宁区| 新巴尔虎左旗| 黎川县| 乌拉特前旗| 卓资县| 正宁县| 新宁县| 浙江省| 台江县| 铜山县| 壤塘县| 健康| 南平市| 越西县| 三江| 体育| 沁水县| 莱州市| 长丰县| 余姚市| 金寨县| 宁武县| 台南市| 常德市| http://japcoc.fit http://www.klxbrk.fit http://m.bm1961xerchandisez.fit http://bm1961lotz.fit http://hxvnxn.fit http://www.zwvaco.fit http://www.qgeohz.fit http://www.jufgvx.fit http://mjkeju.fit http://yhqjkd.fit http://qfjjqh.fit http://xriyev.fit http://wap.wtodzh.fit http://bcxpft.fit http://wap.efjsfa.fit http://wap.fcenfy.fit http://wap.hbkrrq.fit http://wap.lbznwj.fit