GDKOI2015 Day1
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的更多相关文章
- NOIp2016 Day1&Day2 解题报告
Day1 T1 toy 本题考查你会不会编程. //toy //by Cydiater //2016.11.19 #include <iostream> #include <cstd ...
- day1
day1.py ][][: ][: ): : ]['lock'] = 0 json.dump(userlist_message, open(userlist, 'w')) break #输错次数到3次 ...
- day1作业--登录入口
作业概述: 编写一个登录入口,实现如下功能: (1)输入用户名和密码 (2)认证成功后显示欢迎信息 (3)输错三次后锁定 流程图: readme: 1.程序配置文件: 黑名单文件blacklist.t ...
- luogu1003铺地毯[noip2011 提高组 Day1 T1]
题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...
- Python学习路程day1
变量起名: 变量名如果太长,推荐使用下划线来分开,让人看得清晰明白.例:nums_of_alex_girl=19 .或者是驼峰写法,即首字母大写.例:NumOfAlexGf=18 注意:不合法的变量起 ...
- 团队项目——站立会议 DAY1
团队项目--站立会议 DAY1 团队成员介绍(5人):张靖颜.何玥.钟灵毓秀.赵莹.王梓萱 今日(2016/5/6)为站立会议的第一天,一起对团队项目进行讨论,并对每个人的 ...
- Day1 login
使用流程: 1.程序启动后,显示欢迎信息,提示用户输入用户名: 2.判断用户是否存在,不存在则提示重新输入,或者关闭程序:客户存在则提示客户输入密码: 3.判断密码是否正确,如果不正确则提示用户重新输 ...
- contesthunter CH Round #64 - MFOI杯水题欢乐赛day1 solve
http://www.contesthunter.org/contest/CH Round %2364 - MFOI杯水题欢乐赛 day1/Solve Solve CH Round #64 - MFO ...
- noip2011提高组day1+day2解题报告
Day1 T1铺地毯https://www.luogu.org/problem/show?pid=1003 [题目分析] 全部读入以后从最后一个往前找,找到一个矩形的范围覆盖了这个点,那这个矩形就是最 ...
随机推荐
- 5.7.2.2 min()和max()方法
Math对象还包含许多方法,用于辅助完成简单和复杂的数学计算. 其中,min()和max()方法用于确定一组数值中的最小值和最大值.这两个方法都可以接受任意多个数值参数,如下例子: var max = ...
- 预定义异常 - PHP手册笔记
Exception是所有异常的基类,类摘要如下: <?php class Exception { protected string $message; // 异常消息内容 protected i ...
- 获得当前设备可用的内存 和 获取当前任务所占用的内存 (单位:MB)(转)
获取当前任务所占的内存: #include <sys/sysctl.h> #include <mach/mach.h> // 任务占用内存 double usedMemory( ...
- liunx下NetworkManager导致网卡不能启动
前几天在客户现场,配置一台系统为redhat 6.0的服务器,这台服务器是IBM x3755,系统是预装的.在把服务器的IP地址配置完成后,使用命令不能启动网卡.提示:弹出界面 eht0:错误:激活链 ...
- java线程管理
java线程管理 参见: http://harmony.apache.org/subcomponents/drlvm/TM.html 1. 修订历史 2. 关于本文档 2.1. 目的 2.2. 面向的 ...
- poj3094
Quicksum Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13523 Accepted: 9407 Descrip ...
- oracle 物化视图导入导出报错
1.exp导出报EXP-00008: 遇到 ORACLE 错误 1455,ORA-01455: 转换列溢出整数数据类型 2.imp导入报.注: 表包括 ROWID 列, 其值可能已废弃,不是警告也不是 ...
- .net通用权限框架C/S概览
通用权限框架cs部分 先概述一下,cs使用vs2010+sql2008 和bs公用同一个数据库 为使界面好看使用了第三方控件 donetbar和devexpress,正版是要收费的,但是你们都明白的可 ...
- SQL游标+递归查询客户子客户转换率
ALTER PROCEDURE [dbo].[Account3YearsConversion ] as DECLARE @AccountId UNIQUEIDENTIFIER , @yearbefor ...
- mac终端下svn常用命令
svn基本的操作流程就是: 你刚刚进入一个新的公司,让你接手一个正在进行的项目,你打开终端写下了:svn co svn://192.168.1.1/pro/domain 然后就可以在当前目录里面找到一 ...