萌新求助CF A
  • 板块学术版
  • 楼主masonpop
  • 当前回复15
  • 已保存回复15
  • 发布时间2022/12/31 09:14
  • 上次更新2023/10/24 06:04:04
查看原帖
萌新求助CF A
614725
masonpop楼主2022/12/31 09:14

rt.萌新第一次打CF,昨晚的CF连A也过不了,总是 WA on pretest 2,但是本地测样例和自己造的数据都是对的。总体思路就是枚举 bb 中有几个数对 aa 产生了影响且没有被其它的覆盖(设为 ii 个), 那么用 aa 的前 nin-i 大和 bb 的前 ii 大之和更新答案,但是WA了。求hack/求调。

话说怎么样有效提升做CF题的能力啊。感觉思维难度好大而且和国内的OI题目不太一样。

  • 这个是我赛时的代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int t,n,m;
const int maxn=110;
int a[maxn],b[maxn];
int main()
{
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d%d",&n,&m);
		for(int i=1;i<=n;i++)scanf("%d",&a[i]);
		for(int i=1;i<=m;i++)scanf("%d",&b[i]);
		sort(b+1,b+m+1);//尽量覆盖大的
		sort(a+1,a+n+1);
		reverse(b+1,b+m+1);//从大到小
		reverse(a+1,a+n+1);
		ll ans=0;
		for(int i=1;i<=m;i++)//枚举作用几个 
		{
			if(n<i)continue;
			ll now=0;
			for(int j=1;j<=i;j++)now+=b[j];
			for(int j=1;j<=n-i;j++)now+=a[j];
			ans=max(ans,now);
		} 
		printf("%lld\n",ans);
	}
	return 0;
}
2022/12/31 09:14
加载中...