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 题解的更多相关文章

  1. ZROI WC Round5 题解

    ZROI WC Round5 题解 Problem A 题意 给定一个长度为 \(n\) 的序列,操作是交换两个相邻的数,要求将序列变成先单调不降再单调不升,求最小操作数,注意可以完全单调不降或者完全 ...

  2. WC 2018 题解

    WC 2018 题解 一些感受.jpg 题目难度相较前些年会相对简单一点?(FAKE.jpg 平均码量符合WC风格?(甚至更多一点 出题人良心! [WC2018] 通道 一个不知道对不对的$\log ...

  3. ZROI 部分题目题解

    ZROI 部分题目题解 335 首先发现一个性质: 对于最短的边而言,所有点的路径如果经过了这条边,那么路径的权值就是这条边的边权(废话) 那么我们把最短的边拎出来,可以发现,博物馆确定时,每个点按照 ...

  4. 【待填坑】bzoj上WC的题解

    之前在bzoj上做了几道WC的题目,现在整理一下 bzoj2115 去膜拜莫队的<高斯消元解xor方程组> bzoj2597 LCT维护MST bzoj1758 分数规划+树分治+单调队列 ...

  5. SDOI2016 Round1 题解

    BZOJ4513 储能表 数位DP,f[i][2][2][2]表示前i位,是否卡n的上界,是否卡m的上界,是否卡k的下界,枚举每一维的下一位直接转移. #include<cstdio> # ...

  6. SDOI2017 Round1 简要题解

    我们 TM 怎么又要上文化课..我 哔哔哔哔哔哔 「SDOI2017」数字表格 题意 有 \(T\) 组数据,求 \[ \prod_{i = 1}^{n} \prod_{j = 1}^{m} fib[ ...

  7. 【ZROI 537】贪心题 题解

    [ZROI 537]贪心题 题解 Link Solution 最大的一边直接放到一起贪心即可 着重讲小的一边 已知对于二分图匹配,其答案即为最大流 令时间集合为 \(T = {1,2,3,\dots, ...

  8. 【题解】JSOIWC2019 Round1

    题面(T1变成5s(毒瘤出题人发现std超时了qaq)): 啥都不会qaq.但也送了不少分 题解: T1: 当T=0时直接异或前缀和,但T=1时就有点恶心 暴力能有80pts(防止大家爆零) 还珂以用 ...

  9. Codeforces Global Round1 简要题解

    Codeforces Global Round 1 A 模拟即可 # include <bits/stdc++.h> using namespace std; typedef long l ...

随机推荐

  1. axios无法在ie9,10,11环境下运行的问题解决

    npm install es6-promise --save-dev import promise from 'es6-promise'; promise.polyfill();

  2. leetcode 307. Range Sum Query - Mutable(树状数组)

    Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive ...

  3. linux 下errno各个值的意义(转) errno.h

    strerror(errno):获取errno对应的错误 查看错误代码errno是调试程序的一个重要方法.当linux C api函数发生异常时,一般会将errno变量(需include errno. ...

  4. highcharts 图例全选按钮方法

    $('#uncheckAll').click(function(){ var chart = $('#container').highcharts(); var series = chart.seri ...

  5. 「LOJ#6121」「网络流 24 题」孤岛营救问题(BFS

    题目描述 1944 年,特种兵麦克接到国防部的命令,要求立即赶赴太平洋上的一个孤岛,营救被敌军俘虏的大兵瑞恩.瑞恩被关押在一个迷宫里,迷宫地形复杂,但幸好麦克得到了迷宫的地形图.迷宫的外形是一个长方形 ...

  6. Flashback Database 闪回数据库

    一.  Flashback Database 说明 Flashback Database 功能非常类似与 RMAN 的不完全恢复, 它可以把整个数据库回退到过去的某个时点的状态, 这个功能依赖于 Fl ...

  7. 开源监控系统中 Zabbix 和 Nagios 哪个更好?

    监控平台的话,各有优劣,但基本都可以满足需求.等达到一定监控指标后,发现,最困难的是监控项目的管理. CMDB中小规模(服务器<=1k):Zabbix大规模(1k>=服务器<=10k ...

  8. 杂项随记:gcc/objdump/section等

    gcc -g 如果不打开-g或者-ggdb(GDB专用)调试开关,GCC编译时不会加入调试信息,因为这会增大生成代码的体积.GCC采用了分级调试,通过在-g选项后附加数字1.2或3来指定在代码中加入调 ...

  9. AI-Info-Micron-Insight:Micron 美光的技术帮助 CERN 解开宇宙奥秘

    ylbtech-AI-Info-Micron-Insight:Micron 美光的技术帮助 CERN 解开宇宙奥秘 1.返回顶部 1. Micron 美光的技术帮助 CERN 解开宇宙奥秘 大约 14 ...

  10. Linux&nbsp;JDK1.4卸载与1.6的安装

    Linux JDK卸载与安装 一.jdk1.4卸载 Redhat Enterprise 5 中自带安装了jdk1.4,在安装jdk1.6前,把jdk1.4卸载: 1.首先查看系统自带JDK的版本: [ ...