摘要:
[TOC] BZOJ1059 矩阵游戏 [题目传送门][1] 题解 刚开始理解错题意了,以为除了主对角线上之外都不能有1.后来发现只要主对角线上可以都是1就是合法的了。实际上的题意就是让你判断$n$行与$n$列是否可以都匹配上,这样就是一个比较简单的二分图匹配,如果第$(i,j)$位置上为1,就说明 阅读全文
摘要:
[TOC] BZOJ1083 繁忙的都市 [题目传送门][1] 题解 水题,裸的最小生成树 code include using namespace std; typedef long long ll; bool Finish_read; templateinline void read(T &x) 阅读全文
摘要:
[TOC] BZOJ1192 鬼谷子的钱袋 [题目传送门][1] 题解 比较水的题目,只要知道用1、2、4...$2^n$可以组成$[1,2^{n+1})$这个区间里的任意一个数这个结论就行了。 code include using namespace std; typedef long long 阅读全文
摘要:
[TOC] BZOJ4240 有趣的家庭菜园 [题目传送门][1] 题解 一个比较好的贪心+树状数组的题目。通过题目我们可以容易地发现我们的目标就是要构造一个数列,使得这个数列是一个单峰数列,并且使得交换的次数最少。实际上交换次数最少就是一个求逆序对的过程,用树状数组就可以简单地解决。而要构造这个单 阅读全文
摘要:
[TOC] BZOJ4320 Homework [题目传送门][1] 题解 看了题解之后发现是一个比较妙的分块+离线+并查集的做法。首先我们以30000为界,那么当询问$\leq 30000$的时候,我们就可以开个桶暴力进行查找。如果大于30000,那么我们就枚举30000以内$x$的倍数,然后通过 阅读全文
摘要:
[TOC] BZOJ4364 wall砖墙 [题目传送门][1] 题解 一道比较好想的线段树。线段树每个节点维护当前区间的最低高度$Mn$与最高高度$Mx$。然后每次询问的时候记得用父节点的值更新子节点的$Mn$和$Mx$就行了,最后每个叶子节点的$Mx$就是答案了。 code include us 阅读全文
摘要:
[TOC] BZOJ4321 queue2 [题目传送门][1] 题解 有点麻烦的$Dp$。首先我们记$Dp[i][j][0...1]$表示枚举到第$i$个 ~~傻叉~~ 沙茶的时候,一共有$j$对个沙茶是不合法,并且第$i$个沙茶与第$i 1$个沙茶是否相邻。然后我们开始分析转移状态: 先从第$i 阅读全文
摘要:
[TOC] BZOJ4368 boxes纪念品盒 [题目传送门][1] 题解 一道比较妙的题目。我们发现送纪念品的走法只有三种: 1.往左边走,往左边回 2.往右边走,往右边回 3.绕一圈 然后我们可以简单的证明出来第三种的操作不会多于一次,因为如果多于一次的话,说明纪念品的个数$\geq k$个, 阅读全文
摘要:
[TOC] BZOJ4318 OSU! [题目传送门][1] 题解 一道比较简单的期望$Dp$。我们记$f[i]$为到第$i$位时的期望分数,$g[i]$为期望长度,分析一下转移我们可以发现连续1的长度从$x 1$变成$x$时,贡献变化为$f[i]=f[i 1]+(3 g[i−1]^2+3 g[i− 阅读全文
摘要:
[TOC] BZOJ4247 挂饰 [题目传送门][1] 题解 一个比较简单的$Dp$,我们可以发现挂饰的总个数只有2000个,所以如果挂钩的个数超过了2000个,就没有意义去记录了。所以我们记$f[i]$表示当前挂钩为$i$个的时候能够到达的最大的贡献是多少。然后将挂饰按挂钩个数从大到小排序,进行 阅读全文