CF1497A Meximization 题解
2024-10-16 16:35:16
Content
给定 \(n\) 个数 \(a_1,a_2,\dots,a_n\),你需要将这些数重新排列,使得 \(\sum\limits_{i=1}^n\operatorname{mex}(a_1,a_2,\dots,a_i)\) 最大。
数据范围:\(1\leqslant t\leqslant 100\),\(1\leqslant n\leqslant 100\),\(0\leqslant a_i\leqslant 100\)。
Solution
不难发现,如果我们将一个在原数列中已有的数放进去,那么 \(\operatorname{mex}\) 值必定是不变的。所以,我们将所有数不重复地从小到大放入新数列中,再将原来没选进去的数按任意顺序放在最后,可以证明这样放的 \(\operatorname{mex}\) 值最大。
Code
int a[107];
int main() {
MT {
int n = Rint, vis[107] = {0}, tmp[107] = {0};
F(i, 1, n) a[i] = Rint;
sort(a + 1, a + n + 1);
F(i, 1, n) {
if(!vis[a[i]]) write(a[i]), putchar(' '), vis[a[i]] = 1;
else tmp[++tmp[0]] = a[i];
}
F(i, 1, tmp[0]) write(tmp[i]), putchar(' ');
puts("");
}
return 0;
}
最新文章
- 基于vw的响应式排版布局
- Android之登录那点事
- Sqlserver游标复习
- iOS开发 判断扫码是否为有效网址
- HW5.30
- 搭建linux环境下jenkins可移植环境
- [转] Java内部类之闭包(closure)与回调(callback)
- hdu_2546_饭卡(01背包)
- 错误卸载软件导致Windows7系统中的软件无法播放视频
- python登录网页版微信发送消息
- H5 audio标签
- GPU Tips
- com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
- Using Time Profiler in Instruments
- 使用LD_Preload的Linux权限升级技巧
- CentOS 7 开放防火墙端口 命令
- python_cookies
- 从代码层读懂 Java HashMap 的实现原理
- SQL Server 创建和使用索引
- 斗地主(NOIP2015)