社区讨论

为什么显示 too long on line?

P1926小书童——刷题大军参与者 4已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@mi6o0uoz
此快照首次捕获于
2025/11/20 08:00
4 个月前
此快照最后确认于
2025/11/20 08:00
4 个月前
查看原帖
#include<stdlib.h>
#include<string.h>
typedef struct zy
{
	int time;
	int score;
} zy;
int cmp(const void *a,const void *b)
{
	int *aa=(int *)a;
	int *bb=(int *)b;
	return *aa>*bb?1:-1;
}
int max(int i,int j)
{
	return i>j?i:j;
}
int main()
{
	int n,m,k,r;
	scanf("%d%d%d%d",&n,&m,&k,&r);
	//基本数据录入 
	int ti[n+2];
	zy zuoye[m+2];
	for(int i=0;i<n;i++)
	scanf("%d",&ti[i]);
	for(int i=1;i<=m;i++)
	scanf("%d",&zuoye[i].time);
	for(int i=1;i<=m;i++)
	scanf("%d",&zuoye[i].score);
	//作业数据录入 
	qsort(ti,n,sizeof(int),cmp);
	int mapp[r+3][m+3];
	memset(mapp,0,sizeof(mapp));
	 
	for(int t=1;t<=r;t++)
		for(int j=1;j<=m;j++)
			if(t>=zuoye[j].time)				
				mapp[t][j]=max(mapp[t][j-1],mapp[t-zuoye[j].time][j-
				1]+zuoye[j].score);
			else
				mapp[t][j]=mapp[t][j-1];
	
	for(int t=1;t<=r;t++)
		if(mapp[t][m]>k)
	{
		r-=t;
		break;
	}
	//printf("%d",r);
	
	for(int i=0;i<n;i++)
	if(r>=ti[i])
		r-=ti[i];
	else
		printf("%d",i);
	
	
	return 0;
}

在自己家电脑上会显示 在这边会显示 too long on line?

回复

5 条回复,欢迎继续交流。

正在加载回复...