codeforces 863B Kayaking

本文介绍了一个解决 CodeForces 平台上的 863/B 问题的算法方案。该算法通过暴力枚举两个数,并对剩余的数进行排序后两两配对求差值之和来找到最优解。使用 C++ 实现并包含完整的源代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://codeforces.com/problemset/problem/863/B



暴力枚举2个数,然后将剩下的数排序,两两组合,将所有的组合的差相加取最小


#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;
int main(){
	int a;
	while(cin>>a)
	{
	int i,j;
	int b[1111];
	   for(i=0;i<2*a;i++)
	   cin>>b[i];
	   int c[1111];
	   for(i=0;i<a*2;i++)
	   c[i]=b[i];
	   int a1=0;
	   int sum=0;
	   int ans=99999999;
	   int s,ss;
	   for(i=0;i<=a*2-1;i++)
	   {
	   	for(j=2*a-1;j>i;j--)
	   	{
	   		if(i==j)continue;
	   		for(int ts=0;ts<=2*a-1;ts++)
	   		b[ts]=c[ts];
	   		s=b[i];
	   		ss=b[j];
	   		b[i]=1111111;
	   		b[j]=1111111;
	   		sort(b,b+a*2);
	   		int ans1=0;
	   		for(int k=1;k<=2*a-1-2;k+=2)
	   		ans1+=b[k]-b[k-1];
	   		ans=min(ans1,ans);
	   		//cout<<ans<<endl;
		}
	   }
	   cout<<ans<<endl;
	}
	return 0;
} 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值