摘要: 题面 当然可以用并查集做,不过你需要按秩合并+路径压缩(才可能过),因为数据范围十分不友好...... USACO的官方做法更为优秀。首先题目告诉我们牛们加入的前后顺序不影响结果(自己证明也很容易,显然两头牛到达一个房子最后的结果看起来是一样的)。所以我们不妨先把牛们都安排在它们喜欢的房子,然后$O 阅读全文
posted @ 2018-10-08 21:35 Speranza_Leaf 阅读(118) 评论(0) 推荐(0)
摘要: 题面 有点意思的题 从一个位置$i$出发可以到达每一个位置即是从$1,n$出发可以到达$i$。然后有了一个做法:把图上下反转后建反图,这样就可以求从一个点$i$到达左右两侧的花费$dp[i][0/1]$了,这个花费就是当前总长度-到这个点为止的LIS长度(左右各求一遍)。因为还要考虑边的这个问题,可 阅读全文
posted @ 2018-10-08 19:00 Speranza_Leaf 阅读(159) 评论(0) 推荐(0)
摘要: 题面 原来看过然后没做,结果板板把这道题改了改考掉了,血亏=。= 首先看看有没有符合条件的点。如果没有开始寻找解,先把所有的大于$2*k$的点设为坏点,然后求最大子矩形,只要一个最大子矩形的权值和超过$2*k$则它的一个子矩形一定可以成为解。因为这时所有点都小于$k$,这个最大子矩形既然权值和超过$ 阅读全文
posted @ 2018-10-08 17:48 Speranza_Leaf 阅读(146) 评论(3) 推荐(0)
摘要: 题面 水水的换根裸题,不过以前还真没做过换根的题 换根的思想就是在DFS中利用树的信息更新出当前点为根时的信息,具体来说一般是考虑子树外和子树内两部分 每个点的答案$ans$就是$ans[fa]+n-2*siz[nde]$ 1 #include<cstdio> 2 #include<cstring> 阅读全文
posted @ 2018-10-08 17:43 Speranza_Leaf 阅读(98) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2018-10-06 22:24 Speranza_Leaf 阅读(5) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2018-10-05 15:24 Speranza_Leaf 阅读(6) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2018-10-04 21:22 Speranza_Leaf 阅读(9) 评论(0) 推荐(0)
摘要: 题面 有点像JRY的那道序列题,大概是统计题的经典套路? 先说无修改的:将白奶牛记为$-1$,花奶牛记为$1$,然后做前缀和统计某个前缀和$sum$第一次出现的位置,之后再出现就统计答案。对于修改(将$-1$改成$1$),即是令某个前缀和$sum$的$sum+2k(k∈N)$的所有位置同样可以更新, 阅读全文
posted @ 2018-10-04 21:18 Speranza_Leaf 阅读(197) 评论(0) 推荐(0)
摘要: 题面 强行把序列问题通过树剖套在树上。。。算了算是回顾了一下树剖的思想=。= 每次树上跳的时候注意跳的同时维护当前拼出来的左右两条链的靠上的端点,然后拼起来的时候讨论一下拼接点,最后一下左右两边的端点都要考虑 1 #include<cstdio> 2 #include<cstring> 3 #inc 阅读全文
posted @ 2018-10-04 21:08 Speranza_Leaf 阅读(176) 评论(0) 推荐(0)
摘要: 题面 这大概不算是从零开始的DP学习系列,这不是最大子矩形吗=。= 定义$dp[x][y][xx][yy]$表示第一张地图中右下角为$(x,y)$,第二张地图中右下角为$(xx,yy)$的最大公共子矩形,然后$n^4$枚举位置,在数字相同时从左/上/左上转移即可 1 #include<cstdio> 阅读全文
posted @ 2018-10-04 08:15 Speranza_Leaf 阅读(172) 评论(0) 推荐(0)