P1

题目描述:

  判断一个环形字符串(或者减去一个字符之后)是否是回文串

solution:

1.hash

  将字符串的前缀进行hash,然后将字符串翻转,再做一次hash,然后枚举对称轴,判断两边的hash值是否相等就可以了。

  时间复杂度:\( O(n) \)

2.manacher

  将字符串倍增,然后直接求最长回文串,判断是否大于等于原串长。

  时间复杂度:\( O(n) \)

P2

题目描述:

  经典网络流

solution:

  经典路径网络流,将每个点拆成入点与出点,dicnic。

   时间复杂度:\( O(52^2m) \)

P3

题目描述:

  哈密顿回路最优方案

solution:

  看题目的时候发现是哈密顿回路,但哈密顿回路是NP完全问题,数据太大了。然后发现题目有特殊性,i号点连向\( (2i)\%N \)与\( (2i+1)\%N \),N为奇数是无解的,当N为偶数时,i与\( i+\frac{N}{2} \)的入点与出点是相同的,就可以把原图缩成原来的\( \frac{1}{2} \),每条边必须走一次。这样就把哈密顿回路转化成欧拉回路(环套环搜索),题目要求最优方案就贪心一下好了。

  时间复杂度:\( O(n) \)

P4

题目描述:

  给出一棵树,每个结点有颜色和点权,支持三种操作:

  1、将子树的某两种颜色交换

  2、路径某颜色权值和

  3、改变某结点的颜色与点值。

solution:

1.树链剖分+DFS序

  这题就难在子树修改,大多数的数据结构只能修改链。同一棵子树的点在DFS序中是连续的,所以只要将树链剖分的线段树的点的顺序变成DFS序,将可以实现子树修改。每个结点记住一个对应关系,表示新的颜色对应哪种旧颜色,稍微处理一下就可以了。

  时间复杂度:\( O(nlogn) \)

2.10棵LCT

  每一种颜色开一棵LCT,维护该种颜色的结点(不是这种颜色的也要记,不过权值为0罢了),子树修改的时候直接把子树的根的父亲进行修改,而第三种操作有点麻烦,要记住树节点的地址,否则搞不清这个点究竟在那棵LCT里。

  时间复杂度:\( O(nlogn) \)  常数较大

3.ETR(Euler Tour Representation)的序列

  这是DFS序的拓展,按照时间戳来建结点,用DFS遍历这棵树,刚开始搜到这个点时在线段树建一个点(正),搜索完后再建一个点(负),这就将到根路径变成了前缀和,颜色交换是区间操作,用线段树可以完美解决。

  时间复杂度:\( O(nlogn) \)

GDKOI2015 Day1的更多相关文章

  1. NOIp2016 Day1&Day2 解题报告

    Day1 T1 toy 本题考查你会不会编程. //toy //by Cydiater //2016.11.19 #include <iostream> #include <cstd ...

  2. day1

    day1.py ][][: ][: ): : ]['lock'] = 0 json.dump(userlist_message, open(userlist, 'w')) break #输错次数到3次 ...

  3. day1作业--登录入口

    作业概述: 编写一个登录入口,实现如下功能: (1)输入用户名和密码 (2)认证成功后显示欢迎信息 (3)输错三次后锁定 流程图: readme: 1.程序配置文件: 黑名单文件blacklist.t ...

  4. luogu1003铺地毯[noip2011 提高组 Day1 T1]

    题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...

  5. Python学习路程day1

    变量起名: 变量名如果太长,推荐使用下划线来分开,让人看得清晰明白.例:nums_of_alex_girl=19 .或者是驼峰写法,即首字母大写.例:NumOfAlexGf=18 注意:不合法的变量起 ...

  6. 团队项目——站立会议 DAY1

    团队项目--站立会议 DAY1        团队成员介绍(5人):张靖颜.何玥.钟灵毓秀.赵莹.王梓萱        今日(2016/5/6)为站立会议的第一天,一起对团队项目进行讨论,并对每个人的 ...

  7. Day1 login

    使用流程: 1.程序启动后,显示欢迎信息,提示用户输入用户名: 2.判断用户是否存在,不存在则提示重新输入,或者关闭程序:客户存在则提示客户输入密码: 3.判断密码是否正确,如果不正确则提示用户重新输 ...

  8. contesthunter CH Round #64 - MFOI杯水题欢乐赛day1 solve

    http://www.contesthunter.org/contest/CH Round %2364 - MFOI杯水题欢乐赛 day1/Solve Solve CH Round #64 - MFO ...

  9. noip2011提高组day1+day2解题报告

    Day1 T1铺地毯https://www.luogu.org/problem/show?pid=1003 [题目分析] 全部读入以后从最后一个往前找,找到一个矩形的范围覆盖了这个点,那这个矩形就是最 ...

随机推荐

  1. Javascript 拖拽雏形——逐行分析代码,让你轻松了解拖拽的原理

    拖拽的原理: 其实就是鼠标与左上角的距离保持不变.我们来看下图, 这红点就是鼠标. 拖拽拖拽实际上来说就是通过鼠标的位置来计算物体的位置,就是这么简单,就是这么任性. 那这个距离怎么求呢?? 鼠标的位 ...

  2. Almost Prime

    Description Almost Prime time limit per test: 2 seconds memory limit per test: 256 megabytes input: ...

  3. Generator & yield write in sync way

    Generator & yield write in sync way var p = new Promise(function(resolve, reject){ setTimeout(fu ...

  4. 转发:使用sql命令查询视图中所有引用的基础表

    转自:使用sql命令查询视图中所有引用的基础表 使用sql命令查询视图中所有引用的基础表 之前有写过如何利用sql查询视图中所有引用的表发现这个方法并不能查出视图中所有的基础表,如果视图中有嵌套视图就 ...

  5. python----slots属性安全类

    问题:__slots__可以用于构造安全的类.如果一个类使用了__slots__那么它的属性就不在自由了. 下面举例说明: 1.自由属性. class person(object): def __in ...

  6. jenkins中Deploy to container Plugin插件发布配置

    参数详解: 第一项(WAR/EAR files):是war包的相对路径(相对于工作区路径,即在工作区中war包的相对路径.)如我的maven执行完成之后会在工作区的target目录下生成项目.war, ...

  7. Es分析

    http://my.oschina.net/lxbzj/blog/138587 http://donlianli.iteye.com/blog/1923017 http://tangzhaohui.n ...

  8. haproxy hdr_beg 配置

    v-dev-app01:/root# ping www.zjdev.com PING www.zjdev.com (192.168.32.16) 56(84) bytes of data. 64 by ...

  9. 为什么国外程序员爱用苹果 Mac 电脑?

      Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里.普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒.那么为什么专业人士也对 Mac 情有独钟呢?从个人 ...

  10. OpenLayers 添加OpenStreetMap(OSM)瓦片层示例

    This article from:http://wiki.openstreetmap.org/wiki/OpenLayers_Simple_Example Deploy an OpenStreetM ...