记一下做过的SDOI题目,也不算什么题解,就是整理一下
2009 最优图像
费用流,注意是积不是和,所以要取对数。
2009 地图复原
乱搞
2009学校食堂
状态压缩DP,注意小数据的范围
2009虔诚的墓主人 +
BIT,前缀和思想的运用
2009细胞探索
Floodfill
2009 E&D
组合游戏。打表找规律+SG定理
SG定理:组合游戏的结果=各独立游戏的SG函数的nim和。
SG函数:其子状态的SG函数集合中第一个没出现的自然数。
SG函数=0为必输态,否则必赢。
组合游戏题多半有规律,而且常常分形。
2009 SuperGCD
高精度除法
2010 大陆争霸
最短路变形
2010 外星千足虫
解方程,高斯消元
2010 所驼门王的宝藏
构图,SCC最长路
2010地精部落
DP,据说叫什么欧拉序列。推出一个关系式。用上升和下降表示状态。
2010粟粟的书架
显然分两种情况。只有一行时,用划分树;是矩阵时,用前缀和预处理
2010星际竞速
最小费用流 要用zkw费用流。Zkw费用流多用于二分图。
2010 古代猪文
好题,数论经典。基本上数论里常用的算法都包括了。
2011 打地鼠
二分验证,暴力剪枝
2011 计算器
快速幂,扩展欧几里得,离散对数。
2011 【染色】
树链剖分?(不会。。。
2011工作安排
裸的费用流
2012 Longge的问题
积性函数,欧拉函数
2012 棋盘覆盖
A:匹配 B:n*m/3 C:?
2013随机数生成器
求数列通项,离散对数
2013 【森林】
树上两点间路径中的k大边。看题解说主席树可做,也有说划分树可做?不懂求解。。。
2013 直径
只求直径的话可以树形DP然后枚举根,20%。
给出官方题解:
对于一棵树,重心一定被所有直径经过。以重心为根建树,考虑所有能成为直径一端的点。
如果,所有点到根的距离都是直径长度/2,答案是0;
否则这些点一定可以划分成两个集合S1,S2,满足
(1) 对于任意x1, x2∈S1,d(x1, x2)<直径长度。
(2) 对于任意y1, y2∈S2,d(y1, y2)<直径长度。
(3) 对于任意x∈S1,y∈S2,d(x, y)=直径长度。
同时可以发现,S1集合中所有点的lca P1,和S2集合中所有点的lca P2。P1和P2之间的路径即为答案。