悬赏关注,关于数组越界RE
查看原帖
悬赏关注,关于数组越界RE
378195
icaijy楼主2024/6/1 18:27

我的代码如下:

#include <iostream>
#include <algorithm>
#define p 1000000007
#define int long long
using namespace std;
int a[100005];
int c[100005][55];
int n,k;
void yh(){
	for (int i=0;i<n;i++){
		c[i][0]=1;
		c[i][i]=1;
		for (int j=1;j<=min(i-1,k-1);j++) c[i][j]=(c[i-1][j-1]+c[i-1][j])%p;
	}
}

signed main(){
//	freopen("in.txt","r",stdin);
//	freopen("out.txt","w",stdout);
	int ans=0;
	cin>>n>>k;
	for(int i=0;i<n;i++) cin>>a[i];
	yh();
	sort(a,a+n,greater<int>());
	for (int i=0;i<=n-k;i++){
		ans+=a[i]*c[n-i-1][k-1];
		ans%=p;
	}
	cout<<ans;
	return 0;
}

思路与第一篇题解基本一样,不过为什么我的代码因为数组开小了过不去?开大了就过得去了(这个代码是过不去的,尽管范围与题解一样)

2024/6/1 18:27
加载中...