zoukankan      html  css  js  c++  java
  • test20190905 ChiTongZ

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

    围观刘老爷超强 T1 解法。

    ChiTongZ的水题赛

    【题目简介】

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

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

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

    [黑暗(game) ]

    【题目信息】

    时间限制:(2.5s)

    空间限制:(512MB)

    (O2:) 没有

    【题目背景】

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

    【题目描述】

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

    保证 (a_iin {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\%) 的数据满足 (nleq 300)

    (100\%) 的数据

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

    (1leq nleq 3 imes 10^3)


    [见过(matrix) ]

    【题目信息】

    时间限制:(3s)

    空间限制:(512MB)

    (O2:) 没有

    【题目背景】

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

    【题目描述】

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

    (sumlimits_{i=1}^nsumlimits_{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) 的格子的数量。

    保证 (sumlimits_{i=1}^cp_i=n imes 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\%) 的数据,满足 (1leq n,m,cleq 10, 1leq A_{ij}leq c)


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

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

    (pleq 1.1w) 分值为 (5) 分。

    (1.1w<pleq 1.4w) 分值为 (3) 分。

    (1.4w<pleq 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_uequiv 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,mleq 100),测试点时限 (1s)

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

    对于 (100\%) 的数据,满足 (nleq 3000, Mleq 10000,1leq 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]=sumlimits_{i imes j=k}f[u][i] imes f[v][j])

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

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

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

    (f[u][log_gk]=sumlimits_{log_gi+log_gj=log_gk}f[u][log_gi] imes f[v][log_gj])

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

  • 相关阅读:
    (转) asp.net中使用ajax中的三种方式
    转ASP.NET 防盗链的实现[HttpHandler]
    (转)ADO.net,Linq to SQL和Entity Framework性能实测分析
    (转) JS日历控件集合附效果图、源代码
    正则表达式收集
    Asp.net 打开页面错误 (无法显示 XML 页。使用 XSL 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。)
    SQL优化原则
    转载 25个优秀的 ASP.NET MVC教程及文章
    SQL 时间格式格式化
    任务失败,原因是未找到“LC.exe”,或未安装正确的 Microsoft Windows SDK。
  • 原文地址:https://www.cnblogs.com/autoint/p/test20190905.html
Copyright © 2011-2022 走看看