100+22+90=212。前两道题不错,但T3 没什么意义。

围观刘老爷超强 T1 解法。

ChiTongZ的水题赛

【题目简介】

我本可以容忍黑暗,如果我不曾见过太阳。

考试内容略有超纲,不超纲的都给了非常多的部分分。

注意常数优化与超光速快速读入的运用

\[
黑暗(game)
\]
【题目信息】

时间限制:\(2.5s\)

空间限制:\(512MB\)

\(O2:\) 没有

【题目背景】

\(ChiTongZ\) 实在想不出背景,便开始玩猜数游戏,为了不让他鸽掉出题,请帮他完成猜数游戏。

【题目描述】

给定一个序列 \(\{a_n\}\) ,每一次你需要指定一个区间 \([l,r]\) ,并查询这个区间的数的和的奇偶性,花费的代价 \(c_{ij}\) ,求得出所有的 \(a_i\) 的值的最小花费。

保证 \(a_i\in \{0,1\}\) 。

【输入格式】

第一行为 \(n\) 。

第二行起为一个矩阵,其中第 \(i\) 行有 \(n-i+1\) 个数,

其中第 \(i\) 行表示 \(c_{ii},c_{i(i+1)},c_{i(i+2)},\cdots ,c_{in}\)

【输出格式】

一行一个数表示最小花费。

【样例输入】

\(game.in\)

\(3\\8\ \ 4\ \ 2\\8\ \ 1\\9\)

【样例输出】

\(game.out\)

7

【数据范围 \(/\) 提示】

对 \(5\%\) 的数据满足 \(n\leq 300\)

对 \(100\%\) 的数据

\(1\leq c_{ij} \leq 10^{9}\)

\(1\leq n\leq 3\times 10^3\)


\[
见过(matrix)
\]

【题目信息】

时间限制:\(3s\)

空间限制:\(512MB\)

\(O2:\) 没有

【题目背景】

\(ChiTongZ\) 拿着某一道奇奇怪怪的题目请教大佬,大佬给了 \(ChiTongZ\) 一道更加奇奇怪怪的题目,\(ChiTongZ\) 测了 \(50\) 次都没有 \(AC\) ,为了体现 \(OIer\) 互帮互助的精神,你需要解决这一道题。

【题目描述】

大佬发现 \(ChiTongZ\) 的提交记录构成了一个奇奇怪怪的矩阵,全是 \(WA\) ,但是相邻的格子的分数值得研究,假设矩阵有一个奇怪值,定义为

\(\sum\limits_{i=1}^n\sum\limits_{j=1}^mnum_{ij}*A_{ij}^2\)

其中 \(n\) 表示矩阵的行数,\(m\) 表示矩阵的列数,\(num_{ij}\) 表示第 \(i\) 行第 \(j\) 个元素上下左右四个方向上有多少个元素与 \(A_{ij}\) 的值不同,当然 \(A_{ij}\) 就表示矩阵第 \(i\) 行第 \(j\) 个元素了。

保证矩阵有 \(c\) 种颜色,并且 \(A_{ij}\in[1,c]\)

告诉你矩阵的行数 \(n\) ,列数 \(m\) ,还有每一种颜色的格子数量 \(p_i\) ,请求出矩阵奇怪值尽量小的一种方案,至于要多小,见提示。

【输入格式】

第一行三个整数 \(n,m,c\) 表示矩阵行数,矩阵列数,颜色的种类数。

第二行 \(c\) 个数字,第 \(i\) 个数 \(p_i\) 表示颜色为 \(i\) 的格子的数量。

保证 \(\sum\limits_{i=1}^cp_i=n\times m\)

【输出格式】

第一行为你的矩阵的奇怪值。

第二行起的连续 \(n\) 行描述这个矩阵,第 \(i\) 行 \(j\) 个元素表示 \(A_{ij}\) 。

【样例输入】

\(matrix.in\)

\(5\ \ 5\ \ 5\\4\ \ 2\ \ 1\ \ 7\ \ 11\)

【样例输出】

\(matrix.out\)

\(290\\5\ 5\ 5\ 4\ 4\\5\ 5\ 1\ 4\ 4\\5\ 5\ 1\ 4\ 4\\5\ 5\ 1\ 1\ 4\\5\ 5\ 2\ 2\ 3\)

【数据范围 \(/\) 提示】

对于 \(100\%\) 的数据,满足 \(1\leq n,m,c\leq 10,\ \ 1\leq A_{ij}\leq c\) 。


每一个测试点的分值给法如下

对于每一个测试点,有一个阈值 \(w\) ,设 \(p\) 表示你的程序的答案(如果合法)。

若 \(p\leq 1.1w\) 分值为 \(5\) 分。

若 \(1.1w<p\leq 1.4w\) 分值为 \(3\) 分。

若 \(1.4w<p\leq 2.0w\) 分值为 \(1\) 分。

此外情况为 \(0\) 分,不合法的答案也为 \(0\) 分。

不要尝试输出答案为 \(0\) ,\(SPJ\) 会检测你的结果与你的矩阵是否相符。

不同的矩阵构造方式可能会有相同的分数,由 \(SPJ\) 给出结果。


\[
太阳(tree)
\]

【题目信息】

时间限制:\(1s-1.5s\)

空间限制:\(512MB\)

\(O2:\) 没有

【题目背景】

\(ChiTongZ\) 向 \(LDJ\) 借了一棵树,为了更好的了解这一棵树,他想问你一个问题。

【题目描述】

每一个节点有两个权值 \(c_i,b_i\) ,定义一个节点 \(u\) 的可爱度如下:

从节点 \(u\) 的所有的子节点(包括 \(u\) )当中选择一部分点,并且 \(u\) 可以选择可以不选择,将其权值 \(c_i\) 相乘,并对 \(M\) 取模,可以得到一个正整数 \(k\),要求 \(b_u\equiv k (mod\ M)\) 的取节点总方案数为 \(u\) 的可爱度。

为了更好的了解这一棵树,\(ChiTongZ\) 想要知道所有的节点的可爱度。

由于不想写高精度,答案请对 \(998244353\) 取一取模。

不选节点视乘积为 \(1\) 。

【输入格式】

第一行两个正整数 \(n,M\) ,表示节点的个数,模数。

第二行起的 \(n-1\) 行,每行两个整数 \(x,y\) ,表示点 \(x\) 与点 \(y\) 有边直接相连。

接下来的一行有 \(n\) 个整数,表示每一个节点的权值 \(c_i\) 。

接下来的一行有 \(n\) 个整数,表示每一个节点的权值 \(b_i\) 。

【输出格式】

输出一行一共 \(n\) 个整数,表示每一个节点的可爱度。

【样例输入】

\(tree.in\)

\(5\ 13\\1\ 2\\2\ 4\\2\ 5\\1\ 3\\5\ 1\ 4\ 2\ 7\\2\ 1\ 3\ 2\ 2\)

【样例输出】

\(tree.out\)

\(4\ 4\ 0\ 1\ 0\)

【数据范围 \(/\) 提示】

对于 \(90\%\) 的数据,满足 \(n,m\leq 100\),测试点时限 \(1s\)

对于另外 \(10\%\) 的数据,满足测试点时限 \(1.5s\)

对于 \(100\%\) 的数据,满足 \(n\leq 3000, M\leq 10000,1\leq c_i,b_i<M\) 并且 \(M\) 为质数,保证 \(b_i,c_i\) 不为 \(M\) 的倍数。

T1

部分分做法

或许可以搜索?

满分做法

考虑每一次询问 \([i,j]\) 实际上是得到了 \(sum_{i-1}\) 与 \(sum_j\) 的对应关系,就是知道其中一个,另外一个就知道了,另外这个关系可以转移,就是对于 \(i<j<k\) 知道了 \(sum_{i}\) 与 \(sum_k\) 的关系,知道了 \(sum_j\) 与 \(sum_k\) 的关系,就知道了 \(sum_i\) 与 \(sum_j\) 的关系,所以是不会存在环的,于是就可以使用最小生成树解决。

T2

部分分做法

贪心,动态规划等等都可以试一试。

满分做法

考虑搜索,但是时间复杂度太高,所以模拟退火优化,卡一卡。

每次找两个格子,交换位置,答案更优就保留,否则按照某个随随机次数增多而减小的概率保留答案。

这道题是 这道题 的弱化版,卡参数不那么严重。

T3

部分分做法

考虑直接 \(DP\) ,明显设 \(f[i][j]\) 表示第 \(i\) 个节点及子节点当中选出乘积为 \(j\) 的方案数,所以直接转移就可以了。

满分做法

多项式乘法可以解决剩下的 \(10\) 分。

将状态转移方程列出来之后发现是(\(v\) 为 \(u\) 的子节点)

\(f[u][k]=\sum\limits_{i\times j=k}f[u][i]\times f[v][j]\)

左边是新的 \(f\) ,右边是旧的 \(f\) ,运算时不能覆盖。

这个式子有一点多项式的样子,但是运算符是乘法,不能够直接 \(NTT/FFT\) ,所以考虑转化一下。

由套路可得,在 \(M\) 为质数时,可以直接求出模 \(M\) 的原根 \(g\) ,并把每一个数 \(x\) 表示为 \(log_gx\) ,于是状态转移就变成了

\(f[u][log_gk]=\sum\limits_{log_gi+log_gj=log_gk}f[u][log_gi]\times f[v][log_gj]\)

然后就可以 \(NTT/FFT\) 快速计算了。

test20190905 ChiTongZ的更多相关文章

  1. test20190815 NOIP2019 模拟题

    100+60+40=200,被后面两个题卡着我很不爽. 立方数 [问题描述] 作为 XX 战队的狂热粉丝,MdZzZZ 看到了自己心仪的队伍在半决赛落败,顿时 心灰意冷.看着自己手中的从黄牛那里抢来的 ...

  2. test20190814 NOIP2019 模拟题

    二叉树 [问题描述] 从前有一棵二叉树,我们用如下方式来表示这棵二叉树. 如果一个节点没有儿子,我们用"0"来表示他. 如果一个节点有一个儿子,我们对它的表示以"1&qu ...

  3. 【考试总结】欢乐模拟赛_Day2

    \(T1\) 题目描述 在仙界中有着 \(n\) 位神仙, 每位神仙用一个 \(1 ∼ n\) 的特异编号表示, 老祖 \(ChitongZ\) 的编号为 \(1\) . 除去至尊至圣, 统管仙界的老 ...

随机推荐

  1. Locust 性能测试工具安装使用说明

    1. 介绍     它是一个开源性能测试工具.使用 Python 代码来定义用户行为.用它可以模拟百万计的并发用户访问你的系统. 性能工具对比 LoadRunner 是非常有名的商业性能测试工具,功能 ...

  2. CentOS 使用 prename修改文件名大小写的方法

    1. CentOS和ubuntu的rename的命令是不一样的. CentOS的rename 使用的是c语言版本的 而ubuntu的rename使用的是 perl的版本,意味着很多ubuntu上面的扩 ...

  3. Centos 7搭建Gitlab服务器超详细

    一. 安装并配置必要的依赖关系在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问. 1.安装ss ...

  4. 递归实现全排列python

    python递归实现"abcd"字符串全排列 1.保持a不动,动bcd 2.保持b不动,动cd 3.保持c不动,动d def pailie(head="",st ...

  5. GIL全局解释锁,死锁,信号量,event事件,线程queue,TCP服务端实现并发

    一.GIL全局解释锁 在Cpython解释器才有GIL的概念,不是python的特点 在Cpython解释器中,同一个进程下开启的多线程,同一时刻只能有一个线程执行,无法利用多核优势. 1.GIL介绍 ...

  6. Linux基础(10)AIO项目设计与POSIX文件操作和目录管理

    实现fast-cp :拷贝文件到目标对象 Linux的七种文件类型 :https://blog.csdn.net/linkvivi/article/details/79834143 ls -al :h ...

  7. redis源码分析(五)--cluster(集群)结构

    Redis集群 Redis支持集群模式,集群中可以存在多个master,每个master又可以拥有多个slave.数据根据关键字映射到不同的slot,每一个master负责一部分的slots,数据被存 ...

  8. redis源码分析(二)-rio(读写抽象层)

    Redis io抽象层 Redis中涉及到多种io,如socket与file,为了统一对它们的操作,redis设计了一个抽象层,即rio,使用rio可以实现将数据写入到不同的底层io,但是接口相同.r ...

  9. Windows 编译安装 nginx 服务器 + rtmp 模块

    有关博客: <Windows 编译安装 nginx 服务器 + rtmp 模块>.<Ubuntu 编译安装 nginx>.<Arm-Linux 移植 Nginx> ...

  10. SSM 前后端分离 这里controll层的返回值和之前那个不一样

    1.先创建实体类: 2.创建mapper层 package cn.kgc.mapper; import cn.kgc.Account;import org.apache.ibatis.annotati ...