博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces-429-2-C Leha and Function
阅读量:4114 次
发布时间:2019-05-25

本文共 504 字,大约阅读时间需要 1 分钟。

题意:

给出两个串,第一个串称为A,第二个串称为B,两个串的长度相等,求的最大和, F(n, k)表示从1-n,你取出k的数字的子集, F(n, k)就等于你取出的k的数字中的最小值,而题目的要求就是让你重新给A排序,使得这个和值最大。

思路:我们每次从n个数字中取出k个数字时,最优的策略就是取n的前k个数字,这样肯定是最优的,那么给A重新排序的时候,我们可以这样想从n个数字中取出的数字越少和式肯定最大,所以此时我们只需要使得A串中的大的数对应B串中小的数,这样肯定是最大的

代码如下:

#include 
#include
#include
#include
using namespace std;const int MAXN=200050;struct Dig{ int x; int idx;} d1[MAXN],d2[MAXN];bool cmp1(Dig d1,Dig d2){ return d1.x>d2.x;}bool cmp2(Dig d1,Dig d2){ return d1.x

转载地址:http://lygsi.baihongyu.com/

你可能感兴趣的文章
Mysql复制表以及复制数据库
查看>>
Kafka
查看>>
9.1 为我们的角色划分权限
查看>>
维吉尼亚之加解密及破解
查看>>
TCP/IP协议三次握手与四次握手流程解析
查看>>
PHP 扩展开发 : 编写一个hello world !
查看>>
inet_ntoa、 inet_aton、inet_addr
查看>>
用模板写单链表
查看>>
链表各类操作详解
查看>>
C++实现 简单 单链表
查看>>
Linux的SOCKET编程 简单演示
查看>>
Linux并发服务器编程之多线程并发服务器
查看>>
C语言内存检测
查看>>
Linux epoll模型
查看>>
Linux系统编程——线程池
查看>>
Linux C++线程池实例
查看>>
shared_ptr的一些尴尬
查看>>
C++总结8——shared_ptr和weak_ptr智能指针
查看>>
c++写时拷贝1
查看>>
Linux网络编程---I/O复用模型之poll
查看>>