【Gym 100015B】Ball Painting】的更多相关文章

题 There are 2N white balls on a table in two rows, making a nice 2-by-N rectangle. Jon has a big paint bucketfull of black paint. (Don’t ask why.) He wants to paint all the balls black, but he would like to have somemath fun while doing it. (Again, d…
题 There are 2N white balls on a table in two rows, making a nice 2-by-N rectangle. Jon has a big paint bucketfull of black paint. (Don’t ask why.) He wants to paint all the balls black, but he would like to have somemath fun while doing it. (Again, d…
BUPT2017 wintertraining(15) #4H Gym - 101116K 题意 给定一个菜谱,大写的单词代表混合物,小写的代表基础原料.每个混合物由其它混合物或基础原料组成,不会间接或直接地需要自己.制备每个混合物必须先制备组成它的混合物.且混合物都要用一个碗装,当它作为原料去合成其它混合物后,碗就空出来了.求合成第一个混合物最少需要用几个碗. 题解 假设合成一个混合物需要dfs(i)个碗. 因为最后需要合成第一个混合物,所以我们以它为根进行dfs. 假设当前混合物的原料里有t…
BUPT2017 wintertraining(15) #4G Gym - 101124 E.Dance Party 题意 有c种颜色,每个颜色最多分配给两个人,有M个男士,F个女士,求至少一对男士同色的概率. \((1 \le C, M, F \le 10^9; M + F \le 2C)\) 题解 反面比较好求的,也就是不存在男男同色的概率. 假设每个男士依次选择剩下的颜色,第一个人有2C种选择,当前不同色的概率是1,第二个人有2C-1种选择,当前不同色的概率是(2C-2)/(2C-1),第…
BUPT2017 wintertraining(15) #4F Gym - 101124A 题意 给定画框宽度,画的四边和一个对角线长度,求画框外沿周长. 题解 过顶点做画框的垂线,每个角都得到两个全等直角三角形.然后用余弦公式求得四个角,再在直角三角形中计算出比内沿多出来的长度,加上画的四边长度即可. 代码 #include <cstdio> #include <cstring> #include <algorithm> #include <cmath>…
BUPT2017 wintertraining(15) #4E Gym - 101138K 题意 N节车厢的火车,每节车厢容量是1~K,那么有\(K^N\)种火车. 求选择D个连续的且容量相同的车厢的方案恰为T种的火车有多少种 模\(10^9+7\). (1 ≤ D ≤ n ≤ 3333, 0 ≤ T ≤ N - D + 1, 1 ≤ K ≤ \(10^9\)). 题解 \(f[i][j]\)表示前i节车厢,恰有j种选择方案的火车数量,那么 初始条件:\(f[0][0]=1\) 状态转移: 我们…
BUPT2017 wintertraining(15) 4 D Gym - 101138J 数据 题意 n个节点的一棵树,每个节点的权值为g,q个询问,树上的节点U-V,求U到V的路径的最大子段和. 题解 先考虑这么一个问题:求区间[L,R]的最大子段和. q个询问,用线段树可以做到每个询问的时间是O(log n). 线段树的节点x代表区间[L,R],我们要存这些值: sum: 区间[L,R]的总和 s: 区间[L,R]的最大子段和 suml: 最大前缀和 sumr: 最大后缀和 叶子节点这些值…
BUPT2017 wintertraining(15) #4 C Gym - 101138F 题意 初始高度0,目标值h,第i天目标值会下降i,当前高度会改变a[i%n],求高度不小于目标值的最早的时间. 题解 假设最早时间是bn+k天,那么 \(h-(bn+k) (bn+k+1)/2 \le bs[n]+s[k]\) 化成关于b的一元二次不等式,求根公式可以求得最小的整数解. 但是要用long double,否则会WA. 代码 #include <cstdio> #include <c…
BUPT2017 wintertraining(15) #4B Gym - 101138D 题意 a数组大小为n.(1 ≤ n ≤ 50 000) (1 ≤ q ≤ 50 000)(1 ≤ ai ≤ n) q个查询,询问两个区间相同的数有多少对. 题解 [sl,sr]和[tl,tr]区间相同的数的对数可以用\(f[sl,tr]-f[sl,tl]-f[sr,tr]+f[sr,tr]\)计算.\(f[l,r]\)为区间[l,r]内相同的数的对数. 对于每个询问,记录需要计算的f的区间,然后按l/sq…
BUPT2017 wintertraining(15) #4 A - I.Cubes Gym - 101164I 题意 将n拆成最少个立方数相加的形式. 题解 根据n的范围,立方数最大不超过400的立方,并且个数也不会很多. dfs,设置一个深度的上限up.从大到小枚举立方数,剪枝条件:当前层数加上至少还需要的层数>=up就return. 代码 #include <cstdio> #include <cstring> using namespace std; int n,c[…