ATC Be365 T3 用数学计算法 #21 WA
  • 板块学术版
  • 楼主LTTXiaochuan
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/8/3 22:26
  • 上次更新2024/8/4 09:03:01
查看原帖
ATC Be365 T3 用数学计算法 #21 WA
1391256
LTTXiaochuan楼主2024/8/3 22:26

AtCoder Beginner Contest 365 C题 用纯数学方法 #21WA,其余AC,希望能有大佬来指点迷津,道出为何此方法不行。(原题链接在底下)

我看别人都是使用二分法,但我就不想用二分希望另辟蹊径,以此寻求代码之简洁美丽。

我的基本思路很简单,就是排序,然后根据 ΣAi + (n - i) x ans <= M 的变形公式求得ans最大值即可。

鄙人代码如下:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+10;
ll n,m,tot,sum,ans=-1e9;
ll a[N];
int main()
{
	cin>>n>>m;
	for(int i=1; i<=n; i++)
	{
		cin>>a[i];
		tot+=a[i];
	}
	if(tot<=m)
	{
		cout<<"infinite";
		return 0;
	}
	if(n==1)
	{
		cout<<m;
		return 0;
	}
	sort(a+1,a+1+n);
	for(int i=1; i<n; i++)
	{
		sum+=a[i];
		ans=max(ans,(m-sum)/(n-i));
	}
	cout<<ans;
	return 0;
}

原题链接:C - Transportation Expenses

如有哪位神犇助我解惑,鄙人将以至高无上之礼(关注)之款待作为回报!

2024/8/3 22:26
加载中...