【Codeforces 840 A. Leha and Function】& 构造
来源:互联网 发布:ubuntu查看opencv路径 编辑:程序博客网 时间:2024/05/22 12:04
A. Leha and Function
time limit per test2 seconds
memory limit per test256 megabytes
inputstandard input
outputstandard output
Leha like all kinds of strange things. Recently he liked the function F(n, k). Consider all possible k-element subsets of the set [1, 2, …, n]. For subset find minimal element in it. F(n, k) — mathematical expectation of the minimal element among all k-element subsets.
But only function does not interest him. He wants to do interesting things with it. Mom brought him two arrays A and B, each consists of m integers. For all i, j such that 1 ≤ i, j ≤ m the condition Ai ≥ Bj holds. Help Leha rearrange the numbers in the array A so that the sum is maximally possible, where A’ is already rearranged array.
Input
First line of input data contains single integer m (1 ≤ m ≤ 2·105) — length of arrays A and B.
Next line contains m integers a1, a2, …, am (1 ≤ ai ≤ 109) — array A.
Next line contains m integers b1, b2, …, bm (1 ≤ bi ≤ 109) — array B.
Output
Output m integers a’1, a’2, …, a’m — array A’ which is permutation of the array A.
Examples
input
5
7 3 5 3 4
2 1 3 2 3
output
4 7 3 5 3
input
7
4 6 5 8 8 2 6
2 1 2 2 1 1 2
output
2 6 4 5 8 8 6
题意 : F(n,k) 表示从 1 ~ n 里选出 k 个数,每次选出的 k 个数的贡献为 k 个数里最小哪个数,把 a 数组重新拍下序,使得 F(ai,bi) 的和最大
思路 : 推导下会发现 F(n,k) = C(n,k) * 1 + C(n - 1,k) * 2….+C(n - (n - k),k) k , n 相同时 k 越小 ,F(n,k) 越大,让 较大 的 n 和 较小的 k 配对,最优
AC代码:
#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>using namespace std;const int MAX = 2e5 + 10;typedef long long LL;struct node{ int a,o;}s[MAX],st[MAX];bool cmp(node i,node j) { return i.a > j.a; }bool cnp(node i,node j) { return i.a < j.a; }bool cpp(node i,node j) { return i.o < j.o; }int main(){ int m; scanf("%d",&m); for(int i = 0; i < m; i++) scanf("%d",&st[i].a),st[i].o = i; for(int i = 0; i < m; i++) scanf("%d",&s[i].a),s[i].o = i; sort(st,st + m,cmp),sort(s,s + m,cnp); for(int i = 0; i < m; i++) st[i].o = s[i].o; sort(st,st + m,cpp); for(int i = 0; i < m; i++) printf("%d ",st[i].a); return 0;}
- 【Codeforces 840 A. Leha and Function】& 构造
- codeforces 840A Leha and Function
- Codeforces 840A Leha and Function
- Leha and Function CodeForces
- Leha and Function CodeForces
- A. Leha and Function
- Codeforces Round #429 (Div. 2) 840A Leha and Function(贪心)
- Codeforces Round #429 (Div. 2):C、&840A、 Leha and Function
- Codeforces_841_C Leha and Function(贪心+构造|规律)
- codeforces 841C Leha and Function
- Codeforces-429-2-C Leha and Function
- C. Leha and Function
- cf840A Leha and function
- codeforces Div.2 #429 B.Godsend C. Leha and Function
- CodeForces 841C (C) Leha and Function 贪心
- codeforces 840B. Leha and another game about graph(构造,dfs)
- Codeforces 841D Leha and another game about graph 构造
- 429c Leha and Function
- js原生实现jquery方法offset()和position()
- 实现
- matlab控制运算精度函数digits(A)和vpa(B)的使用方法
- 关于有偿提供拼图响应式后台的通知
- 如何移除解决方案中的TFS版本控制
- 【Codeforces 840 A. Leha and Function】& 构造
- JSON和JSONP,也许你会豁然开朗
- sql查询一个字段包含另一个字段内容
- 继承与面向对象设计
- 栈——设计一个有getmin功能的栈
- 【笨鸟先飞】android重新学习日记8---储存数据的方法
- python学习——Python3.x版本中filter(),map()函数的变化
- ZooKeeper学习第一期---Zookeeper简单介绍
- 模板与泛型编程