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

        相关文章
        相关标签/搜索
        香港马会免费资枓大全香港开奖结果_香港马会2019开奖结果_2019 最快开奖记录结果_小鱼儿玄机2站开奖 开奖结果 彭山县| 天台县| 卢龙县| 繁昌县| 山西省| 民勤县| 克山县| 平果县| 平谷区| 和田县| 永新县| 江油市| 高平市| 平定县| 古交市| 海安县| 安徽省| 丹阳市| 佛坪县| 南乐县| 河北区| 民权县| 镇江市| 南部县| 开化县| 隆安县| 邯郸县| 平陆县| 明溪县| 建始县| 苍南县| 葫芦岛市| 明溪县| 阿勒泰市| 宁波市| 鹤壁市| 阿城市| 隆安县| 同江市| 新田县| 宣汉县| 万山特区| 高州市| 德清县| 大洼县| 东丽区| 酉阳| 神木县| 灵川县| 正宁县| 安远县| 五常市| 喜德县| 巩留县| 溧水县| 康定县| 曲水县| 澄江县| 酒泉市| 仪陇县| 民权县| 苏州市| 佛坪县| 灵山县| 乌鲁木齐县| 西安市| 宿松县| 楚雄市| 绥棱县| 英山县| 新丰县| 兴仁县| 壤塘县| 渭源县| 深圳市| 滕州市| 石景山区| 嵩明县| 闸北区| 黔西县| 成安县| 洞头县| 韶关市| 吴忠市| 姜堰市| 沅陵县| 连城县| 丰城市| 安图县| 额敏县| 扶风县| 如皋市| 伊吾县| 昭觉县| 伊春市| 古丈县| 凯里市| 浠水县| 山丹县| 武川县| 东明县| 大渡口区| 江都市| 茌平县| 龙泉市| 扎赉特旗| 岫岩| 阿拉善左旗| 高淳县| 益阳市| 裕民县| 张家港市| 扎鲁特旗| 铁岭县| 镇远县| 女性| 吉安县| 仁布县| 贵州省| 腾冲县| 通海县| 柳江县| 克山县| 麟游县| 绥棱县| 乐至县| 呼图壁县| 靖边县| 中西区| 临澧县| 松滋市| 宣威市| 鸡泽县| 大埔区| 浑源县| 横山县| 佛冈县| 泰州市| 定襄县| 宁夏| 临洮县| 平武县| 乌拉特中旗| 昌江| 青河县| 乌兰县| 板桥市| 湘西| 司法| 高要市| 汉寿县| 龙海市| 阿图什市| 永仁县| 四川省| 乐清市| 佛教| 天峻县| 利津县| 屏边| 广南县| 镇宁| 疏附县| 怀仁县| 溧阳市| 嘉定区| 定州市| 阿瓦提县| 沙田区| 忻州市| 咸阳市| 宜章县| 万全县| 枝江市| 贵州省| 叶城县| 徐州市| 会昌县| 建瓯市| 烟台市| 汉源县| 合川市| 开平市| 怀远县| 通州市| 冀州市| 临泽县| 丁青县| 扶沟县| 吐鲁番市| 和政县| 双峰县| 泸溪县| 西和县| 科技| 修文县| 石嘴山市| 赞皇县| 和林格尔县| 台安县| 日喀则市| 无为县| 阳城县| 绵竹市| 文成县| 望谟县| 建德市| 甘洛县| 白山市| 东海县| 铜鼓县| 辉县市| 慈利县| 溆浦县| 越西县| 三穗县| 巫山县| 芦山县| 安平县| 华池县| 桂东县| 陵水| 靖宇县| 临颍县| 滦南县| 溆浦县| 多伦县| 隆安县| 天水市| 郓城县| 隆德县| 德化县| 滕州市| 肥东县| 临汾市| 通化市| 武城县| 镇平县| 钟山县| 桂平市| 古蔺县| 商河县| 广元市| 湘乡市| 漳浦县| 河北区| 炉霍县| 宜兴市| 延长县| 通化县| 黄平县| 天水市| 湖州市| 冷水江市| 积石山| 贵定县| 云林县| 长白| 漯河市| 涟水县| 兰考县| 苏尼特左旗| 鄢陵县| 化德县| 怀集县| 喀喇沁旗| 湄潭县| 琼海市| 莎车县| 天镇县| 泰州市| 双辽市| 天祝| 唐海县| 依兰县| 西青区| 融水| 湖南省| 宁津县| 微博| 徐州市| 固安县| 巴青县| 临漳县| 商洛市| 徐水县| 通化县| 汝南县| 威信县| 宝山区| 佳木斯市| 河津市| 大埔县| 连城县| 定南县| 鄂尔多斯市| 客服| 长岛县| 东港市| 夏河县| 义马市| 汽车| 东光县| 温州市| 广宁县| 兴海县| 伊通| 汕尾市| 汉阴县| 鄯善县| 昭通市| 夹江县| 内乡县| 宝清县| 黎城县| 西林县| 右玉县| 淳化县| 平原县| 浪卡子县| 辽阳市| 类乌齐县| 临沧市| 通州区| 余姚市| 泸水县| 中山市| 新郑市| 武城县| 上虞市| 辽中县| 岐山县| 汉源县| 黄梅县| 巴彦淖尔市| 邯郸县| 班玛县| 调兵山市| 鹤峰县| 东乡族自治县| 永顺县| 柳州市| 孟津县| 襄城县| 锦屏县| 丹凤县| 冀州市| 康乐县| 绥德县| 吉隆县| 江安县| 蛟河市| 舟曲县| 海南省| 寿宁县| 自治县| 新津县| 广灵县| 鸡西市| 沛县| 康平县| 光山县| 霞浦县| 九江市| 石城县| 池州市| 闻喜县| 改则县| 遂川县| 靖边县| 黄石市| 揭阳市| 晋中市| 谷城县| 屏边| 濉溪县| 华宁县| 福贡县| 彰化县| 洞头县| 临沭县| 孟州市| 固始县| 九江市| 牡丹江市| 徐水县| 赤峰市| 新营市| 社旗县| 甘谷县| 泰安市| 亚东县| 洞头县| 太和县| 彝良县| 温宿县| 喀喇沁旗| 邢台市| 三门峡市| 佳木斯市| 曲阳县| 乌兰察布市| 竹山县| 胶州市| 界首市| 车险| 溧水县| 石渠县| 阳信县| 台中县| 靖安县| 曲松县| 霍林郭勒市| 宁强县| 镇赉县| 南阳市| 新闻| 吉首市| 南漳县| 安仁县| 天全县| 公安县| 温州市| 平山县| 海南省| 随州市| 扶余县| 屯昌县| 广丰县| 杂多县| 呼和浩特市| 南岸区| 白城市| 县级市| 巴马| 凤翔县| 陇川县| 松潘县| 南召县| 营山县| 呼伦贝尔市| 玉环县| 巴马| 法库县| 清新县| 教育| 沧州市| 聊城市| 陕西省| 临西县| 淮安市| 沅江市| 叙永县| 恩平市| 来宾市| 平武县| 平舆县| 上饶县| 宜城市| 焦作市| 佳木斯市| 通辽市| 称多县| 海门市| 兴安县| 诏安县| 敦煌市| 石狮市| 沾益县| 乌鲁木齐市| 萍乡市| 邓州市| 四会市| 临颍县| 葫芦岛市| 资源县| 高唐县| 商都县| 白水县| 凤台县| 霸州市| 华宁县| 兴和县| 鄂州市| 金平| 阿克| 博湖县| 无锡市| 杭州市| 怀宁县| 将乐县| 东平县| 漠河县| 伊金霍洛旗| 温州市| 响水县| 延边| 将乐县| 永平县| 昌乐县| 台安县| 中山市| 永昌县| 卫辉市| 独山县| 汽车| 延边| 金川县| 华宁县| 尼玛县| 六枝特区| 日照市| 濮阳县| 杭州市| 兰坪| 驻马店市| 太保市| 德保县| 平谷区| 鹤庆县| 宝山区| 新田县| 竹北市| 梨树县| 宜丰县| 保康县| 五华县| 县级市| 勐海县| 河源市| 内乡县| 永安市| 繁昌县| 民和| 彰化县| 嵩明县| 于都县| 西藏| 贵溪市| 界首市| 叙永县| 柳林县| 鄂州市| 建水县| 巴马| 亚东县| 色达县| 丹棱县| 纳雍县| 堆龙德庆县| 红桥区| 林芝县| 长岛县| 太保市| 平顶山市| 建宁县| 芮城县| 青川县| 连南| 凌源市| 云梦县| 台江县| 张家川| 吴川市| 普定县| 澄江县| 涪陵区| 长沙市| 丹寨县| 珠海市| 北票市| 木里| 菏泽市| 敦煌市| 德阳市| 铜陵市| 岗巴县| 库伦旗| 井冈山市| 金川县| 唐山市| 凉城县| 文安县| 宁国市| 阳西县| 水城县| 钦州市| 婺源县| 康平县| 靖州| 射洪县| 安庆市| 罗源县| 乌鲁木齐市| 舟曲县| 瑞昌市| 贡山| 宣城市| 西城区| 鄂托克旗| 马尔康县| 琼中| 霍邱县| 樟树市| 阳朔县| 东源县| 洛阳市| 调兵山市| 镇宁| 明光市| 大荔县| 确山县| 湾仔区| 灌阳县| 太仆寺旗| http://bm1961listenz.fit http://wap.hksftm.fit http://www.xvputn.fit http://txqewq.fit http://wap.glprfr.fit http://jjvgps.fit http://www.bm1961officerz.fit http://m.ddwhyv.fit http://wap.djlrqr.fit http://wap.msmnpw.fit http://sqrqig.fit http://wap.duhbsf.fit http://abrbgr.fit http://wap.fzcefy.fit http://wap.wvoarp.fit http://m.ojwkoq.fit http://wap.uadmge.fit http://m.ctgdxp.fit