zoukankan      html  css  js  c++  java
  • POI题解整合

    我也不知道为啥我就想把POI的题全都放到一篇blog里写完。

    POI 2005

    SAM-Toy Cars

    贪心,每次选下次出现最晚的。

    POI 2006

    KRA-The Disks

    箱子位置单调,所以记录现在的箱子位置和前缀最小值,向上枚举就行。

    OKR-Periods of Words

    戳这

    POI 2007

    OSI-Axes of Symmetry

    戳这

    MEG-Megalopolis

    树剖 or dfs序上维护前缀和。

    POI 2010

    GIL-Guilds

    按照洛谷的题面,可以发现灰点就是用来搞笑的,然后在生成树上染个色就行了。

    KOR-Beads

    枚举长度,hash判重就行,注意先预处理出整串的hash值,然后(O(1))求每一段的hash值。复杂度(O(nlog^2 n))

    ANT-Antisymmetry

    把给定的串每个字符取反放在这个字符后面,然后长度和半径为偶数的回文串就是答案了。魔改一下manacher就能做了。

    KLO-Blocks

    把每个数都减去(k),然后再求前缀和,答案就是最大的(r-l)满足(s_rge s_l)。求这个东西可以先把前缀和塞到一个单调栈里,然后从后往前计算答案,注意到如果(r_1)的答案在(l_1)处,那么对于(r_2<r_1)(r_2),其对应的(l_2)也必须小于(l_1)才有可能成为答案,这个东西是有单调性的,所以(O(n))地来 回扫2遍就行了。

    PIL-Pilots

    枚举右端点,单调队列维护当前最大最小值。因为如果在一个位置不合法了,之后的位置一定也不合法,所以就要出队靠前的元素。

    GRA-The Minima Game

    一开始想(min-max)搜索,结果一看数据范围就gg了。然后这个题实际上就是一个sb题,容易发现取肯定取相邻的一端。排个序之后(f_i)表示在前(i)小的里面取的答案,然后转移就是第(i)个数是和之前的一起拿((f_{i-1})),还是自已成为一手((a_i-f_{i-1}))

    POI 2011

    PAT-Sticks

    一个神仙的结论:如果有能排成三角形的三根木棍,那么一定有三根长度相邻的木棍能排成三角形。所以排个序,维护三个相邻的不同色的木棍看是否合法就行了。

    TEM-Temperature

    一开始没看到是子串,想了好久才发现……

    子串就很好做了,要满足每个(r)都大于之前的所有(l),维护一个单调队列就行了。

    Lightning Conductor

    题解戳这

    ROT-Tree Rotations

    线段树合并。

    POI 2012

    FES-Festival

    差分约束,然后一个scc里的最长路就是这个scc里能选的范围,然后每个scc又互不影响,答案加起来就行。

    LIT-Letters

    逆序对数。这里有一种比较短的求A的逆B序对数的方法:

    for (int i = 1; i <= n; ++i) {
        nxt[i] = hd[a[i] - 'A'], hd[a[i] - 'A'] = i;
    }
    for (int i = n; i; --i) {
        int c = b[i] - 'A';
        ans += q(hd[c]);
        m(hd[c]);
        hd[c] = nxt[hd[c]];
    }
    

    POI 2014

    PTA-Little Bird

    又是一道单调队列优化DP题……

    RAJ-Rally

    戳这

    POI 2015

    WIL-Wilcze doły

    还是一道单调队列题……

    这道有点不一样的地方是单调队列维护的不是点的最大值而是区间的最大值(实际上一模一样……)

  • 相关阅读:
    js导出table到excel,同时兼容FF和IE
    Android 程式开发:(廿一)消息传递 —— 21.3 使用Intent发送短信
    [置顶] 让金融互联网-P2P网贷融资量增长10倍的广告宣传公益活动
    Headroom.js插件用法
    HDU 5289 Assignment(单调队列)
    sh_Spring整合Hibernate
    怎样高速启动Android模拟器(Android Emulator)
    设计模式——介绍与工厂模式(扁平管理模式VS职业经理人模式)
    在c++11中你最惊讶的新feature是什么?
    python的私有化
  • 原文地址:https://www.cnblogs.com/wyxwyx/p/poi2010.html
Copyright © 2011-2022 走看看