HNSDFZ2016 #4
A. 24点加强版 (ruanxingzhi)
题目描述
这是一道提交答案的防AK水题。
给定
自然,每个数都要用且仅用一次。
输入格式
第一行,两个正整数,表示
第二行,
输出格式
一行,一个四则运算的表达式。注意所有括号都是小括号,可以括号嵌套。
样例输入1
1 2 | 4 24 6 6 6 6 |
样例输出1
1 | ()6+(6+(6)+6) |
样例输入2
1 2 | 4 24 2 7 1 7 |
样例输出2
1 | (7*7-1)/2 |
数据范围及提示
对于每个输入文件k_.in
,你需要提交一个输出文件k_.out
.
共有
$k$ -SBK变换 (riteme)
题目描述
数学家Lunk最近发现了一种逗逼的SBK变换。在Lunk眼里,SBK变换是这样的:
给你一个
$1$ 至$n$ 的排列$A$ 和一个$1$ 至$n$ 的排列$P$ ,$P$ 对$A$ 做一次SBK变换后将得到一个新的排列$B$ ,其中:
$$ B_{P_i} = A_i \tag{SBK Transformation}$$
然而做一次SBK变换太过无聊,于是Lunk决定连续做多次SBK变换。即将每次变换后的结果
输入格式
第一行输入两个整数
第二行输入
第三行输入
输出格式
一行输出
样例输入
1 2 3 | 5 2 1 2 3 4 5 2 3 4 5 1 |
样例输出
1 | 4 5 1 2 3 |
样例解释
做完第一次SBK变换后: 5 1 2 3 4
做完第二次SBK变换后: 4 5 1 2 3
数据范围及约定
共
数据点 | ||
---|---|---|
1 | ||
2 | ||
3 | ||
4 | ||
5 | ||
6 | ||
7 | ||
8 | ||
9 | ||
10 |
C. 稀奇古怪的根 (Link)
题目描述
DYX是一个很ZY的ZY,但是他不想ZY一样ZY。
他特别喜欢捣鼓一些无与伦比的树。
他也特别喜欢逆序对这种东西,因此他想把逆序对拓展到树上来。
DYX对于树上的逆序对的定义是这样的:
树上的某个点到根节点的路径上权值比他大的节点和他构成逆序对
换句话来说,就是指,树上某个节点能和他构成逆序对的节点是他的子树中
权值比他小的或者是他到根节点的路径上权值比他大的
聪明的DYX很快就把他推广到树上了。
最近DYX学会了LCT,里面的换根操作打动了他。
因此他在想能不能把LCT的换根拓展到他的树上
定义树上两个节点
定义
给你一棵树,询问以某个节点为根的时候这棵树总共有多少组逆序对
输入格式
第一行
第二行
然后
然后
输出格式
输出
样例输入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 10 5 1 2 3 4 5 6 7 8 9 10 1 2 1 3 3 4 3 5 3 7 2 9 2 10 2 6 2 8 3 2 1 7 10 |
样例输出
1 2 3 4 5 | 2 1 0 8 10 |
数据范围及提示
int
范围内
提供两个类:
LCT和主席树,要的请找出题人。
要了的话就1分
D. 最长公共子序列 (Haogram)
题目描述
给定两个正整数序列,每个序列中元素两两不同,且范围都在
输入格式
第一行一个正整数
第一行三个数
接下来两行描述两个序列。
输出格式
共
样例输入
1 2 3 4 | 1 3 7 8 1 7 5 4 8 3 9 1 4 3 5 6 2 8 9 |
样例输出
1 | 4 |
数据范围及提示
对于
对于
E. ZY的金坷垃 (HJWJBSR)
题目描述
Zy:金坷垃好处都有啥,谁说对了就给他
zy:肥料掺了金坷垃,不流失,不蒸发,零浪费
zY:肥料掺了金坷垃,能吸收两米下的氮磷钾
zy:世界肥料都涨价,肥料掺了金坷垃,一袋能顶两袋撒
zY:用了金坷垃,小麦亩产一千八。日本的粮食再也不向美国进口了!hhhhhhhh
Zy:小鬼子,真不傻!金坷垃给了他对美国农业危害大,决不能给了他!
Zy:非洲农业不发达,我们都要支援他。金坷垃,你们日本别想了!
zY:狡猾,狡猾。没有金坷垃,怎么种庄稼!金坷垃!金坷垃!(残念脸
zy最近从小鬼子手中抢到了金坷垃。开始考虑怎么撒。他家的地可以看做一个
由于非洲农业不发达,zy家的地有些地方并不能够播撒。
并且金坷垃是全球瞩目的焦点是农业科技的前沿,所以播撒的方式也比较不一样:每次需要选择一个没被选择过的矩形
并均匀撒上金坷垃,且必须将所有矩形都播撒一次。
每次播撒的花费的金坷垃袋数是矩形包含的格子个数的平方。
zy想知道他要买多少金坷垃才够用。
输入格式
第一行给出两个正整数
下面01串
描述了zy家地的状态。
输出格式
一个非负整数代表金坷垃至少要多少袋。
样例输入
1 2 3 4 5 6 | 5 5 01001 11000 00010 00000 10001 |
样例输出
1 | 15 |
数据范围及提示
对于
对于
对于所有数据,保证
题解
A
这道题首先需要你有1个小时。
然后就可以A掉了。
防AK什么鬼......
B
- 20分: 模拟 (
$\Theta(nk)$ ) - 80分:
- 排列矩阵快速幂 (
$\Theta(n \log k)$ ,排列矩阵的乘法可以在$\Theta(n)$ 的时间内计算) - 寻找循环节,倍增找到每个值 (
$O(n\log k)$ )
- 排列矩阵快速幂 (
- 100分: 寻找循环节,取模找到每个值 (
$\Theta(n)$ )
C
首先需要计算DFS序。
然后用可持久化平衡树来维护它上面的值。
首先以
然后从
然后就可以愉快的
D
将其中一个序列的值依次重新编号,然后将另外一个序列也同步修改一下。
然后就转成了求另外一个序列的最长上升子序列问题。
这个可以在
E
引用一段话:
题解:
本来打算出了另外一道题,后来才发现正确性不太好。又不想变成只能出数据结构题的选手,就临时换了这个比较裸的题。
(出题好难
很明显如果矩形代价都是1那么肯定就是直接悬线法。
否则他要算这个的代价就在悬线法里面加特技:每次相当于要从一个长宽分别为n*m的矩形里面算满足特定条件的子矩形的答案。这样就不会重复。
相当于$\sum_{i=y_0}^{y_1} i^2 \times \text{横着的答案}$ 。
横着的答案:$\sum_{i=1}^m i^2 \cdot (n-i+1)$ 。
然后就没了。