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>了……

        相关文章
        相关标签/搜索
        4887铁算盘一句解特马香港马会开码结果直播 开奖结果-香港最快开奖现场直播-王中王资料 一肖中特-2018年管家婆彩图 隆子县| 铁岭县| 恩平市| 收藏| 白玉县| 罗源县| 辛集市| 洛浦县| 玉树县| 汝南县| 西丰县| 湘潭市| 鞍山市| 千阳县| 大埔区| 郁南县| 海淀区| 恩施市| 新疆| 莲花县| 新野县| 义乌市| 福鼎市| 上高县| 大冶市| 和龙市| 读书| 肇庆市| 余江县| 明星| 永靖县| 南丰县| 宜兴市| 密云县| 城固县| 双牌县| 宁陵县| 怀宁县| 台南市| 绵竹市| 兴安盟| 穆棱市| 定日县| 深水埗区| 墨竹工卡县| 西平县| 淳化县| 清涧县| 祁连县| 雅江县| 西充县| 南江县| 康定县| 封丘县| 海宁市| 昌吉市| 利津县| 深水埗区| 峡江县| 洛扎县| 阿勒泰市| 松溪县| 郸城县| 庄河市| 方山县| 苏尼特右旗| 浙江省| 游戏| 郎溪县| 崇文区| 阳信县| 金山区| 永福县| 丘北县| 鹿泉市| 汽车| 睢宁县| 克什克腾旗| 上虞市| 吉木萨尔县| 南木林县| 噶尔县| 彭泽县| 成都市| 海淀区| 青州市| 武定县| 中西区| 赤城县| 鄂伦春自治旗| 乌兰察布市| 高密市| 浪卡子县| 海淀区| 乌苏市| 资源县| 社会| 黄石市| 深泽县| 江华| 鹿邑县| 安顺市| 石阡县| 柯坪县| 雷州市| 曲沃县| 岚皋县| 定安县| 镇安县| 潜山县| 彰化市| 文水县| 乐安县| 上饶县| 许昌市| 咸丰县| 赤水市| 观塘区| 峨眉山市| 临泉县| 尼玛县| 万宁市| 久治县| 麻阳| 九龙城区| 富平县| 乐东| 延津县| 昌邑市| 泉州市| 佛山市| 固始县| 麻城市| 台南县| 如皋市| 陕西省| 靖远县| 岳阳市| 惠水县| 昭通市| 德保县| 雅安市| 清新县| 江山市| 崇文区| 萨迦县| 定陶县| 平泉县| 吉首市| 乌鲁木齐市| 武陟县| 阳山县| 东乡| 平果县| 左云县| 喀喇沁旗| 阜新市| 开远市| 湖北省| 宿州市| 凤阳县| 德清县| 高淳县| 陈巴尔虎旗| 温泉县| 太仆寺旗| 桂东县| 沁水县| 上犹县| 阳东县| 廉江市| 祥云县| 家居| 桂阳县| 增城市| 白城市| 休宁县| 双鸭山市| 吉首市| 隆林| 宣威市| 萍乡市| 永州市| 聂荣县| 哈巴河县| 习水县| 远安县| 闽清县| 刚察县| 重庆市| 宜丰县| 梓潼县| 万荣县| 福贡县| 卢龙县| 阜新市| 祁阳县| 留坝县| 隆德县| 外汇| 新野县| 龙井市| 策勒县| 宣恩县| 顺义区| 黎川县| 吴旗县| 巴彦淖尔市| 开江县| 墨江| 靖远县| 曲阜市| 汉寿县| 齐河县| 桐梓县| 休宁县| 临猗县| 玛纳斯县| 田林县| 常州市| 新丰县| 通辽市| 上林县| 玛纳斯县| 吴桥县| 都昌县| 宁津县| 南华县| 浪卡子县| 左贡县| 搜索| 太湖县| 平潭县| 天祝| 鲁山县| 西贡区| 增城市| 万全县| 吉安市| 重庆市| 娱乐| 达尔| 丰城市| 兴宁市| 赣州市| 静安区| 广灵县| 皮山县| 庆城县| 新密市| 东宁县| 新蔡县| 徐水县| 宣恩县| 马龙县| 安塞县| 屏东市| 衡水市| 应用必备| 元谋县| 吴川市| 卢氏县| 海林市| 萨嘎县| 获嘉县| 新巴尔虎左旗| 南丹县| 宣城市| 铜梁县| 和硕县| 塘沽区| 故城县| 达拉特旗| 长子县| 特克斯县| 织金县| 湖北省| 洪泽县| 康马县| 景德镇市| 祁连县| 抚松县| 普格县| 吴江市| 白河县| 康保县| 溧阳市| 宜都市| 如皋市| 乌鲁木齐市| 和顺县| 普洱| 邳州市| 达孜县| 闽清县| 道真| 桓台县| 蒙自县| 渭南市| 广宗县| 星子县| 邵阳县| 石泉县| 西畴县| 晴隆县| 潍坊市| 化德县| 贵南县| 松滋市| 鄂尔多斯市| 响水县| 中西区| 盐池县| 皮山县| 淮安市| 扎囊县| 石狮市| 师宗县| 天水市| 茌平县| 平顶山市| 巨野县| 克什克腾旗| 故城县| 拉萨市| 平度市| 百色市| 华坪县| 忻州市| 池州市| 凭祥市| 永寿县| 巍山| 平遥县| 吉安市| 大庆市| 岳普湖县| 渭南市| 丹江口市| 喀喇沁旗| 鄯善县| 毕节市| 靖远县| 瑞安市| 东方市| 同心县| 瑞丽市| 丰原市| 铁力市| 巴林右旗| 尼勒克县| 贵定县| 钟山县| 潜江市| 中阳县| 阿克陶县| 蓝山县| 静海县| 武穴市| 桃园县| 万宁市| 科技| 九寨沟县| 安顺市| 昌都县| 深水埗区| 鲁甸县| 马山县| 铜陵市| 新巴尔虎右旗| 乌兰县| 铜鼓县| 武山县| 竹北市| 望都县| 五常市| 台江县| 彭阳县| 英超| 甘孜县| 壤塘县| 平武县| 巴南区| 文山县| 仁怀市| 竹山县| 青浦区| 长武县| 温州市| 曲水县| 镇沅| 盐池县| 静宁县| 赞皇县| 扎鲁特旗| 景宁| 汝南县| 乌兰察布市| 黄骅市| 三江| 确山县| 湖南省| 青海省| 调兵山市| 灵山县| 玉门市| 龙泉市| 益阳市| 历史| 宜都市| 长乐市| 清河县| 高要市| 巴林右旗| 凤庆县| 仪征市| 堆龙德庆县| 常宁市| 出国| 吴江市| 凤城市| 德庆县| 黄龙县| 彰化县| 锡林浩特市| 贵定县| 云南省| 大英县| 陆河县| 广昌县| 军事| 吉水县| 涿鹿县| 铜梁县| 苏尼特右旗| 库尔勒市| 宿迁市| 延安市| 阿巴嘎旗| 太仆寺旗| 含山县| 庆云县| 晋城| 金川县| 利川市| 建始县| 惠安县| 开原市| 芦山县| 镶黄旗| 珠海市| 尼勒克县| 山阴县| 蓬溪县| 乌恰县| 房产| 中超| 营山县| 高台县| 张家界市| 咸丰县| 玉环县| 怀来县| 青海省| 阳江市| 文水县| 孝昌县| 沾益县| 延安市| 临江市| 凌海市| 花莲市| 博乐市| 金塔县| 米脂县| 三都| 疏勒县| 茶陵县| 威海市| 土默特右旗| 江华| 育儿| 山东省| 南平市| 邵东县| 湘西| 长岭县| 寿宁县| 铜山县| 武汉市| 云梦县| 耒阳市| 上杭县| 许昌县| 宿州市| 宜丰县| 汽车| 衡阳县| 大荔县| 绥芬河市| 游戏| 甘南县| 渑池县| 德钦县| 剑河县| 吉木乃县| 邢台市| 铁岭县| 抚远县| 延长县| 西峡县| 凉城县| 万盛区| 房产| 黄浦区| 桑植县| 广汉市| 河西区| 乌海市| 滨海县| 赤城县| 呼玛县| 青海省| 长宁县| 贵港市| 舟山市| 汽车| 安达市| 普定县| 扬州市| 乐昌市| 德江县| 南投市| 嵊泗县| 信宜市| 青川县| 敦煌市| 南郑县| 仁寿县| 揭东县| 沂水县| 乌鲁木齐市| 岚皋县| 博爱县| 酒泉市| 鄂伦春自治旗| 娄烦县| 汝阳县| 琼海市| 贞丰县| 城固县| 彰化县| 民勤县| 观塘区| 芷江| 花莲县| 贡觉县| 湘潭县| 襄城县| 西城区| 六盘水市| 泌阳县| 鹤岗市| 济阳县| 德昌县| 曲周县| 五原县| 杭锦旗| 琼中| 宣威市| 泰宁县| 临海市| 合肥市| 于田县| 湘潭县| 方正县| 刚察县| 永新县| 寻甸| 永嘉县| 临湘市| 灌阳县| 辰溪县| 邵东县| 宣恩县| 遂溪县| 南城县| 军事| 邛崃市| 涞源县| 四会市| 娱乐| 十堰市| 山西省| 乐业县| 巴彦县| 台山市| 疏勒县| 广平县| 交城县| 大连市| 宁晋县| 隆化县| 华宁县| 莲花县| 陵川县| 苗栗市| 内乡县| 葵青区| 九江市| 昭通市| 浑源县| 横峰县| 广南县| 社会| http://www.hz0j2r7vo.fun http://www.jx1870giftv.fun http://m.jx1870forgetv.fun http://m.jx1870killv.fun http://jx1870factorv.fun http://www.jx1870flashv.fun http://www.hz0j4r3vo.fun http://m.hz0j3r4vo.fun http://wap.jx1870laborv.fun http://m.jx1870greyv.fun http://www.jx1870increasev.fun http://hz0j2r7vo.fun http://hz0j3r2vo.fun http://jx1870faxv.fun http://m.jx1870fastv.fun http://www.jx1870greenv.fun http://www.jx1870fantasyv.fun http://jx1870knowv.fun