ZROI WC Round1 题解】的更多相关文章

ZROI WC Round1 题解 Problem A 题意 一个 \(n \times m\) 格子图,一个人从左上角出发,每次向右或者向下走一格,方法如下: 如果他在最下面一排,那么他会往右行走.如果他在最右边一排,他会往下行走. 否则他看下面和右边的数字那个更大,他会选择一个更大的格子走过去.如果碰到两个相同的格子,那么他会往右走. 现在给每个格子填上一个 \(0 \sim S\) 之间的数,要求这个人这个格子图上从左上走到右下经过的格子和恰好是 \(S\),求有多少个不同的格子图满足条件…
ZROI WC Round5 题解 Problem A 题意 给定一个长度为 \(n\) 的序列,操作是交换两个相邻的数,要求将序列变成先单调不降再单调不升,求最小操作数,注意可以完全单调不降或者完全单调不升 想法 发现最小的数一定在最左侧或者最右侧 有一个暴力的做法是按照从小到大的顺序,每次看向哪边比较近就交换到哪一侧,由于不管交换到哪一个剩下的序列都是一样的,所以这个做法是正确的 下面就是优化这个算法,不难发现一个数如果移动到最左侧,那么它左侧的比它小的数肯定都移动到左侧,所以可以用树状数组…
WC 2018 题解 一些感受.jpg 题目难度相较前些年会相对简单一点?(FAKE.jpg 平均码量符合WC风格?(甚至更多一点 出题人良心! [WC2018] 通道 一个不知道对不对的$\log ^3$大常数解法:对于第一棵树边分治,第二颗树建虚树然后边分治,最后一颗树再建虚树DP 显然我是不可能写的,这辈子都不可能写的. 那么显然,我们还是要分析性质的! 我们想到把第一个树的点权第二个树的点权附到第三棵树上,然后做直径就完事了. 对于边权非负,贪心解决树的直径是对的,所有链接两个树之后的直…
ZROI 部分题目题解 335 首先发现一个性质: 对于最短的边而言,所有点的路径如果经过了这条边,那么路径的权值就是这条边的边权(废话) 那么我们把最短的边拎出来,可以发现,博物馆确定时,每个点按照路标所指方向走一定会经过最短的边或者一定被最短的边的某个端点经过 简单的说,令某一条最短的边的某个端点出发的某一条路径组成的集合为 \(S\),每个点出发的路径,要么包含某一条最短的边,要么被 \(S\) 中的某一条边包含 我们把每条边的权值减去 \(w\),其中 \(w\) 表示最短边的长度 那么…
之前在bzoj上做了几道WC的题目,现在整理一下 bzoj2115 去膜拜莫队的<高斯消元解xor方程组> bzoj2597 LCT维护MST bzoj1758 分数规划+树分治+单调队列 bzoj2595 斯坦纳树,一类用spfa转移的dp,具体可以膜拜<spfa算法的优化及应用>(我是不会插头的蒟蒻) bzoj2597 补集思想之后就变成了显然的平方流 bzoj3052 树上带修改莫队算法(如果一无所知的话,可以按2038 1086 3757 3052的顺序做) bzoj145…
BZOJ4513 储能表 数位DP,f[i][2][2][2]表示前i位,是否卡n的上界,是否卡m的上界,是否卡k的下界,枚举每一维的下一位直接转移. #include<cstdio> #include<cstring> typedef unsigned u32; typedef long long ll; ll x,y,z; int p,q; u32 f[61][2][2][2][2]; int main(){ scanf("%d",&q); whil…
我们 TM 怎么又要上文化课..我 哔哔哔哔哔哔 「SDOI2017」数字表格 题意 有 \(T\) 组数据,求 \[ \prod_{i = 1}^{n} \prod_{j = 1}^{m} fib[\gcd(i, j)] \] $ 1 \leq n, m \leq 10 ^ 6, 1 \leq T \leq 1000 $ 题解 又是一道莫比乌斯反演套路题.. \[ \begin{aligned} &\prod_{i = 1}^{n} \prod_{j = 1}^{m} fib[\gcd(i,…
[ZROI 537]贪心题 题解 Link Solution 最大的一边直接放到一起贪心即可 着重讲小的一边 已知对于二分图匹配,其答案即为最大流 令时间集合为 \(T = {1,2,3,\dots,maxt}\) 对于每一门课程,按照如下方式建图: 每个任务为一个点,每个时间为一个点,每个任务向其对应的时间区间连边,源点向每个任务连边,边权为 \(1\),每个时间向汇点连边,边权为 \(1\) 考虑第一门课程: 我们选择一些时间节点分给它,设为 \(T_1\) 假设最大流中任务集合为 \(A\…
题面(T1变成5s(毒瘤出题人发现std超时了qaq)): 啥都不会qaq.但也送了不少分 题解: T1: 当T=0时直接异或前缀和,但T=1时就有点恶心 暴力能有80pts(防止大家爆零) 还珂以用莫队,期望得分90~95pts,不比暴力好多少(所以窝考场上没敲) T=1时正解是整解是树状数组维护区间不同元素的异或和 先将询问离线按照左排序 再用T=0时的异或前缀和再异或上树状数组中保存的值,就是答案 完整程序 #include <bits/stdc++.h> #define N 10000…
Codeforces Global Round 1 A 模拟即可 # include <bits/stdc++.h> using namespace std; typedef long long ll; int b, k, n, a[232333]; int main() { int i, base = 1, v; scanf("%d%d", &b, &k); for (i = 1; i <= k; ++i) scanf("%d",…