codeforces Round #446 (Div. 2) D
来源:互联网 发布:淘宝大件物流怎么设置 编辑:程序博客网 时间:2024/06/09 15:06
题解:将每一个数换成后一个比它大的数,最大的数换成最小的那一个,就行了。(或者每个数换成前一个比小的之类多可以)
考虑分两种情况讨论:
1.原子集没有最大的那个数:这就显然是个正确的,每个数都比之前的数要大,所以总和肯定要大;
2.原子集有最大的那个数:最大数改变后的值最整个里面最大的,然后你将这个子集去掉最大的那个数,剩下的变化量的和肯定要小于你最大值变为最小值的值,因为你之间肯定会有多余的空格(因为不能为全集)留着,所以肯定是可行的。
#include <algorithm>#include <iostream>#include <cstring>#include <cstdlib>#include <cstdio>using namespace std;#define INF 0x3f3f3f3f#define N 2010struct node { int val; int pos;}a[N];int b[N];bool cmp(node a, node b){ if(a.val == b.val) return a.pos < b.pos; return a.val < b.val;}int main(){ int n; scanf("%d", &n); for(int i = 1; i <= n; i++) { cin >> a[i].val; a[i].pos = i; } sort(a + 1, a + n + 1, cmp); for(int i = 1; i <= n; i++) b[a[i].pos] = i; for(int i = 1; i <= n; i++) { if(b[i] != n) cout << a[b[i] + 1].val << " "; else cout << a[1].val << " "; } return 0;}
阅读全文
0 0
- Codeforces Round #446 (Div. 2) D
- Codeforces Round #446 (Div. 2) D. Gluttony
- codeforces Round #446 (Div. 2) D
- Codeforces Round #446 (Div. 2) D. Gluttony (构造 贪心)
- Codeforces Round #446 (Div. 2) D. Gluttony 找规律
- Codeforces Round #446 (Div. 2) D. Gluttony 构造 置换
- Codeforces Round #103 (Div. 2) D
- Codeforces Round #104 (Div. 2) D
- Codeforces Round #105 (Div. 2) D
- Codeforces Round #139 (Div. 2) D. Snake
- Codeforces Round #155 (Div. 2) D-rats
- Codeforces Round #159 (Div. 2) D sum
- Codeforces Round #184 (Div. 2) D、E
- Codeforces Round#186(Div 2) D
- codeforces Round # 187(Div.2) D
- Codeforces Round #191 (Div. 2) D
- Codeforces Round #194 (Div. 2) D. Chips
- Codeforces Round #209 (Div. 2) <A-D>
- MySql查询过程 几点记要
- linux下使用vim编写运行C,C++程序(以hello world为例)
- Static方法和域
- 欢迎使用CSDN-markdown编辑器
- Python3怎样生成Html测试报告
- codeforces Round #446 (Div. 2) D
- 正则表达式的应用
- dumpsys meminfo执行流程(一)
- java连接不上sq server 2012 express的解决方法
- ES6的变量
- Kivy显示中文
- 欧几里得+扩展欧几里得(理解)
- Android MVP 架构及布局业务逻辑复用
- PAT (Basic Level) Practise (中文)1075. 链表元素分类(25)