[题解]CSP2019 Solution - Part A】的更多相关文章

\(\text{orz}\) 一波现场 \(\text{A}\) 掉 \(\text{D1T3}\) 的神仙 D2T3 centroid Solution 考虑每个点 \(u\) 作为重心的贡献 假设以 \(u\) 为根时,存在 \(u\) 的一个子节点 \(v\) 现在要在 \(v\) 的子树内删掉一个子树,使得 \(u\) 成为重心 考虑删子树之后,\(v\) 的子树大小需要满足什么条件 设 \(u\) 除 \(v\) 之外,所有子树大小的和为 \(s\) ,最大子树大小为 \(m\) (1…
至于为什么是 \(\text{Part A}\) 而不是 \(\text{Day 1}\) 那是因为 Day1 T3 还没改 (那这六题的 \(\text{solution}\) 就按难度顺序写吧) 感觉今年的画风和 \(\text{NOIP 2016}\) 有点像? D1T1 code Solution 直接模拟 如果 \(k<2^{n-1}\) 就输出 \(0\) 否则输出 \(1\) 并把 \(k\) 变成 \(2^n-1-k\) 然后 \(n\) 减掉 \(1\) 继续进行下去直到 \(…
全网唯一一篇容斥题解 Description Solution 看到这个题,大部分人想的是状压dp 但是我是个蒟蒻没想到,就用容斥切掉了. 并且复杂度比一般状压低, (其实这个容斥的算法,提出来源于ywy_c_asm) (然而我知道了这个算法,竟然和他写的不一样,而且比他跑的快) 进入正题: 我们需要统计恰好满足匹配k个的情况. 那么,我们可以先找出来,恰好满足n个,n-1,n-2...k个的情况. 分别记为ans[i] ans[i]怎么算呢? 先给出公式: ans[i]=cal(i)-∑C(j…
[ZROI 537]贪心题 题解 Link Solution 最大的一边直接放到一起贪心即可 着重讲小的一边 已知对于二分图匹配,其答案即为最大流 令时间集合为 \(T = {1,2,3,\dots,maxt}\) 对于每一门课程,按照如下方式建图: 每个任务为一个点,每个时间为一个点,每个任务向其对应的时间区间连边,源点向每个任务连边,边权为 \(1\),每个时间向汇点连边,边权为 \(1\) 考虑第一门课程: 我们选择一些时间节点分给它,设为 \(T_1\) 假设最大流中任务集合为 \(A\…
哎呀呀,咕值要掉光了,赶快水篇题解( solution 这题就是个纯模拟,首先我们根据输出样例看一下输出算盘的规则. 看数最大的 720 ,我们发现,输出的算盘张这样(之所以我不用代码框而用 \(\KaTeX\) 是因为代码框是对不了齐的): \[\begin{matrix} O & - & | & - & O & O & O & O \\ O & - & | & O & O & - & O &…
这题非常的神啊...蒟蒻来写一篇题解. Solution 首先考虑如何判定一副牌是否是 "胡" 的. 不要想着统计个几个值 \(O(1)\) 算,可以考虑复杂度大一点的. 首先先把 \(7\) 个对子的状态判掉.然后考虑 \(4\) 个面子和 \(1\) 个对子的情况. 记录一个 \(dp_{i, j,k}\) : \(i\) 表示现在有没有留出对子,\(j\) 表示现在形如 \(i, i - 1\) 的牌的多余的个数, \(k\) 表示现在形如 \(i\) 的牌对的个数,整个状态表示…
hhh... 我又来写题解了 solution 题意简化 一个字符串,将所有的 _ 替换成大写字母,使结果字符串符合要求: 1.不包含三个连续 元音 或 辅音 字母: 2.字符串中至少有一个 L . 求最终字符串可能的个数. 看到这道题,即想到了万能的算法--搜索. 从下标 \(0\) 开始,枚举每一个字母. 由于每次枚举的字母与后面的枚举无关,所以这样搜索不会出现重复的终串. 在枚举结束时使用 check 检测是不是合法终串,如果是就是一种情况. 注意:char 数组不会克隆,需要回溯. #i…
题解: solution Code: A. Ascending Rating #include<cstdio> const int N=10000010; int T,n,m,k,P,Q,R,MOD,i,a[N],q[N],h,t;long long A,B; int main(){ scanf("%d",&T); while(T--){ scanf("%d%d%d%d%d%d%d",&n,&m,&k,&P,&am…
题解: class Solution { public: double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { int m = nums1.size(); int n = nums2.size(); if (m > n) return findMedianSortedArrays(nums2, nums1);//保证nums1个数少于nums2 , iMax = m, h…
博主水平不高, 只能打完$4$题, QAQ什么时候才能变强啊嘤嘤嘤 订正完6题了,  还想打今天下午的CF , 只能迟十分钟了, 掉分预定 A. Heist 输出 $max - min + n - 1$即可 #include<cstdio> #include<cstring> #include<algorithm> #define rd read() using namespace std; ; ; int n, a[N], x, maxn, minn = inf; i…