codeforces891B Gluttony题解
来源:互联网 发布:车座套什么材质好 知乎 编辑:程序博客网 时间:2024/05/22 12:24
第一次做构造题..orz…
.一开始以为是状压DP啥的想了半天发现一脸不可做
于是生无可恋的洗洗睡了
早晨看到题解和AC代码感觉只有一个:蛤?
惯例说说题意。
一个由
如果满足
现在给你这样的
做法很玄妙。
首先,我们对
然后,用题解的话说,”shift it by one”,也就是整个移动一下。
怎么移动呢?按照排序后的位置+1重新排一下,有点类似莫队的离散化过程。
玄学题,先放代码吧。证明之后再说。
#include <iostream>#include <cstdio>#include <algorithm>using namespace std;int n;struct node{ int x, pos;}m[25];int ansT[25];bool cmp(node a, node b) { return a.x < b.x;}int main() { cin>>n; for(int i = 1; i <= n; ++i) cin>>m[i].x, m[i].pos = i; sort(m + 1, m + n + 1, cmp); ansT[m[1].pos] = m[n].x; for(int i = 2; i <= n; ++i) ansT[m[i].pos] = m[i - 1].x; for(int i = 1; i <= n; ++i) cout<<ansT[i]<<" "; return 0;}
接下来就是这种做法正确性证明了。
一开始我也百思不得其解,然后看了讨论,顿悟:
这个步骤相当于将第
因此任何数列都可以等效这样一个数列:
考虑第一个元素,
如果
否则,令
综上所述,
因此该做法是正确的。
阅读全文
0 0
- codeforces891B Gluttony题解
- [Codeforces 891B] Gluttony
- Codeforces 891B Gluttony 构造
- Gluttony(codeforce-891B)
- CF#446 Gluttony(思维题)
- CF 892D Gluttony 构造
- Codeforces 892 D. Gluttony (思维)
- codeforces -891B Gluttony 排列,构造题
- codeforces -891B Gluttony 排列,构造题
- Codeforces Round #446 (Div. 2) D. Gluttony
- codeforces 891 B. Gluttony(构造)
- codeforces 891B Gluttony (构造+思维)
- CF contest 892 D题 Gluttony
- Codeforces Round #446 (Div. 2) D. Gluttony (构造 贪心)
- Codeforces Round #446 (Div. 2) D. Gluttony 找规律
- Codeforces Round #446 (Div. 2) D. Gluttony 构造 置换
- 题解
- 题解
- 关于HTTP协议,一篇就够了
- SVM——(五)线性不可分之核函数
- LAMP搭建Discuz总结
- JavaScript 二级菜单联动
- oracle job 实例 :每天凌晨2点调用过程删日志。
- codeforces891B Gluttony题解
- CentOS 7.0关闭默认防火墙启用iptables防火墙
- Android的Dialog工具
- 对于全连接层的理解
- 吴恩达 神经网络和深度学习 第三周浅层神经网络
- Jenkins Pipeline 小试牛刀以及引入指定的环境变量
- Android NDK开发扫盲及最新CMake的编译使用
- scrapy生成图片缩略图
- 告别图像处理,我还能做什么?