[2020.11.28提高组模拟]T1染色(color) 题目 题目描述 给定 \(n\),你现在需要给整数 \(1\) 到 \(n\) 进行染色,使得对于所有的 \(1\leq i<j\leq n\),若 \(i - j\) 为质数,则 \(i\) 和 \(j\) 不同色. 求出颜色尽可能少的染色方案.如果有多种方案,输出任意一种即可. 输入格式 第一行一个整数 \(n\). 输出格式 第一行一个整数 \(k\),表示颜色数. 第二行 \(n\) 个整数 \(col_i\)(\(1 \leq…
序列(array) 题目描述 ​给定一个长为 \(m\) 的序列 \(a\). 有一个长为 \(m\) 的序列 \(b\),需满足 \(0\leq b_i \leq n\),\(\sum_{i=1}^m a_ib_i \leq D\) 且 \(b_i\) 为整数. ​求 \(\sum b_i + k \min_{i=1}^m{b_i}\) 的最大值. 输入格式 ​第一行一个正整数 \(T\),表示数据组数. ​对于每组数据,第 \(1\) 行四个整数 \(n, m, k, D\). ​第 \(2…
剪辣椒(chilli) 题目描述 在花园里劳累了一上午之后,你决定用自己种的干辣椒奖励自己. 你有n个辣椒,这些辣椒用n-1条绳子连接在一起,任意两个辣椒通过用若干个绳子相连,即形成一棵树. 你决定分三餐吃完这些辣椒,因此需要剪断其中两根绳子,从而得到三个组成部分,每一餐吃一个组成部分即可. 每一餐不可以太辣,所以你会寻找一个剪绳子的方法,使得最大组成部分和最小组成部分的辣椒数量差最小.计算出这个最小差值. 输入格式 输入文件名为chilli.in. 第一行一个整数n,表示辣椒的数量.辣椒从1到…
删边(delete) 题目 题目描述 给你一棵n个结点的树,每个结点有一个权值,删除一条边的费用为该边连接的两个子树中结点权值最大值之和.现要删除树中的所有边,删除边的顺序可以任意设定,请计算出所有方案中的最小花费. 输入格式 输入文件名为 delete.in. 第一行包含整数n,表示结点数.结点用从1到n表示. 第二行包含n个整数ti(1≤ti≤109).数字ti表示结点i的权值. 接下来n−1行,每行包含两个整数x和y(1≤x,y≤n),表示结点x和结点y直接相连. 输出格式 输出文件名为…
题目大意 给出一棵 \(n\) 个节点的树,删去其中两条边 使得分出的三个子树大小中最大与最小的差最小 分析 先一边 \(dfs\) 预处理出以 \(1\) 为根每个点的 \(size\) 然后按 \(dfs\) 的顺序枚举一个点,表示删去这个点返回父亲的边 记这个点为 \(x\) 分类讨论 第一种情况是删去当前点到根的一条边,记这条边下面的点为 \(y\) 这种情况会使子树 \(y\) 包含子树 \(x\) 第二种情况是删去不包含子树 \(x\) 的已经遍历过的边 这种情况须令外处理 于是我们…
题目 你有一棵 \(n\) 节点的树 ,回答 \(m\) 个询问,每次询问给你两个整数 \(l,r\) ,问存在多少个整数 \(k\) 使得从 \(l\) 沿着 \(l \to r\) 的简单路径走 \(k\) 步恰好到达 \(k\) . 分析 考虑离线后按链记贡献 从 \(l\) 到 \(lca(l,r)\) 这段链上,可以计入贡献的点 \(x\) 满足 \(dep[l]-x=dep[x]\),称为一类贡献 即 \(dep[x]+x=dep[l]\), 因为已知 \(dep[l]\),所以直接…
书信(letter) Description 有 n 个小朋友, 编号为 1 到 n, 他们每人写了一封信, 放到了一个信箱里, 接下来每个人从中抽取一封书信. 显然, 这样一共有 n!种拿到书信的情况. 现在亮亮规定, 对任意的 1<=x,y<=n, 如果 x 号小朋友拿到 u 号小朋友写的 书信, y 号小朋友拿到 v 号小朋友写的书信, 那么(x+y)号小朋友必须拿到(u+v) 号小朋友写的书信(这里的加法若和超过了 n, 那么就减去 n) . 小林想知道, 总共有多少种拿到书信的情况呢…
估计:40+10+0+0=50 实际:40+10+0+0=50 rank40 T1 赛时看到\(n,m\leq9\),我当机立断决定打表,暴力打了几个点之后发现在\(n\ne m\)且\(k\ne0\)的情况下答案为0,而\(k=0\)时答案总为1,于是就决定找规律,然后,就没有然后了--找规律找着找着就到了10:30,我依旧没有找到规律,然后放弃,转而打表.由于我的暴力过于暴力,\(n=8,m=8,k=3\)这个点就跑了\(30mins\),这时就来到了11:00,只好放弃交暴力 得分:\(T…
题目 题目描述 今天,接触信息学不久的小\(A\)刚刚学习了卡特兰数. 卡特兰数的一个经典定义是,将\(n\)个数依次入栈,合法的出栈序列个数. 小\(A\)觉得这样的情况太平凡了.于是,他给出了\(m\)组限制,每个限制形如\((f_i,g_i)\),表示\(f_i\)不能在\(g_i\)之后出栈. 他想求出:在满足了这\(m\)组限制的前提下,共有多少个合法的出栈序列.他不喜欢大数,你只需要求出答案在模\(998244353\)意义下的值即可. 输入格式 输入第一行为两个非负整数,\(n\)…
105,rk45 T1 赛时一开始先打了\(m=0\)的情况,也就是普通的卡特兰数,然后打了暴力,样例过了,把样例改改就不行了,原因没有保证是枚举的是合法的出栈序列 得分:\(WA\&TLE10\) 正解是从原本的递推式\(f_n=\sum_{i=1}^nf_{i-1}*f_{n-i}\),这里枚举的是最后出栈的数,然后扩展到这道题,将\(dp\)转为区间\(dp\),然后就有了\(O(n^3m)\)的做法,优化至\(O(n^3+nm)\)--思考中 T2 名字如此高大上,肯定不会用莫队的(毕竟…