uoj
MashiroSky
这个作者很懒,什么都没留下…
展开
-
【uoj58】 WC2013—糖果公园
http://uoj.ac/problem/58 (题目链接)题意:给定一棵树,每个点有一个颜色,提供两种操作: 1.询问两点间路径上的Σv[a[i]]*w[k],其中a[i]代表这个点的颜色,k表示这个点是这种颜色第k次出现 2.修改某个点的颜色Solution 带修改树上莫队。 按左端点所在块为第一关键字,右端点所在块为第二关键字,时间为第三关键字,排序。可能会有疑问原创 2016-08-02 22:32:16 · 805 阅读 · 0 评论 -
【uoj222】 NOI2016—区间
http://uoj.ac/problem/222 (题目链接)题意:有n个区间,当有m个区间有公共部分时,求m个区间长度的最大值与最小值之差的最小值。Solution 线段树+滑动窗口。这道题很好做,可是在考场上就差一点点,我愣是没想出来。 先将区间按长度排序,保证它们的长度是递增的,这样就可以滑动窗口了。将区间的端点离散化后,用线段树维护每个节点被覆盖的次数,记录当前区间被覆盖次数最原创 2016-08-07 15:28:08 · 477 阅读 · 0 评论 -
【uoj150】 NOIP2015—运输计划
http://uoj.ac/problem/150 (题目链接)题意:给出一棵树以及m个询问,可以将树上一条边的权值修改为0,求经过这样的修改之后最长的边最短是多少。Solution 老早就听说过这道题了,好像使用树链剖分。 先树链剖分求出每个询问的路程,最长的最短,可以用二分做。二分最长的边的大小,也就是最后的答案,问题来了,怎么判断这个答案是否可行呢? 我们记录下所有超出当前答原创 2016-09-11 09:20:50 · 896 阅读 · 0 评论 -
【uoj128】 NOI2015—软件包管理器
http://uoj.ac/problem/128 (题目链接)题意:给出一棵树,每个节点代表一个软件包,维护卸载和安装操作。若要卸载节点x,那么必须卸载它的子树上的所有软件包;若要安装节点x必须安装所有它的祖先。每次询问安装或卸载某个软件包一共需要安装或者卸载多少个软件包。Solution 很裸的树链剖分,0表示未安装,1表示已安装。安装操作很好处理对吧,每次对节点x到根节点这条路劲进行查询原创 2016-09-25 21:54:29 · 617 阅读 · 0 评论 -
【uoj2】 NOI2014—起床困难综合症
http://uoj.ac/problem/2 (题目链接)题意:给出n个操作包括And,or,xor,求从0~m中的一个数使得经过这些操作后得到的值最大。Solution 大水题。。贪心由高到低枚举二进制上每一位:这一位为0,经过操作后当前位变为1,那么就把这一位定为0;这一位为1,经过操作后仍然为1,且当前答案加上这一位后不超过m,那么就把这一位定为1;无论是0还是1经过操作后都为0,那么原创 2016-09-26 19:25:43 · 588 阅读 · 0 评论