摘要:
传送门 神仙题 首先转化成0/1串没有问题 然后1的个数有限?限制条件M<=5? 状压吧孩子 f[i][S]表示第i位S局面下方案数 所以可以按照题意转移 然后转移只和S有关&N<=1e15 矩阵加速吧孩子 开一个32*32的矩阵表示状态之间的转移qwq (话说错位这个地方想的时间挺长的) 等下!这 阅读全文
摘要:
传送门 背包 每种物品有两种方法 也就是不叠高一定吃 所以dp[j]表示高度为j的时候能活多久 初值全是负的 dp[j]<0表示还不能叠到这个高度 所以当j+a[i].h>V 的时候 也就是i之前的东西能保证叠到j而且能活 说明逃出去了 直接输出a[i].time就好 否则活不下去就一个不叠 全吃了 阅读全文
摘要:
传送门 典型的建模 对于每个字符串 视为从首字母向尾字母连一条边 跑一下欧拉路即可 Code: 阅读全文
摘要:
传送门 题面贼长 题贼简单 修改边权使得所有叶子结点到根的路径长度相同 dfs的时候回溯修改成最大值即可 Code: 阅读全文
摘要:
传送门 突然想起第一次讲课的时候说错了floyd的事... 当时LZY还在然后被直接打脸就很爽 也不知道这一次自己能不能剩下来 又会有多少人走掉 这题利用了floyd的滚动数组优化掉的那一维 也就是f[k][i][j]表示中间点仅有前k个时i->j的最短路 所以按时间排序直接做floyd 然后如果有 阅读全文
摘要:
传送门 小水题吧 二分能处理到的询问即可 用差分维护前x个订单之后的值 最后求一遍前缀和 如果爆负就是有不满足的 复杂度O((m+n)lgm) 或者区间加和区间最小值线段树也行(常数略大) Code:(线段树) 阅读全文
摘要:
传送门 经典贪心啊... 不过这题确实能想到贪心 就是怎么贪 按照老套路 交换前后两个人之后发现按照a*b排序即可 但是 事情是不会这样简单的 1000^1000... 来吧Python高精 Code还是咕咕咕了 有高精除qwq 考试的时候60的话20min能拿下 阅读全文
摘要:
传送门 经典贪心啊... 不过这题确实能想到贪心 就是怎么贪 按照老套路 交换前后两个人之后发现按照a*b排序即可 但是 事情是不会这样简单的 1000^1000... 来吧Python高精 Code还是咕咕咕了 有高精除qwq 考试的时候60的话20min能拿下 阅读全文
摘要:
传送门 一上来没想出来qwq 后来Ssy说有4种做法? (updated: Dijkstra双向广搜,缩点+dp,直接dp,spfa+分层图) 这里就说想起来最简单(同时也是最难写的)双向广搜 由于卖的点一定在买的点后面 所以我们记录一下pre[i]表示i之前最小值 suf[i]表示i之后的最大值 阅读全文
摘要:
传送门 日渐熟练了 从已知条件搞一搞就可以发现a1|x , x|b1 于是考虑枚举约数 O(sqrt(n)*lgn*T)差不多1e7 被ll卡一波常数 考试的时候实在卡常的话 也一定要看清楚 该开longlong的不能少 Code: 阅读全文