Codechef April Challenge 2019 游记】的更多相关文章

Codechef April Challenge 2019 游记 Subtree Removal 题目大意: 一棵\(n(n\le10^5)\)个结点的有根树,每个结点有一个权值\(w_i(|w_i\le10^9|)\).你可以进行若干次(包括\(0\)次)操作,每次你可以选择一个连通块,将其删去.若你的操作次数为\(k\),则总收益为剩下结点权值之和\(-X\cdot k\).求最大总收益. 思路: 树形DP,\(f_x\)表示以\(x\)为根的子树的最大总收益.转移时\(f_x=w_x+\s…
传送门 \(Maximum\ Remaining\) 对于两个数\(a,b\),如果\(a=b\)没贡献,所以不妨假设\(a<b\),有\(a\%b=a\),而\(b\%a<a\).综上,我们可以发现答案就是严格次大值 //minamoto #include<bits/stdc++.h> #define R register #define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i) #define fd(i,a,b) for(R i…
Maximum Remaining 题意:给n个数,取出两个数$a_{i}$,$a_{j}$,求$a_{i}\% a_{j}$取模的最大值 直接排个序,第二大(严格的第二大)模第一大就是答案了. #include <bits/stdc++.h> using namespace std; int a[(int)1e6]; int main() { ios::sync_with_stdio(false); cin.tie(); int n; cin >> n; ; i < n;…
Codechef October Challenge 2018 游记 CHSERVE - Chef and Serves 题目大意: 乒乓球比赛中,双方每累计得两分就会交换一次发球权. 不过,大厨和小厨用了另外一种规则:双方每累计得 K 分才会交换发球权.比赛开始时,由大厨发球. 给定大厨和小厨的当前得分(分别记为 P1 和 P2),请求出接下来由谁发球. 思路: \((P1+P2)\%K\)判断奇偶性即可. 代码链接 BITOBYT - Byte to Bit 题目大意: 在字节国里有三类居民…
Codechef September Challenge 2018 游记 Magician versus Chef 题目大意: 有一排\(n(n\le10^5)\)个格子,一开始硬币在第\(x\)个格子里.\(m(m\le10^4)\)次操作,每次交换指定的两个格子.问最后硬币在第几个格子里. 思路: 按题意模拟即可. 源代码: #include<cstdio> #include<cctype> inline int getint() { register char ch; whi…
Preface 这场CC好难的说,后面的都不会做QAQ 还因为不会三进制位运算卷积被曲明姐姐欺负了,我真是太菜了QAQ PS:最后还是狗上了六星的说,期待两(三)场之内可以上七星 Physical Exercise 本来T1放的是一个思维题,然后被Ban了现在变成一个SB题了 爆枚前两个点集的点,然后预处理前两个点集的每个点与第三个点集所有点之间距离的最小值即可通过此题 #include<cstdio> #include<cmath> #include<iostream>…
Preface 这次CC难度较上两场升高了许多,后面两题都只能借着曲明姐姐和jz姐姐的仙气来做 值得一提的是原来的F大概需要大力分类讨论,结果我写了一大半题目就因为原题被ban了233 最后勉强涨了近200分,下场如果不出意外地话应该可以打到六星.(ORZ七星julao LTL) A Chef and Maximum Star Value SB题,可以设一个阈值统计也可以直接根号大暴力,反正都能过 #include<cstdio> #include<iostream> #defin…
Preface 这确实应该是我打过的比较水的CC了(其实就打过两场) 但由于我太弱了打的都是Div2,所以会认为上一场更简单,其实上一场Div的数据结构是真的毒 好了废话不多说快速地讲一下 A Easy Fibonacci 手玩一下那个删数的过程就是求一个最大的\(2^k\le n\),然后剩下的斐波那契数列某一位膜\(10\)可找循环节可矩乘 #include<cstdio> #include<cstring> #define RI register int #define CI…
Preface 老年菜鸡终于开始打CC了,由于他太弱了所以只能打Div2 因为台风的原因challenge并没有写,所以水了个Rank7 A Football SB模拟题不解释 #include<cstdio> #include<iostream> #define RI register int using namespace std; const int N=155; int t,n,a[N],b[N],ans; int main() { for (scanf("%d&…
Subtree Removal 很显然不可能选择砍掉一对有祖先关系的子树.令$f_i$表示$i$子树的答案,如果$i$不被砍,那就是$a_i + \sum\limits_j f_j$:如果$i$被砍,那就是$-x$.取个$max$就好了. 时间.空间复杂度$O(n)$. #include <bits/stdc++.h> using namespace std; ; int tc, n, xx; int a[N]; vector<int> g[N]; long long f[N];…