博客园 - zht467
uuid:7d267088-5232-4821-9010-8cd5fdd6cd4f;id=1077050
2018-01-23T00:32:24Z
zht467
https://www.cnblogs.com/zhenghaotian/
feed.cnblogs.com
https://www.cnblogs.com/zhenghaotian/p/8333839.html
基数排序 - zht467
基数排序模板。。 至于用16进制乱搞的那个函数,背过好了。
2018-01-23T00:32:00Z
2018-01-23T00:32:00Z
zht467
https://www.cnblogs.com/zhenghaotian/
【摘要】基数排序模板。。 至于用16进制乱搞的那个函数,背过好了。 <a href="https://www.cnblogs.com/zhenghaotian/p/8333839.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhenghaotian/p/8323418.html
[luoguP1975] [国家集训队]排队(分块) - zht467
传送门 直接暴力分块,然后在每一个块内排序。 查询时可以在每一个块内二分。
2018-01-20T23:47:00Z
2018-01-20T23:47:00Z
zht467
https://www.cnblogs.com/zhenghaotian/
【摘要】传送门 直接暴力分块,然后在每一个块内排序。 查询时可以在每一个块内二分。 <a href="https://www.cnblogs.com/zhenghaotian/p/8323418.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhenghaotian/p/8319799.html
[luoguP2224] [HNOI2001]产品加工(背包DP) - zht467
传送门 f[i][j]表示第一个机器耗时j,第二个机器耗时f[i][j] 第一维可以滚掉
2018-01-19T23:16:00Z
2018-01-19T23:16:00Z
zht467
https://www.cnblogs.com/zhenghaotian/
【摘要】传送门 f[i][j]表示第一个机器耗时j,第二个机器耗时f[i][j] 第一维可以滚掉 <a href="https://www.cnblogs.com/zhenghaotian/p/8319799.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhenghaotian/p/8316049.html
[luoguP2657] [SCOI2009]windy数(数位DP) - zht467
传送门 f[i][j]表示位数为i,第i位为j的windy数的个数 先预处理出f数组。 求的时候先算没有前导0的答案,再算位数和给定的数相同的答案。
2018-01-19T03:27:00Z
2018-01-19T03:27:00Z
zht467
https://www.cnblogs.com/zhenghaotian/
【摘要】传送门 f[i][j]表示位数为i,第i位为j的windy数的个数 先预处理出f数组。 求的时候先算没有前导0的答案,再算位数和给定的数相同的答案。 <a href="https://www.cnblogs.com/zhenghaotian/p/8316049.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhenghaotian/p/8315585.html
[luoguP3205] [HNOI2010]CHORUS 合唱队(区间DP) - zht467
传送门 注意到只能在两边加人,有一种区间dp的感觉。 f[i][j][0/1]表示已经搞完区间[i,j]且上次搞的是左/右的方案数 那么他只能从f[i+1][j]或f[i][j-1]的某种状态得到,随便yy以下就知道状态转移方程了
2018-01-19T02:15:00Z
2018-01-19T02:15:00Z
zht467
https://www.cnblogs.com/zhenghaotian/
【摘要】传送门 注意到只能在两边加人,有一种区间dp的感觉。 f[i][j][0/1]表示已经搞完区间[i,j]且上次搞的是左/右的方案数 那么他只能从f[i+1][j]或f[i][j-1]的某种状态得到,随便yy以下就知道状态转移方程了 <a href="https://www.cnblogs.com/zhenghaotian/p/8315585.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhenghaotian/p/8312962.html
[luoguP2587] [ZJOI2008]泡泡堂(贪心) - zht467
传送门 贪心,很像田忌赛马那样,但是因为有平局加一分导致那样的贪心不好处理。 先将两个数组从小到大排序。 比较a最大和b最大,如果a比b大,那么直接赢掉 否则 比较a最小和b最小,如果a比b大,那么直接赢掉 否则 比较a最小和b最大,如果相等,那么平局,否则就输掉
2018-01-18T12:48:00Z
2018-01-18T12:48:00Z
zht467
https://www.cnblogs.com/zhenghaotian/
【摘要】传送门 贪心,很像田忌赛马那样,但是因为有平局加一分导致那样的贪心不好处理。 先将两个数组从小到大排序。 比较a最大和b最大,如果a比b大,那么直接赢掉 否则 比较a最小和b最小,如果a比b大,那么直接赢掉 否则 比较a最小和b最大,如果相等,那么平局,否则就输掉 <a href="https://www.cnblogs.com/zhenghaotian/p/8312962.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhenghaotian/p/8312768.html
[luoguP3332] [ZJOI2013]K大数查询(树套树) - zht467
传送门 一开始想的是区间线段树套权值线段树,结果好像不能实现。 然后题解是权值线段树套区间线段树。 区间线段树上标记永久化就省去了pushdown的操作减少常数。 标记永久化的话。。yy不出来就看代码吧。 然后注意开long long
2018-01-18T11:55:00Z
2018-01-18T11:55:00Z
zht467
https://www.cnblogs.com/zhenghaotian/
【摘要】传送门 一开始想的是区间线段树套权值线段树,结果好像不能实现。 然后题解是权值线段树套区间线段树。 区间线段树上标记永久化就省去了pushdown的操作减少常数。 标记永久化的话。。yy不出来就看代码吧。 然后注意开long long <a href="https://www.cnblogs.com/zhenghaotian/p/8312768.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhenghaotian/p/8306110.html
[BZOJ2456] mode(一道很有意思的题) - zht467
传送门 看到这个题的第一反应是离散化+线段树乱搞。。 eeeeeeeeeeee感觉数据结构学傻了,其实直接存下来,sort一遍,n/2的位置的就是答案 当然前提是空间够的话 1m的空间连数组都开不下 于是有了一个很巧妙的思路,吼吧,直接给链接 http://blog.csdn.net/suncong
2018-01-17T13:26:00Z
2018-01-17T13:26:00Z
zht467
https://www.cnblogs.com/zhenghaotian/
【摘要】传送门 看到这个题的第一反应是离散化+线段树乱搞。。 eeeeeeeeeeee感觉数据结构学傻了,其实直接存下来,sort一遍,n/2的位置的就是答案 当然前提是空间够的话 1m的空间连数组都开不下 于是有了一个很巧妙的思路,吼吧,直接给链接 http://blog.csdn.net/suncong <a href="https://www.cnblogs.com/zhenghaotian/p/8306110.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhenghaotian/p/8304917.html
[luoguP3644] [APIO2015]八邻旁之桥(权值线段树) - zht467
传送门 首先如果起点终点都在同一侧可以直接处理,如果需要过桥答案再加1 对于k等于1的情况 桥的坐标为x的话,a和b为起点和终点坐标 $ans=\sum_{1}^{n} abs(a_{i}-x)+abs(b_{i}-x)$ 起点和终点显然可以合并 那么 $ans=\sum_{1}^{n} abs(a
2018-01-17T10:33:00Z
2018-01-17T10:33:00Z
zht467
https://www.cnblogs.com/zhenghaotian/
【摘要】传送门 首先如果起点终点都在同一侧可以直接处理,如果需要过桥答案再加1 对于k等于1的情况 桥的坐标为x的话,a和b为起点和终点坐标 $ans=\sum_{1}^{n} abs(a_{i}-x)+abs(b_{i}-x)$ 起点和终点显然可以合并 那么 $ans=\sum_{1}^{n} abs(a <a href="https://www.cnblogs.com/zhenghaotian/p/8304917.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhenghaotian/p/8304877.html
[luoguP2596] [ZJOI2006]书架(splay) - zht467
传送门 题目中的几个操作,直接splay搞一下即可: 没了
2018-01-17T10:24:00Z
2018-01-17T10:24:00Z
zht467
https://www.cnblogs.com/zhenghaotian/
【摘要】传送门 题目中的几个操作,直接splay搞一下即可: 没了 <a href="https://www.cnblogs.com/zhenghaotian/p/8304877.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhenghaotian/p/8298582.html
[luoguP1110] [ZJOI2007]报表统计(set暴力) - zht467
传送门 两个multiset 一个记录相邻元素的差,一个放所有的元素 2个数组 val[i]记录第i个的值,last[i]记录第i个最后插入的数的值 然后乱搞
2018-01-16T12:13:00Z
2018-01-16T12:13:00Z
zht467
https://www.cnblogs.com/zhenghaotian/
【摘要】传送门 两个multiset 一个记录相邻元素的差,一个放所有的元素 2个数组 val[i]记录第i个的值,last[i]记录第i个最后插入的数的值 然后乱搞 <a href="https://www.cnblogs.com/zhenghaotian/p/8298582.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhenghaotian/p/8287997.html
[luoguP2336] [SCOI2012]喵星球上的点名(后缀数组 + 暴力) - zht467
传送门 原本的想法是把所有的串不管是名字还是询问都连起来,记录一下询问串在sa数组中的位置 对于每个询问可以在sa数组中二分出左右边界,第一问用莫队,第二问差分乱搞。 结果发现我差分的思路想错了,先写了一个暴力,二分出左右边界之后直接从l枚举到r,想试试正确性,就交了一遍,结果过了。。。。 因为是暴
2018-01-15T06:40:00Z
2018-01-15T06:40:00Z
zht467
https://www.cnblogs.com/zhenghaotian/
【摘要】传送门 原本的想法是把所有的串不管是名字还是询问都连起来,记录一下询问串在sa数组中的位置 对于每个询问可以在sa数组中二分出左右边界,第一问用莫队,第二问差分乱搞。 结果发现我差分的思路想错了,先写了一个暴力,二分出左右边界之后直接从l枚举到r,想试试正确性,就交了一遍,结果过了。。。。 因为是暴 <a href="https://www.cnblogs.com/zhenghaotian/p/8287997.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhenghaotian/p/8286579.html
[luoguP2463] [SDOI2008]Sandy的卡片(后缀数组 + st表) - zht467
传送门 很容易想到,题目中的相同是指差分数组相同。 那么可以把差分数组连起来,中间加上一个没有出现过的且字典序小的数 双指针移动,用st表维护height数组中的最小值。 当然用单调队列应该也可以且更快。
2018-01-15T00:45:00Z
2018-01-15T00:45:00Z
zht467
https://www.cnblogs.com/zhenghaotian/
【摘要】传送门 很容易想到,题目中的相同是指差分数组相同。 那么可以把差分数组连起来,中间加上一个没有出现过的且字典序小的数 双指针移动,用st表维护height数组中的最小值。 当然用单调队列应该也可以且更快。 <a href="https://www.cnblogs.com/zhenghaotian/p/8286579.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhenghaotian/p/8270665.html
[luoguP3302] [SDOI2013]森林(主席树 + 启发式合并 + lca) - zht467
传送门 显然树上第k大直接主席树 如果连边的话,我们重构小的那一棵,连到另一棵上。 说起来简单,调了我一晚上。 总的来说3个错误: 1.离散化写错位置写到了后面 2."="写成了"==" 3.加双向边时加成了单向边 3个错误3个小时。。。
2018-01-11T13:39:00Z
2018-01-11T13:39:00Z
zht467
https://www.cnblogs.com/zhenghaotian/
【摘要】传送门 显然树上第k大直接主席树 如果连边的话,我们重构小的那一棵,连到另一棵上。 说起来简单,调了我一晚上。 总的来说3个错误: 1.离散化写错位置写到了后面 2."="写成了"==" 3.加双向边时加成了单向边 3个错误3个小时。。。 <a href="https://www.cnblogs.com/zhenghaotian/p/8270665.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhenghaotian/p/8260917.html
[luoguP2526] [SHOI2001]小狗散步(二分图最大匹配) - zht467
传送门 简直就是模板题啊!
2018-01-10T13:38:00Z
2018-01-10T13:38:00Z
zht467
https://www.cnblogs.com/zhenghaotian/
【摘要】传送门 简直就是模板题啊! <a href="https://www.cnblogs.com/zhenghaotian/p/8260917.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhenghaotian/p/8260740.html
[luoguP3231] [HNOI2013]消毒(最小点覆盖 + 状压) - zht467
传送门 考虑贪心,控制某一维为1,另两位最大是最优的,也就是一次选一个厚度为1的面 那么对于每个点,可以有3种面是可以选到它的 然后gg 考虑二维的状态,一个平面,有些点,一次选一行或一列最优 那么每一个点i,j可以被行i和列j选中,将i->j连接一条边,每一条边就代表一个点 选取最少的点覆盖所有边
2018-01-10T12:52:00Z
2018-01-10T12:52:00Z
zht467
https://www.cnblogs.com/zhenghaotian/
【摘要】传送门 考虑贪心,控制某一维为1,另两位最大是最优的,也就是一次选一个厚度为1的面 那么对于每个点,可以有3种面是可以选到它的 然后gg 考虑二维的状态,一个平面,有些点,一次选一行或一列最优 那么每一个点i,j可以被行i和列j选中,将i->j连接一条边,每一条边就代表一个点 选取最少的点覆盖所有边 <a href="https://www.cnblogs.com/zhenghaotian/p/8260740.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhenghaotian/p/8260229.html
[luoguP1963] [NOI2009]变换序列(二分图最大匹配) - zht467
传送门 根据公式xjb推一下,然后就可以连边。 考虑到字典序最小,和匈牙利算法的实现过程,要倒序匹配。
2018-01-10T10:46:00Z
2018-01-10T10:46:00Z
zht467
https://www.cnblogs.com/zhenghaotian/
【摘要】传送门 根据公式xjb推一下,然后就可以连边。 考虑到字典序最小,和匈牙利算法的实现过程,要倒序匹配。 <a href="https://www.cnblogs.com/zhenghaotian/p/8260229.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhenghaotian/p/8259755.html
[luoguP1129] [ZJOI2007]矩阵游戏(二分图最大匹配) - zht467
传送门 每一行的1和每一列的1不管怎么换还是在同一行和同一列 目标状态中有n个1是不同行且不同列的 那么就是能否找出n个不同行不同列的1 就是每一行选一个不同列的1 如果矩阵中位置i,j为1,那么点i到点j连一条边 跑匈牙利即可
2018-01-10T09:20:00Z
2018-01-10T09:20:00Z
zht467
https://www.cnblogs.com/zhenghaotian/
【摘要】传送门 每一行的1和每一列的1不管怎么换还是在同一行和同一列 目标状态中有n个1是不同行且不同列的 那么就是能否找出n个不同行不同列的1 就是每一行选一个不同列的1 如果矩阵中位置i,j为1,那么点i到点j连一条边 跑匈牙利即可 <a href="https://www.cnblogs.com/zhenghaotian/p/8259755.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhenghaotian/p/8257345.html
[luoguP1640] [SCOI2010]连续攻击游戏(二分图最大匹配) - zht467
传送门 我们将每一个属性和物品连边,然后枚举从小到大属性跑匈牙利,直到找不到连边
2018-01-10T02:39:00Z
2018-01-10T02:39:00Z
zht467
https://www.cnblogs.com/zhenghaotian/
【摘要】传送门 我们将每一个属性和物品连边,然后枚举从小到大属性跑匈牙利,直到找不到连边 <a href="https://www.cnblogs.com/zhenghaotian/p/8257345.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhenghaotian/p/8256828.html
[luoguP2569] [SCOI2010]股票交易(DP + 单调队列) - zht467
传送门 $f[i][j]$ 表示第i天,手中股票数为j的最优解 初始化 $f[i][0]=0$ $0<=i<=n$ 4种方式转移 可以将 $f[i-w-1][k]+k*as$ 和 $f[i-w-1][k]+k*bs$ 放到单调队列中
2018-01-10T00:59:00Z
2018-01-10T00:59:00Z
zht467
https://www.cnblogs.com/zhenghaotian/
【摘要】传送门 $f[i][j]$ 表示第i天,手中股票数为j的最优解 初始化 $f[i][0]=0$ $0<=i<=n$ 4种方式转移 可以将 $f[i-w-1][k]+k*as$ 和 $f[i-w-1][k]+k*bs$ 放到单调队列中 <a href="https://www.cnblogs.com/zhenghaotian/p/8256828.html" target="_blank">阅读全文</a>