02 2018 档案

摘要:【题解】 显然把m拆分成2的幂之和可以做到拼凑出1~m的任意数并且钱袋最少 阅读全文
posted @ 2018-02-28 18:09 Driver_Lao 阅读(131) 评论(0) 推荐(0) 编辑
摘要:【题解】 设给出的信息为$a[i]$,每个格子的雷数为$f[i]$ 我们可以发现$f[i]=a[i-1]-f[i-1]-f[i-2]$ 也就是说只要确定了前两个格子的情况,全部的情况都可以计算了。 那么我们枚举前两个格子的情况,检查是否合法即可。 阅读全文
posted @ 2018-02-28 17:00 Driver_Lao 阅读(79) 评论(0) 推荐(0) 编辑
摘要:【题意】 有一个n*m的整数组成的矩阵,现请你从中找出一个x*x的正方形区域,使得该区域所有数中的最大值和最小值的差最小。 【题解】 单调队列。 设原来的矩阵为$a[i][j]$. 先用单调队列处理出每个位置的$b[i][j]=min(a[i][k]),k=j-x+1 --> j$. 再用单调队列处 阅读全文
posted @ 2018-02-27 19:34 Driver_Lao 阅读(117) 评论(0) 推荐(0) 编辑
摘要:【题解】 贪心。因为有平局的情况所以需要稍微思考,最普通的贪心是不可行的。我们可以构造一个这样的贪心策略:先把a,b排序,若a最弱的打得过b最弱的,那就打;否则,若a最强的打得过b最强的,那就打。否则就用a最弱的与b最强的对战,把自己的损失降到最小。 阅读全文
posted @ 2018-02-26 20:21 Driver_Lao 阅读(127) 评论(0) 推荐(0) 编辑
摘要:【题解】 Nim游戏。 不是很会证明。自己随便yy了一下。 分三种情况: 1,全部为1,偶数堆时先手胜,否则后手胜; 2,Xor值为0,那么后手胜。因为后手拥有控场权。若先手拿走一整堆,后手可以拿走相同颗数的一堆的全部或者剩下一个,这取决于后手的需要,即总共有多少种颗数的堆。若种类数为偶数,则他全部 阅读全文
posted @ 2018-02-26 14:33 Driver_Lao 阅读(125) 评论(0) 推荐(0) 编辑
摘要:【题解】 分块。块内排序。块内二分出第一个大于等于c的数。 阅读全文
posted @ 2018-02-25 21:53 Driver_Lao 阅读(217) 评论(0) 推荐(0) 编辑
摘要:【题解】 先用Tarjan缩环,然后重新建图并在图上跑dfs+DP 阅读全文
posted @ 2018-02-21 21:12 Driver_Lao 阅读(319) 评论(0) 推荐(0) 编辑
摘要:分块。利用根号平衡保证复杂度。修改跨过一整块的直接打标记,不足一整块的暴力修改。复杂度为$O(n\sqrt{n})$ LOJ 6277 阅读全文
posted @ 2018-02-12 20:59 Driver_Lao 阅读(197) 评论(0) 推荐(0) 编辑
摘要:【题解】 因为只询问一个点,所以记录地毯信息,倒着找第一个符合条件的地毯就是在最上面的。 阅读全文
posted @ 2018-02-11 16:46 Driver_Lao 阅读(184) 评论(0) 推荐(0) 编辑
摘要:【题解】 差分+扫描线+权值线段树。 我们先把区间操作差分,变成2*m个点操作,然后按照位置对操作进行排序。接着按顺序处理每个位置的答案,如果当前位置有操作,就先在权值线段树上修改,再统计当前点的答案。 要注意的是,题目问的是出现次数最多的礼物的编号,所以权值线段树要维护的不仅是最大值,还有最大值的 阅读全文
posted @ 2018-02-11 16:07 Driver_Lao 阅读(200) 评论(0) 推荐(0) 编辑
摘要:【题意概述】 给出一个n个点m条无向边的图以及起点s终点t,求s到t上的路径上边权最大值的最小值。 【题解】 裸的最短路。把松弛操作稍做修改即可。 阅读全文
posted @ 2018-02-07 17:15 Driver_Lao 阅读(219) 评论(0) 推荐(0) 编辑
摘要:【题解】 先用tarjan缩点,然后如果某个强联通分量的出度为0,则该强联通分量内的点数为答案,否则无解。因为若其他所有的强联通分量都有边连向Ai,则Ai必定没有出边,否则Ai连向的点所属的强联通分量也属于Ai。 阅读全文
posted @ 2018-02-02 21:02 Driver_Lao 阅读(151) 评论(0) 推荐(0) 编辑
摘要:【题解】 最短路裸题。。 本题要求出每个点到终点走最短路来回的距离,因此我们先跑一遍最短路得出每个点到终点的最短距离,然后把边反向再跑一遍最短路,两次结果之和即是答案。 阅读全文
posted @ 2018-02-02 11:22 Driver_Lao 阅读(125) 评论(0) 推荐(0) 编辑
摘要:【题解】 弗洛伊德。更新距离的时候把$f[i][j]=min(f[i][j],f[i][k]+f[k][j])$改为$f[i][j]=min(f[i][j],max(f[i][k],f[k][j]))$. 阅读全文
posted @ 2018-02-02 08:14 Driver_Lao 阅读(155) 评论(0) 推荐(0) 编辑
摘要:【题解】 要求出树上两点间的距离,树上的边有边权,本来应该是个LCA。 看他数据小,Xjb水过去了。。。其实也算是LCA吧,一个O(n)的LCA。。。 阅读全文
posted @ 2018-02-01 21:56 Driver_Lao 阅读(146) 评论(0) 推荐(0) 编辑
摘要:【题解】 显然是个DP题。 设$f[i]$表示送$i$头牛过河所需的最短时间,预处理出$t[i]$表示一次性送i头牛过河所需时间,那么我们可以得到转移方程:$f[i]=min(f[i],f[i-j]+t[j]+t[0])$ (这里的$t[0]$指的是FJ独自过河的时间) 这样就可以做一个$n$方的D 阅读全文
posted @ 2018-02-01 20:52 Driver_Lao 阅读(170) 评论(0) 推荐(0) 编辑
摘要:【题意概述】 给定一个长度为n的序列和若干个询问,每次询问序列的区间[L,R]中,大于等于a且小于等于b的数的个数,以及大于等于a且小于等于b的数值的个数。 序列长度不超过10^5,询问次数不超过10^6. 【题解】 使用莫队算法。与BZOJ 3809非常相似,只是比那道题多了一种询问,即求出区间[ 阅读全文
posted @ 2018-02-01 16:45 Driver_Lao 阅读(147) 评论(0) 推荐(0) 编辑
摘要:【题解】 使用莫队算法。开一个权值树状数组维护区间内数值种类。 扩展时间是$logN$,所以总的时间复杂度是$O(n*\sqrt{n}*logn)$.勉强卡过去。 用分块可以更快。 阅读全文
posted @ 2018-02-01 10:13 Driver_Lao 阅读(148) 评论(0) 推荐(0) 编辑