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. B+树比B树更适合实际应用中操作系统的文件索引和数据库索引

    B+树比B树更适合实际应用中操作系统的文件索引和数据库索引 为什么选择B+树作为数据库索引结构?   背景 首先,来谈谈B树.为什么要使用B树?我们需要明白以下两个事实: [事实1]不同容量的存储器, ...

  2. oracle 通用事务使用

    private void dothing() { OracleConnection con = DBHelperOracle.init(); OracleTransaction tran = con. ...

  3. Visual Studio Code工具使用及配置

    最近迷上了这个工具,启动速度快,好多插件.唯一不满意的地方就是svn版本控制工具.下面发现我装的一些插件及配置: 我安装的一些插件: 上面是我装的插件,等有时间再解释下插件的作用. 接下来说下配置: ...

  4. PHP防止刷微信红包方法

    PHP防止刷微信红包方法1 输入验证码2授权登陆后 领取红包记录下 openid ip 第二次用openid或者ip(ip)连接同一个路由器是一样的 所以用ip 判断最好是判断有没有6个以上 判断有没 ...

  5. 【转帖】LSM树 和 TSM存储引擎 简介

    LSM树 和 TSM存储引擎 简介 2019-03-08 11:45:23 长烟慢慢 阅读数 461  收藏 更多 分类专栏: 时序数据库   版权声明:本文为博主原创文章,遵循CC 4.0 BY-S ...

  6. Python之路【第二十四篇】:数据库索引

    数据库索引 一.索引简介 索引在mysql中也叫做"键",是存储引擎用于快速找到记录的一种数据结构.索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈 ...

  7. Python入门 常量 注释 基础数据类型 用户输入 流程控制

    Python入门 一.常量 在Python中,不像其他语言有绝对的常量,修改会报错,在Python中有个约定俗成的规定--常量就是将变量名大写. 尽量保持不更改的一种量 , 这个常量有是干什么的呢 其 ...

  8. 未能加载文件或程序集 Microsoft.ReportViewer.ProcessingObjectModel, Version=10.0.0.0

    写在前面 整理错误集.某一天在启动项目的时候,出现了未能加载文件或程序集 Microsoft.ReportViewer.ProcessingObjectModel, Version=10.0.0.0错 ...

  9. (转)微服务_创建一个简单的Eureka注册中心

    原文地址:https://www.cnblogs.com/lplshermie/p/9105329.html 微服务和分布式已经成了一种极其普遍的技术,为了跟上时代的步伐,最近开始着手学习Spring ...

  10. 2019 汇量科技java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.汇量科技等公司offer,岗位是Java后端开发,因为发展原因最终选择去了汇量科技,入职一年时间了,也成为了面 ...