ZROI WC Round1 题解
ZROI WC Round1 题解
Problem A
题意
一个 \(n \times m\) 格子图,一个人从左上角出发,每次向右或者向下走一格,方法如下:
- 如果他在最下面一排,那么他会往右行走。如果他在最右边一排,他会往下行走。
- 否则他看下面和右边的数字那个更大,他会选择一个更大的格子走过去。如果碰到两个相同的格子,那么他会往右走。
现在给每个格子填上一个 \(0 \sim S\) 之间的数,要求这个人这个格子图上从左上走到右下经过的格子和恰好是 \(S\),求有多少个不同的格子图满足条件
\(1 \leq n,m \leq 2500,1 \leq S \leq 100\)
题解
一个显然的 \(\text{dp}\) 是 \(f[i][j][k]\) 表示当前走到 \((i,j)\) 这个格子,经过的格子的权值和是 \(k\) 的方案数
然后可以枚举下一步向右还是向下和格子上的数,做到 \(O(n^4)\),可以得到 \(60\) 分
考虑怎样化简状态,首先发现,对于一条路径,我们只需要考虑它接触右边或者下边之前的部分,因为一旦它在最下面一排或者最右面一列,就必须向一个方向一直走,并且要求这一部分加上之后总和是 \(S\),这一部分可以用 \(\text{dp}\) 预处理。
那么把一条从左上到右下的路径定位在第一次走到右边界或者下边界的位置,发现对于两条路径,如果他们对应的位置相同,他们可以认为是等价的。原因如下:
不难发现一条路径所能影响到的格子是路径长度的两倍,即每走一格之前都比较一次,影响两个格子
对于对应点相同的两条路径,他们向右走的次数和向下走的次数也相同,所以影响到的格子数相同,并且每次比较时右边大的数量和下边大的数量都分别相同,所以我们可以移动其中一条路径的一些格子,把它变成另一条路径。
那么我们考虑枚举对应的位置,不妨设当前枚举到右边界,结束位置为 \((i,m)\),不难发现向右走 \((m-1)\) 次,向下走 \((i-1)\) 次,比较次数为 \((m+i-2)\),经过的格子数是 \((m + i - 1 + m + i - 2 + n - i)\) (包含了最后一段的格子数),不影响到的格子就是 \(n\times m\) 减去上面的式子,所有不影响到的格子都可以填任意数,然后枚举所有向右走的和以及向下走的和,\(\text{dp}\) 预处理出向右走 \(i\) 次,和为 \(j\) 的方案数,向下走 \(i\) 次,和为 \(j\) 的方案数,综合算一下即可,复杂度 \(O(nS^2)\)
Review
考场上我想到了找对应点并且把路径化归成 \(O(n)\) 条本质不同的路径,但是在处理向右向下次数的时候遇到了问题,其实就是我没有发现对应点相同的路径向右向下次数分别相同
Problem B
见 我自己的题解
Problem C
题意
有一个 \(n\) 个点 \(m(m≤n+15)\) 条边的无向连通图,求这个图的简单环的个数。简单环指不经过同一个节点两次的环。
题解
注意到非树边很少,所以可以把非树边拎出来建虚树,然后爆搜,然后惊人地发现过了。。。
事实上正解就是缩图之后爆搜。。。
考试的时候因为明显认为爆搜搜不了就没写虚树。。。
Review
要大胆地爆搜
ZROI WC Round1 题解的更多相关文章
- ZROI WC Round5 题解
ZROI WC Round5 题解 Problem A 题意 给定一个长度为 \(n\) 的序列,操作是交换两个相邻的数,要求将序列变成先单调不降再单调不升,求最小操作数,注意可以完全单调不降或者完全 ...
- WC 2018 题解
WC 2018 题解 一些感受.jpg 题目难度相较前些年会相对简单一点?(FAKE.jpg 平均码量符合WC风格?(甚至更多一点 出题人良心! [WC2018] 通道 一个不知道对不对的$\log ...
- ZROI 部分题目题解
ZROI 部分题目题解 335 首先发现一个性质: 对于最短的边而言,所有点的路径如果经过了这条边,那么路径的权值就是这条边的边权(废话) 那么我们把最短的边拎出来,可以发现,博物馆确定时,每个点按照 ...
- 【待填坑】bzoj上WC的题解
之前在bzoj上做了几道WC的题目,现在整理一下 bzoj2115 去膜拜莫队的<高斯消元解xor方程组> bzoj2597 LCT维护MST bzoj1758 分数规划+树分治+单调队列 ...
- SDOI2016 Round1 题解
BZOJ4513 储能表 数位DP,f[i][2][2][2]表示前i位,是否卡n的上界,是否卡m的上界,是否卡k的下界,枚举每一维的下一位直接转移. #include<cstdio> # ...
- SDOI2017 Round1 简要题解
我们 TM 怎么又要上文化课..我 哔哔哔哔哔哔 「SDOI2017」数字表格 题意 有 \(T\) 组数据,求 \[ \prod_{i = 1}^{n} \prod_{j = 1}^{m} fib[ ...
- 【ZROI 537】贪心题 题解
[ZROI 537]贪心题 题解 Link Solution 最大的一边直接放到一起贪心即可 着重讲小的一边 已知对于二分图匹配,其答案即为最大流 令时间集合为 \(T = {1,2,3,\dots, ...
- 【题解】JSOIWC2019 Round1
题面(T1变成5s(毒瘤出题人发现std超时了qaq)): 啥都不会qaq.但也送了不少分 题解: T1: 当T=0时直接异或前缀和,但T=1时就有点恶心 暴力能有80pts(防止大家爆零) 还珂以用 ...
- Codeforces Global Round1 简要题解
Codeforces Global Round 1 A 模拟即可 # include <bits/stdc++.h> using namespace std; typedef long l ...
随机推荐
- java--List判断是否为空
list.isEmpty()和list.size()==0 没有区别 isEmpty()判断有没有元素,size()返回元素个数 如果判断一个集合有无元素,用isEmpty()方法. 这就相当与,你要 ...
- matlab给图片插入说明文字
text(cluster().center(),cluster().center(),num2str(),'color','k') 格式是text(x,y,'说明文字') x,y代表位置
- centos6.3 安装python2.7.3
现在比较流行python2.7版本,centos6.3的默认版本是2.6.6,所以需要安装下2.7版本 1.下载安装python2.7 #wget http://www.python.org/ftp/ ...
- codeforces 558A A. Lala Land and Apple Trees(水题)
题目链接: A. Lala Land and Apple Trees time limit per test 1 second memory limit per test 256 megabytes ...
- cassandra根据用户名密码登录cqlsh
修改conf目录下cassandra.yaml文件 authenticator: PasswordAuthenticator //将authenticator修改为PasswordAuthentic ...
- Docker入门(二):安装/卸载
这个<Docker入门系列>文档,是根据Docker官网(https://docs.docker.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指 ...
- 24.集成ASP.NETCore Identity
正常的情况下view页面的错误的显示应该是这么去判断的 这里我们就不加判断为了,直接用这个div 显示就可以了.当有错误会自动显示在div内 asp.net core Identity加入进来 这里用 ...
- HDU - 5875 Function(预处理)
Function The shorter, the simpler. With this problem, you should be convinced of this truth. Yo ...
- Halcon - 数据类型
这里给大家分享 Halcon 的数据类型结构图,方便初学者认知 Halcon 图1 Halcon Datatype
- MVC4 @helper辅助方法
Razor提供了一种很方便的语法,可以将view页面中部分内容或部分代码抽取出来,变成一个独立的辅助方法. eg1: @foreach(var item in Model){ <标签tr&g ...