首页 > 其他分享 >2023牛客OI赛前集训营-提高组(第三场) - 题解汇总

2023牛客OI赛前集训营-提高组(第三场) - 题解汇总

时间:2024-10-09 16:22:13浏览次数:8  
标签:sort int 题解 long ++ b1 b2 集训营 第三场

空位与数(game)

贪心即可,因为正正得正,负负也得正,所以将两个数组分别按照正负性分开,然后让正数里面大的配上大的,负数里面绝对值大的配上绝对值大的,这样可以让正积总和尽量大。剩下不足的(必须要一正一负相乘的)让绝对值大的配绝对值小的,这样可以让负积总和尽量小。

#include<cstdio>
#include<algorithm>
using namespace std;

const int N=1e5+5;
int n,m,a[N],b[N];
int a1n,a2n,b1n,b2n;
long long a1[N],a2[N],b1[N],b2[N];
long long ans=0;

bool cmp(int x,int y){return x>y;}
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
		if(a[i]>=0) a1[++a1n]=a[i];
		else a2[++a2n]=a[i];
	}
	sort(a1+1,a1+a1n+1,cmp);
	sort(a2+1,a2+a2n+1);
	for(int i=1;i<=m;i++)
	{
		scanf("%d",&b[i]);
		if(b[i]>=0) b1[++b1n]=b[i];
		else b2[++b2n]=b[i];
	}
	sort(b1+1,b1+b1n+1,cmp);
	sort(b2+1,b2+b2n+1);
	for(int i=1;i<=a1n;i++)
	{
		if(i<=b1n) ans+=a1[i]*b1[i];
		else ans+=a1[i]*b2[b2n-(i-b1n)+1];
	}
	for(int i=1;i<=a2n;i++)
	{
		if(i<=b2n) ans+=a2[i]*b2[i];
		else ans+=a2[i]*b1[b1n-(i-b2n)+1];
	}
	printf("%lld\n",ans);
	return 0; 
}

机场滞留!(airport)

标签:sort,int,题解,long,++,b1,b2,集训营,第三场
From: https://www.cnblogs.com/jerrycyx/p/18454533

相关文章

  • webapi发布---问题解决
    一.127.0.0.1是回路地址,来检验本机TCP/IP协议栈,实际使用过程中服务端不在本机,是外部地址,要用IP地址测试。外部用户采用IP+端口号访问,如下图浏览器访问不了,400错误。解决方案:因为IIS7采用了更安全的web.config管理机制,默认情况下会锁住配置项不允许更改。以管理员身份运......
  • 题解:SP6517 JOCHEF - Farmer Sepp
    一眼简单悬线法,而且有多倍经验,感觉这题被遗忘了,那我就拿下这个水紫吧!我们用a数组表示能向上延伸能到达的最大距离,依次遍历每一行,如果该位置为F,他可以从上一行转移过来,将a数组增加一,如果该位置为C,意味着这个位置不能成矩形,将a数组变为0。接下来进行悬线法的标准操作,设l......
  • 使用宝塔快速搭建配置Openai api接口代理+502 Bad Gateway网关错误问题解决
    本教程提供了一种简便快捷的方法,无需复杂步骤,极易操作,实现零代码、零部署的快速接入。实现准备1.服务器,这里使用阿里香港轻量服务器)2.OpenAI官方的模型apikey3.使用第三方系统或插件进行测试关于第三方网站系统或插件:《SparkAI系统介绍文档-渐进式AIGC系统》开......
  • P10673 【MX-S1-T2】催化剂 题解
    要解决这个问题,我们需要高效地处理动态更新的糖果种类数量,并在每次询问时快速计算最小的愤怒值总和。以下是详细的解决方案和实现步骤:问题分析糖果的种类和数量:每个糖果有一个类型,代表不同的种类。我们需要跟踪每种类型的糖果数量,以便在分配时计算重复的糖果数量,从而确定愤......
  • AT_abc374_c [ABC374C] Separated Lunch 题解
    题目传送门右侧可以传送到原题位置。题目大意题目描述由于KEYENCE总部的员工越来越多,他们决定将总部各部门分成两组,错开午休时间。KEYENCE总部有NNN个部门,第......
  • 弹珠 题解
    题意求\(n\)个一样的球放到\(k\)个盘子里的方案数(每个盘子至少一个)。题解考虑记\(f(i,j)\)为结果。我们可以一次性只加一个球(新放到一个盘子里),也就是可以从\(f(i-1,j-1)\)转移过来。也可以用已有的盘子每个盘子放一个球,就是从\(f(i-j,j)\)转移过来。为......
  • [AGC064D] Red and Blue Chips 题解
    Description你有\(N\)个字符串,初始情况下每个字符串只有一个字符,是\(\texttt{R}\)或\(\texttt{B}\),保证第\(N\)个字符串是\(\texttt{B}\)。你需要对每个\(i=1,2,\cdots,n-1\)执行以下操作:选择一个整数\(j\)使得\(i<j\len\),且第\(j\)个字符串的最后一个字符......
  • AT_jsc2021_h Shipping 题解
    不算难的一道题。思路考虑原图是一个基环树。首先在树上部分的路径是固定的,我们没有办法抉择。唯一需要考虑的是在环上的那一部分。在环上我们每一个路径有两种选择。如何考虑到所有情况。我们每一次断掉环上的一条边。这样每一个路径就变成固定的了。我们只需要快速计算......
  • Hetao P1031 萌萌题 题解 [ 蓝 ] [ 线性 dp ]
    萌萌题:一道结合了观察性质的线性dp。观察我们先考虑极端情况:所有数相同,所有数降序排列两种情况。对于所有数相同的情况,我们发现,最终可以合并出来的区间,最多只有\(n\logn\)个。怎么证明?考虑固定右端点,那么我们想要合并出一个点,就得选\(2^k\)个数出来,这就有\(\logn\)......
  • [AGC064C] Erase and Divide Game 题解
    DescriptionTakahashi和Aoki玩游戏。先在黑板上写若干个数,由\(N\)个互不相交的区间\([l_i,r_i]\)组成。两人轮流操作,每次操作先删去所有的奇数/偶数,再把剩下的数除以\(2\)(向下取整),无法操作的人输。Takahashi先手,假设两人都采用最优策略,问谁能获胜。\(1\leqN\leq10^......