【Gym 100971A】Treasure Island】的更多相关文章

题意 题目链接给你一个地图,'#'代表水,'.'代表陆地,'?'代表擦去的地图,可能是'#'也可能是'.'.地图中本该只有一块相连的陆地,若只有一种方案则输出确定的地图.若有多种方案,则输出‘Ambiguous’,若无答案,则输出‘Impossible’. 分析 将所有‘.’进行dfs扫一遍,dfs时遇到的‘?’当作'.',因为被'#'包围的'?'一定代表‘#’.一边记录相连的陆地数量b,一边记录当前相连陆地的总格数s0.如果b==1,就对每个遇到过的'?',将其置为'#‘,再dfs一遍,如果扫…
[链接] 我是链接,点我呀:) [题意] 让你把"#"用至少一个右括号代替 使得整个括号序列合法 [题解] 首先我们不要考虑井号 考虑最简单的括号序列 并且把左括号看成1,右括号看成是-1 然后用a[]表示它的一个前缀和(a[0]=0) 这样 这个括号序列合法的充要条件就是 ①a[i]>=0 (1<=i<=len(s)) ②a[len(s)] = 0 这样我们就把括号问题转换成一个仅仅为不等式和一个等式的问题了 而井号仅仅会增加-1,即让某一段往后的a[i]都变小 那…
[链接] 我是链接,点我呀:) [题意] 每次你可以将一个字符变成一个不同于本身的字符. 每个人需要改变n次(且不能不改变) 设每个人的字符串中出现次数最多的字符出现的次数为cnt[0~2] 问你谁的cnt值最大 如果最大的两个cnt相同 输出draw [题解] 模拟就好 注意这种情况(n=1) 1 aaa aab 第一个人因为必须要改变一个,所以cnt最大为2 第二个人则为3 [代码] import java.io.*; import java.util.*; public class Mai…
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…