首页 > 其他分享 >[CEOI2017] Sure Bet(双指针)

[CEOI2017] Sure Bet(双指针)

时间:2023-06-04 15:47:53浏览次数:50  
标签:Sure int CEOI2017 选择 数组 include Bet 指针

题目大意:

给出两个数组A,B,可以在两个数组选择任意多个数,代价为选择的数的数目,得到的奖励为在数组A和数组B中选择的数的两个总和较小的那个,求能得到的最大收益

思路:

1.先给两个数组分别由大到小排序后求前缀和,不难得出在数组A中选择i个数,数组B中选择j个数时,最大收益为:

min(a[i], b[j])-i-j
2.之后是i,j的选择,由于是取a[i],b[j]中的最小值,因此a[i]<=b[j]时,i++,反之a[i]>b[j]时,j++,即依靠双指针来求解

代码如下:

#include<bits/stdc++.h>
#include<algorithm>
#include<unordered_set>
#include<unordered_map>
typedef long long ll;
using namespace std;
#define N 100005
double a[N],b[N];
int main(void)
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int n; cin >> n;
	for(int i= 1; i <= n; i++) cin>>a[i]>>b[i];
	//由大到小排序
	sort(a,a+n+1);
	sort(b,b+n+1);
	reverse(a + 1, a + n + 1);
	reverse(b + 1, b + n + 1);
	//求前缀和
	for (int i = 1; i <= n; i++) {
		a[i] += a[i - 1];
		b[i] += b[i - 1];
	}
	//双指针
	double ans = 0;
	for (int i = 0,j=0;j<=n;) {
		if (a[i] <= b[j]&&i<n)i++;
		else j++;
		ans = max(ans, min(a[i], b[j]) - i - j );
	}
	printf("%.4f", ans);
	return 0;
}

标签:Sure,int,CEOI2017,选择,数组,include,Bet,指针
From: https://www.cnblogs.com/markun0/p/17455752.html

相关文章

  • beta 阶段的 postmortem 报告
    1.每个成员在beta阶段的实践和alpha阶段有何改进姓名Beta阶段的实践和alpha 阶段有何改进 王集洲知道了开启router模式,在激活导航时以index作为path进行路由的跳转陈俊杰较alpha阶段界面功能增加了一些,能让用户有更好的人机交互冯嘉乐对界面进行了优化,实现更......
  • 读书笔记: Psychological Power between knowledge and practice; Inverted Totalitar
    JohnDeweyonceremarkedthatequalitybecomesdangerouswhenitiswidelypraisedbutemptyinpractice. Howtogeneratesuchkindofpsychologicalandsocialpower?Thepropagandaorganizationsadminidtratemassivemedia. Perhapsthemostcrucialel......
  • Photoshop 2023 Beta(PS2023Beta) v24.6 AI测试版 win/ mac版
    Photoshop2023Beta内置Ai绘图功能版,这是世界上第一个创意和设计工作流程的副驾驶,为用户提供了一种神奇的新工作方式。这将两个强大的成像引擎结合在一起——Photoshop和生成式AI,使您能够通过文本提示从Photoshop内部生成内容,并使用Photoshop的全面工具对其进行编辑以创建非凡的结......
  • [CEOI2017] Mousetrap
    100黑祭。首先以终点为根。先考虑简单一点的情况:如果起点终点相邻,那么方案一定是让老鼠先走到一个叶子节点,然后断掉该节点到根路径上其它的分支。于是我们令\(f_i\)表示从\(i\)开始走到\(i\)子树里的一个叶节点再返回所需的最小代价,每次dp从儿子里的次大值转移即可。考虑......
  • beta版总结会议
    beta版总结会议一、最主要需要改进的三个问题:1.团队项目刚开始,团队在设计上浪费了了太多的时间,很大程度上没有完全投入到项目设计中去,项目以创建积极性不高。后面的需要积极落实到实际操作中去,提高行动积极性。2.团队分工不明确,团队分工开始大家一起做,有大量重复设计,没有明确......
  • burpsuite_pro_v2.0beta 下载和安装使用过程
    burpsuite_pro_v2.0beta使用过程 下载地址:https://pan.baidu.com/s/1mJdRZqSr5A0W9aWEcs3ySg密码:293x  (压缩包内已包含注册机Loader) java8181下载地址:https://repo.huaweicloud.com/java/jdk/8u181-b13/  使用截图: ......
  • Beta版会议总结,无敌三人组
    本文将对一次团队开会的过程、讨论的问题,以及选出的最需要改进的三个问题进行介绍。本次会议的主题是针对我们正在开发的安卓图片识别的记账本进行讨论。经过集思广益,我们选出了最需要改进的三个问题,并在会议结束后进行了投票。根据投票结果,我们将选出的三个问题进行了分析,结合实......
  • WinRAR v6.22 Beta 1 烈火汉化版
    WinRARv6.22Beta1烈火汉化版下载地址:https://xiaodao.lanzoui.com/b0dq1vi3i(蓝奏云)软件介绍WinRAR压缩文件管理器,知名解压缩软件,电脑装机必备软件,国内最流行最好用的压缩文件管理器、解压缩必备软件。它提供RAR和ZIP文件的完整支持,能解压ARJ、CAB、LZH、ACE、TAR、GZ、UUE......
  • Codeforces Beta Round #2--B题 (DP)
    题目:Theleastroundway 1000*1000的方阵,每个格子有一个非负整数,现在要从左上走到右下,每次只能向下或者向右走。目标是使得所有走的格子里的数的乘积里,末尾0的个数最少,要求输出最有解和走法。不用怎么想也知道基本是个dp了,可以发现其实只有2和5的因子是有用的,但是如果状态同时记......
  • [4] Secret Key Extraction using Bluetooth Wireless Signal Strength Measurements
    近日在找和BLE或者RSS相关的baseline,不好找,找到了一篇2014年的文章,感觉CCFB的文章工作量其实也还好吧。 SecretKeyExtractionusingBluetoothWireless SignalStrengthMeasurements题目:通过蓝牙测试RSS来生成密钥 1、摘要和介绍其实看了题目大概就知道他在干啥了,摘......