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(n\log^2 n)\)
ANT-Antisymmetry
把给定的串每个字符取反放在这个字符后面,然后长度和半径为偶数的回文串就是答案了。魔改一下manacher就能做了。
KLO-Blocks
把每个数都减去\(k\),然后再求前缀和,答案就是最大的\(r-l\)满足\(s_r\ge 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
还是一道单调队列题……
这道有点不一样的地方是单调队列维护的不是点的最大值而是区间的最大值(实际上一模一样……)
POI题解整合的更多相关文章
- BZOJ2083: [Poi2010]Intelligence test
2083: [Poi2010]Intelligence test Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 241 Solved: 96[Sub ...
- bzoj2096: [Poi2010]Pilots
Description Tz又耍畸形了!!他要当飞行员,他拿到了一个飞行员测试难度序列,他设定了一个难度差的最大值,在序列中他想找到一个最长的子串,任意两个难度差不会超过他设定的最大值.耍畸形一个人是 ...
- BZOJ2079: [Poi2010]Guilds
2079: [Poi2010]Guilds Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 237 Solved: 181[Submit][Statu ...
- 搜索Ex
哎呀好几天没写POI题解了 (>﹏<) 看着摇曳不定的小旗子深深惶恐 打算开始肝洛谷试炼场的提高分区了[对我就是这么菜… 搜索Ex 比暴搜不错得多的题 洛谷P1514 引水入城 拆成两问来 ...
- 【转】java遍历实体类的属性和数据类型以及属性值
和同学接了个外包的活,由于项目中很多地方要用到poi导出excel,而每次导出都要写很多相同的代码,因为poi的cell.setCellValue();每次设置的都是不同实体bean的属性值,导致代码 ...
- java遍历实体类的属性和数据类型以及属性值
遍历实体类的树形和数据类型一级属性值 /** * 遍历实体类的属性和数据类型以及属性值 * @param model * @throws NoSuchMethodException * @throws ...
- Flume+Kafka+Storm+Hbase+HDSF+Poi整合
Flume+Kafka+Storm+Hbase+HDSF+Poi整合 需求: 针对一个网站,我们需要根据用户的行为记录日志信息,分析对我们有用的数据. 举例:这个网站www.hongten.com(当 ...
- [POI 2008&洛谷P3467]PLA-Postering 题解(单调栈)
[POI 2008&洛谷P3467]PLA-Postering Description Byteburg市东边的建筑都是以旧结构形式建造的:建筑互相紧挨着,之间没有空间.它们共同形成了一条长长 ...
- 项目一:第十四天 1.在realm中动态授权 2.Shiro整合ehcache 缓存realm中授权信息 3.动态展示菜单数据 4.Quartz定时任务调度框架—Spring整合javamail发送邮件 5.基于poi实现分区导出
1 Shiro整合ehCache缓存授权信息 当需要进行权限校验时候:四种方式url拦截.注解.页面标签.代码级别,当需要验证权限会调用realm中的授权方法 Shiro框架内部整合好缓存管理器, ...
随机推荐
- 初学Python,需要装什么软件?
学习Python需要安装什么软件呢?也许你是一位编程小白,还不知道如何如何安装Python软件和开发环境.那么今天我们就来学一下关于Python软件.开发环境的相关知识,希望对你有用. 学Python ...
- JS淘宝小广告
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- Electron+Vue – 基础学习(1): 创建项目
Electron 和 Vue 都是干啥的,就不做过多介绍了,可以去官网瞅瞅.下面总结 Electron+Vue 创建项目,Electron + Vue 创建项目实际上相当于:创建Vue项目 + Ele ...
- python生日贺卡制作以及细节问题的解决最后把python项目发布为exe可执行程序过程
自己今天第一次做一个python生日贺卡: 效果图 参考之前有位大佬的作品,自己稍微的改造了一下下 首先:上程序 Birthday.py """ ----------- ...
- 【spring boot】SpringBoot初学(9.1)– 简单配置corsFilter对跨域请求支持
前言 只是简单的配置实现了cors,并没有讲任何东西.(有兴趣的可看: CORS 跨域 实现思路及相关解决方案) github: https://github.com/vergilyn/SpringB ...
- P3902 递增
链接:P3902 ----------------------------------------- 这道题就是最长上升子序列的模板题,因为我们修改的时候可没说不能改成小数(暴力) --------- ...
- 【Android】LitePal的基础
一.环境配置 LitePal 在GitHub地址为:https://github.com/LitePalFramework/LitePal 我们使用起来也很方便,直接在gradle中配置即可. 如果你 ...
- 安装Gitlab到CentOS(YUM)
运行环境 系统版本:CentOS Linux release 7.3.1611 (Core) 软件版本:Gitlab-ce-11.10.1 硬件要求:最低2核4GB,建议4核8GB 安装过程 1.安装 ...
- C#排序算法的实现---选择排序
一.算法原理 每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完. 选择排序算法的运作如下: 1.对比数组中前一个元素跟后一个元素的大小 ...
- Python分布式进程报错:pickle模块不能序列化lambda函数
今天在学习到廖老师Python教程的分布式进程时,遇到了一个错误:_pickle.PicklingError: Can't pickle <function <lambda> at ...