摘要: 传送门 起手线段树肯定可以做 但是更优的做法也有 更好的利用了题面的性质 就是单调栈 单调栈功能没有单调队列那么强大 但是非常适合这道题 修改的时候按照单调栈的原则插入 查询的时候暴力二分 由于栈里是递减的 所以找一个最左边的满足要求的就行 Code: 1 #include<cstdio> 2 #i 阅读全文
posted @ 2018-11-08 19:32 白怀潇 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 传送门 经典并查集 看的时候思路还卡了一下 这题唯一的问题就在于需要维护一排中最后一个的位置 其实维护一下总个数就行了 sze记录总个数 dis记录与根节点的距离 所以合并方程比较显然 Code: 这里sze我让每个节点都返回整个的sze 方便一点 阅读全文
posted @ 2018-11-08 18:33 白怀潇 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 传送门 神仙题 首先转化成0/1串没有问题 然后1的个数有限?限制条件M<=5? 状压吧孩子 f[i][S]表示第i位S局面下方案数 所以可以按照题意转移 然后转移只和S有关&N<=1e15 矩阵加速吧孩子 开一个32*32的矩阵表示状态之间的转移qwq (话说错位这个地方想的时间挺长的) 等下!这 阅读全文
posted @ 2018-11-08 17:17 白怀潇 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 传送门 背包 每种物品有两种方法 也就是不叠高一定吃 所以dp[j]表示高度为j的时候能活多久 初值全是负的 dp[j]<0表示还不能叠到这个高度 所以当j+a[i].h>V 的时候 也就是i之前的东西能保证叠到j而且能活 说明逃出去了 直接输出a[i].time就好 否则活不下去就一个不叠 全吃了 阅读全文
posted @ 2018-11-08 17:08 白怀潇 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 传送门 典型的建模 对于每个字符串 视为从首字母向尾字母连一条边 跑一下欧拉路即可 Code: 阅读全文
posted @ 2018-11-08 17:04 白怀潇 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 传送门 题面贼长 题贼简单 修改边权使得所有叶子结点到根的路径长度相同 dfs的时候回溯修改成最大值即可 Code: 阅读全文
posted @ 2018-11-08 16:15 白怀潇 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 传送门 突然想起第一次讲课的时候说错了floyd的事... 当时LZY还在然后被直接打脸就很爽 也不知道这一次自己能不能剩下来 又会有多少人走掉 这题利用了floyd的滚动数组优化掉的那一维 也就是f[k][i][j]表示中间点仅有前k个时i->j的最短路 所以按时间排序直接做floyd 然后如果有 阅读全文
posted @ 2018-11-08 15:01 白怀潇 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 传送门 小水题吧 二分能处理到的询问即可 用差分维护前x个订单之后的值 最后求一遍前缀和 如果爆负就是有不满足的 复杂度O((m+n)lgm) 或者区间加和区间最小值线段树也行(常数略大) Code:(线段树) 阅读全文
posted @ 2018-11-08 13:54 白怀潇 阅读(522) 评论(0) 推荐(0) 编辑
摘要: 传送门 经典贪心啊... 不过这题确实能想到贪心 就是怎么贪 按照老套路 交换前后两个人之后发现按照a*b排序即可 但是 事情是不会这样简单的 1000^1000... 来吧Python高精 Code还是咕咕咕了 有高精除qwq 考试的时候60的话20min能拿下 阅读全文
posted @ 2018-11-08 12:33 白怀潇 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 传送门 经典贪心啊... 不过这题确实能想到贪心 就是怎么贪 按照老套路 交换前后两个人之后发现按照a*b排序即可 但是 事情是不会这样简单的 1000^1000... 来吧Python高精 Code还是咕咕咕了 有高精除qwq 考试的时候60的话20min能拿下 阅读全文
posted @ 2018-11-08 12:33 白怀潇 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 传送门 一上来没想出来qwq 后来Ssy说有4种做法? (updated: Dijkstra双向广搜,缩点+dp,直接dp,spfa+分层图) 这里就说想起来最简单(同时也是最难写的)双向广搜 由于卖的点一定在买的点后面 所以我们记录一下pre[i]表示i之前最小值 suf[i]表示i之后的最大值 阅读全文
posted @ 2018-11-08 11:39 白怀潇 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 传送门 日渐熟练了 从已知条件搞一搞就可以发现a1|x , x|b1 于是考虑枚举约数 O(sqrt(n)*lgn*T)差不多1e7 被ll卡一波常数 考试的时候实在卡常的话 也一定要看清楚 该开longlong的不能少 Code: 阅读全文
posted @ 2018-11-08 11:24 白怀潇 阅读(136) 评论(0) 推荐(0) 编辑