[UOJ#245][UER#7]天路(近似算法)】的更多相关文章

允许5%的相对误差,意味着我们可以只输出$\log_{1.05} V$种取值并保证答案合法.并且注意到答案随着区间长度而单增,故取值不同的答案区间是$O(\log_{1.05} V)$的. 于是初始x=0,每次x=max(x+1,x*1.05),再用单调队列$O(n)$找出当前x能更新的区间即可.总复杂度$O(n\log_{1.05}V)$ #include<cstdio> #include<algorithm> #define rep(i,l,r) for (int i=(l);…
题目链接 http://uoj.ac/contest/47/problem/455 题解 模拟费用流,一个非常神奇的东西. 本题即为WC2019 laofu的讲课中的Problem 8,经典的老鼠进洞模型,洞有容量和额外权值. 这道题的Subtask 4,5,6,7分别对应着老鼠进洞的最基础模型.洞有额外权值.洞有容量.洞有容量和额外权值四个变形. 让我们从最简单的开始各个击破. Subtask 4 注: 本部分配合WC2019课件里的代码图理解效果更佳. 数轴上有\(n\)只老鼠(坐标\(x_…
[UOJ#12][UER #1]猜数 试题描述 这一天,小Y.小D.小C正在愉快地玩耍. 小Y是个数学家,他一拍脑袋冒出了一个神奇的完全平方数 n. 小D是个机灵鬼,很快从小Y嘴里套出了 n的值.然后在脑内把 n写成了 a×b的形式.其中 a,b 都是正整数. 小C是个八卦狂,他发现小D从小Y那里获知了神奇的东西,于是死缠烂打追问小D.最后小D说道:“我可以告诉你正整数 g和 l的值,我保证 ab=gl=n且 a,b都是 g 的倍数.但是 a,b 我可不能告诉你.” 这可急坏了小C.他决定退而求…
#142. [UER #5]万圣节的南瓜灯 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/142 Description 红包是一个心灵手巧的男孩子.今天是万圣节,红包正在家里制作南瓜灯. 这时候一群熊孩子们敲开了红包家的门,他们高呼着“不用给糖,只要捣蛋”的口号把红包的南瓜灯弄坏了.这让红包很难过,于是他打算把这些被弄坏的南瓜灯做成其他的工艺品. 红包把它的南瓜灯划分成了 n×m 的网格,并用 (x,y)…
#139. [UER #4]被删除的黑白树 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/139 Description 很久很久以前,有一棵树加入了 UOJ 群. 这天,在它讨论“一棵树应该怎么旋转”的时候一不小心被删除了,变成了被删除的树. 突然间,它突然发现它失去了颜色,变成了一棵纯白的树.这让它感觉很焦躁,于是它来拜托你给自己染上一些颜色. 我们可以把它描述为一棵 n 个节点的有根树(默认树的根为 1…
UOJ#454. [UER #8]打雪仗 http://uoj.ac/problem/454 分析: 好玩的通信题~ 把序列分成三块,\(bob\)先发出这三块中询问点最多的一块给\(alice\). 对于这一块,显然点数大于等于\(\frac{n}{3}\),全部由\(alice\)输出. 对于剩下的两块,先由\(bob\)告诉是否应该输出,\(alice\)再决定是否输出. 这样,\(alice\)的次数是\(667+\frac{2n}{3}\),\(bob\)的次数是\(2+\frac{4…
#210. [UER #6]寻找罪犯 链接:http://uoj.ac/problem/210 想法:2-sat模型.每个人拆点,分别表示为犯人.非犯人.每个句供词拆点,分别表示真话.假话.供词与对应人的点连双向边.假如$x_i$非犯人,那么连向他的所有真供词.一个假供词意味着至少一个犯人以及这个人的其他供词为真.于是连边.优化连边就可以用前缀,后缀的方式优化. 方案的输出参见:论文 博客 复杂度$O(n+m)$,常数有点大... #include< algorithm > #include&…
http://uoj.ac/contest/35/problem/246 神奇!我这辈子是想不出这样的算法了. 对区间长度分类讨论:题解很好的~ 我已经弱到爆了,看完题解后还想了一晚上. 题解中"利用\(r_y\)进行计算更新答案"的具体方法是记录以当前点为右端点,任意两个数的差值的最小值大于等于j的区间的左端点,记为\(pos_j\). 就这个问题我想了一晚上啊TWT,我不滚粗谁滚粗QAQ #include<cmath> #include<cstdio> #i…
http://uoj.ac/contest/35/problem/244 对其他人来说好简单的一道题,我当时却不会做TWT 注定滚粗啊 题解很好的~ #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; const int N = 100003; ll in() { ll k = 0, fh = 1; char c= getcha…
http://uoj.ac/problem/13 建立trie树,然后建立go指针, 和AC自动机里的fail指针差不多, 走到一个快捷方式就从go指针走. 注意在trie树上要保留字符'/',不能用end标记来标识一个字符串的结束. 因为可能出现"/Iam/zz"和"/Iamzz"这两种情况,如果只用end标记,tire树上这两个字符串就会共用一条路径. (总之是蒟蒻才会犯的错误,神犇们勿喷_(:з」∠)_) #include<cstdio> #inc…