洛谷P3513 [POI2011]KON-Conspiracy 题目描述 Byteotia的领土被占领了,国王Byteasar正在打算组织秘密抵抗运动. 国王需要选一些人来进行这场运动,而这些人被分为两部分:一部分成为同谋者活动在被占领区域,另一部分是后勤组织在未被占领的领土上运转. 但是这里出现了一个问题: 1.后勤组织里的任意两人都必须是熟人,以促进合作和提高工作效率. 2.同谋者的团体中任意两人都不能是熟人. 3.每一部分都至少要有一个人.国王想知道有多少种分配方案满足以上条件,当然也有可…
洛谷题目链接:[POI2011]MET-Meteors 题意翻译 Byteotian Interstellar Union有N个成员国.现在它发现了一颗新的星球,这颗星球的轨道被分为M份(第M份和第1份相邻),第i份上有第Ai个国家的太空站. 这个星球经常会下陨石雨.BIU已经预测了接下来K场陨石雨的情况. BIU的第i个成员国希望能够收集Pi单位的陨石样本.你的任务是判断对于每个国家,它需要在第几次陨石雨之后,才能收集足够的陨石. 输入: 第一行是两个数N,M. 第二行有M个数,第i个数Oi表…
BZOJ原题链接 洛谷原题链接 线段树合并裸题. 因为交换子树只会对子树内部的逆序对产生影响,所以我们计算交换前的逆序对个数和交换后的个数,取\(\min\)即可. 对每个叶子节点建一棵动态开点线段树,然后向上合并并更新答案. 而逆序对可以在线段树合并的过程中算出来,因为是权值线段树,根据\(mid\)计算贡献即可. 这题洛谷和\(BZOJ\)不卡常,而\(LOJ\)丧心病狂地把每个点开到\(160ms\),我这份代码需要改成超级快读才能卡过.. #include<cstdio> using…
洛谷题目传送门 疯狂%%%几个月前就秒了此题的Tyher巨佬 借着这题总结一下决策单调性优化DP吧.蒟蒻觉得用数形结合的思想能够轻松地理解它. 首先,题目要我们求所有的\(p_i\),那么把式子变一下 \[p_i\ge a_j-a_i+\sqrt{|i-j|}\] \[p_i=\max\limits_{j=1}^n\{a_j+\sqrt{|i-j|}\}-a_i\] 绝对值看着很不爽,我们把它拆开 \[p_i=\max(\max_{j=1}^i\{a_j+\sqrt{i-j}\},\max_{j…
P3527 [POI2011]MET-Meteors 题意翻译 \(\tt{Byteotian \ Interstellar \ Union}\)有\(N\)个成员国.现在它发现了一颗新的星球,这颗星球的轨道被分为\(M\)份(第\(M\)份和第\(1\)份相邻),第\(i\)份上有第\(A_i\)个国家的太空站. 这个星球经常会下陨石雨.\(\tt{BIU}\)已经预测了接下来\(K\)场陨石雨的情况. \(\tt{BIU}\)的第\(i\)个成员国希望能够收集\(P_i\)单位的陨石样本.你…
P3521 [POI2011]ROT-Tree Rotations 题意:递归给出给一棵\(n(1≤n≤200000)\)个叶子的二叉树,可以交换每个点的左右子树,要求前序遍历叶子的逆序对最少. 大体给出方式: 第一行一个正整数\(n\),表示该二叉树的叶节点的个数: 下面若干行,每行一个数\(p\): 如果\(p=0\),表示这个节点不是叶节点,递归地向下读入其左孩子和右孩子的信息: 如果\(p \neq 0\) ,表示这个节点是叶节点,权值为\(p\) . 本来想学一下启发式合并的,结果被一…
题目传送门 Tree Rotation 题目描述 Byteasar the gardener is growing a rare tree called Rotatus Informatikus. It has some interesting features: The tree consists of straight branches, bifurcations and leaves. The trunk stemming from the ground is also a branch.…
题目传送门 Meteors 格式难调,题面就不妨放了. 分析: 一道整体二分的练手题. 就是一般的整体二分的套路,但是要注意,将修改和询问加入队列的时候要先加修改再加询问.另外,博主代码打得太丑,常数贼大,不建议照这么打... Code: //It is made by HolseLee on 5th Oct 2018 //Luogu.org P3527 #include<bits/stdc++.h> #define N 300007 using namespace std; typedef…
题目大意:给一棵$n(n\leqslant2\times10^5)$个叶子的二叉树,可以交换每个点的左右子树,要求前序遍历叶子的逆序对最少.输出最少的逆序对个数 题解:线段树合并,对于每个节点求出交换左右子树和不交换的答案. 卡点:没开$long\;long$ C++ Code: #include <cstdio> #define maxn 200010 #define N maxn * 20 inline long long min(long long a, long long b) {re…
题意 已知一个长度为n的序列a1,a2,...,an. 对于每个1<=i<=n,找到最小的非负整数p满足 对于任意的j, aj < = ai + p - sqrt(abs(i-j)) 题解 决策单调性是个好东西 等学会了再滚回来填坑 //minamoto #include<iostream> #include<cstdio> #include<cmath> using namespace std; #define getc() (p1==p2&…