
uoj
文章平均质量分 77
Miao_zc
膜Hz
展开
-
uoj#46. 【清华集训2014】玄学
难得的1A。。。今天上午 Lych大讲了归并,分块,推和可并推,马上练了这题。题意很简单对于一个数列有操作使x~y区间内的数*a+b,多次询问有x~y操作时z的值(对m取模),很显然*a+b的操作满足结合律且多次*a+b可合并为一个*c+d,不满足区间减法(m不为质数)。对于询问一段操作,可以考虑对时间建线段树,l~r的时间内对数列的修改是O(r-l)段,于是归并,然后就好了。。。原创 2016-07-06 16:40:31 · 978 阅读 · 0 评论 -
bzoj3813: 奇数国
该村子在财产上的求和运算等同于我们的乘法运算该村子在财产上的求和运算等同于我们的乘法运算该村子在财产上的求和运算等同于我们的乘法运算一开始直接把它忽略了。。。导致题意都没看懂,直接看题解一句话题意,听说是最简单的一道。。。考虑phi(x)=x*∏(pi-1)/pi,维护区间和,区间每个质数是否存在(long long),即可得到答案。#include#include原创 2016-07-19 09:22:53 · 718 阅读 · 0 评论 -
bzoj4574: [Zjoi2016]线段树
好久没写题解了。。。这道题拖了好久,终于把常数卡进去了。首先发现数据随机,肯定不是正常算法,不妨离散。考虑DP,用dp[q][i][j]k]表示q轮后i~j最后变成k的情况。比较难转移。参考大神的blog:用dp[q][i][j][k]表示表示q轮后i~j最后变成每个数都小于等于k的情况,这样可以转移。//不要问我怎么转,好久以前推得式子然后每个值k只影响一段i~j的dp值原创 2016-10-10 21:00:33 · 721 阅读 · 0 评论 -
uoj#58. 【WC2013】糖果公园
寒假里lbn大爷讲离线算法时就讲过了。。。然而现在才明白该怎么做。这题就是树上带修莫队,带修莫队就是再加一维时间,然后分块size=n^(2/3),时间复杂度O(n^1.67)。树上莫队可以先求出括号序列,若x为y祖先,则两点间的路径为l[x]~l[y],否则就是r[x]~l[y]+lca。没了。。#include#include#include#include#include#原创 2016-06-13 12:35:34 · 1070 阅读 · 0 评论 -
bzoj3218: a + b Problem
题目名称是吸引我点进来的。首先这是一个最小割模型,对点i,连S->i:b[i],i->T:w[i],i->i':p[i],i'->j(奇怪):inf,这样就有了一个TLE的算法。怎么办呢?然后vfk强行将n^2的边减少到nlogn。。。原创 2016-12-14 20:57:20 · 646 阅读 · 0 评论 -
uoj#228. 基础数据结构练习题
第一次看到这题大概在这里:2016多校联合反正当时也没什么想法,表示有区间加好难受。题解并不难,维护每个区间最值、和,当一个区间开根后所有值都一样就直接赋值,否则递归。存在一种特例:3 4 3 4 3 4 3 4 3,开根后1 2 1 2 1 2 1 2 1.,+2: 3 4 3 4 3 4 3 4 3,,成功卡到暴力,所以要特判,原因大概是取整吧。所以就有了:后来发现ad原创 2016-12-15 15:59:27 · 628 阅读 · 0 评论 -
uoj275. 【清华集训2016】组合数问题
智力孤危。。这道题可以根据lucas定理,把C(n,m)是k的倍数转换为n,m的k进制数,某一位的组合数是k的倍数,也就是n,m在k进制表示下n有一位比k小(大)。这样子的话就转换为一个数位DP,就能做了。题解貌似就把lucas推了一遍,嗯,差不多#include#include#define ll long long#define P 1000000007#define I2原创 2017-02-21 20:40:44 · 1486 阅读 · 0 评论 -
uoj#207. 共价大爷游长沙
miaom又来做LCT了!//lych:无敌由于不是很懂LCT子树信息维护的那套理论,想了好久(搞得树剖的子树维护就会了一样!)。首先是一个很巧妙的转化——将边在链上转化为这条边能将链的顶点分开。给每组顶赋一个随机权,每次可以把边断掉,查询每个联通块内权值异或和是否等于所有顶点权值异或和,就是子树异或和。然后发现动态树上子树不是dfs序连续那么简单,他应该是(当前点及沿偏爱边往下走得到原创 2017-03-07 20:51:07 · 910 阅读 · 2 评论 -
bzoj3242: [Noi2013]快餐店
——来自一个失去梦想的咸鱼miaom考虑海蜇基环树的一般套路,在确定快餐店位置的情况下,最优解中环上必有一条边是废的。思考枚举这条边,我们需要在最快的时间求剩余部分的直径。当前答案就是直径/2,证明非常简单,就离快餐店最远的点一定是直径端点。这个东西可以通过双指针单调队列维护,达到O(n)复杂度。然后我就失去了梦想,直接线段树水过了。线段树做法如下:先搞出那个环,重复一遍变成序列问题,询问原创 2017-07-04 21:09:18 · 655 阅读 · 0 评论