1004模拟题解
国庆D2模拟题解
T1
非常基础的一道题:
主要就是思路方面稍微又一些需要稍加思考的地方。
首先,非常直观地,通过观察题目信息就可以得出的一种暴力方法。
在求最大密度和的时候,
把密度和体积进行排序,
然后按顺序相乘。
最大的和最大的进行相乘得到最大质量和,
最小的和最小的相乘的到最小质量和。
我的思路没有问题吧!
然鹅……
不对啊啊啊啊!!!
是我遗落了什么吗?
重新阅读一遍题目:
我们注意到这样一段文字
由于是相对密度和相对体积,\(p_i\),\(v_i\) 有可能为负数……
emm?
负数?
……可是我看到了啊……
那么问题出在哪里呢?
再一次仔细思考🤔
等等!
两个负数相乘……
得到的是…… ?
淦!!!
是正数!!!
那么如果在排序过程中出现了不得不使一个整数和一个负数相乘的情况,
在求最大值的时候,我们需要使相乘的两个数尽可能得小,
同理,在求最小值的时候钥匙它尽可能的大。
显然,代码轻松实现……
应该哈。
T2
首先看一下洛谷的这道题:
看过之后,可以非常明显的意识到一个问题。
其实两道题的思路是非常相似的。
只不过差别在于,
本题多了一个环状的结构。
两点很重要的提示
首先,当两个颜神相遇,反向而行,
我们可以理解为…… 他们互相穿过,交换名字
以及……
对于一个固定的颜神,他所在的相对位置是固定的,永远不动的,也即是:
== 序号的相对位置是不变的==
所以……
非常简单((梅开二度))
注意…… 复杂度
T3
思路简直不要太简单。
主要应该是实现的问题,
在这个数据范围的前提下。
从而有:
\(f_{i,j}=2f{i,j-1}+j*f_{i-1,j-1}\)
emm
难以理解可还行。
显然还行
T4
每次选择两个度数为偶数的点后,可以选择两个点之间的任意一条路径进行反转。
但是由于要让字典序最大,也就应该让编号较小的边尽可能不被改变。
因此选择的路径应该满足路径上最小的点的编号尽可能得大。
转化成最大生成树上问题 不会
时间复杂度\(O(n\alpha(n))\)