0
点赞
收藏
分享

微信扫一扫

复旦大学2020年机试上机题目学习

独兜曲 2022-03-11 阅读 53

Problem 2:打地鼠

问题描述:

问题分析:

本题的代码如下:

#include <iostream>
#include <algorithm>

using namespace std;

const int N=1e5+10;

int a[N],dp[N];

int main()
{
	int n,d;
	int res=-1;
	cin>>n>>d;
	for(int i=1;i<=n;i++)	cin>>a[i];
	sort(a+1,a+n+1);
	dp[1]=1;
	for(int i=2;i<=n;i++)
	{
		for(int j=i;j>=1;j--)
		{
			res=-1;
			if(a[j]+d<a[i])	
			{
				res=j;
				break;
			}
		} 
		dp[i]=max(dp[i-1],dp[res]+1);
	} 
	cout<<dp[n];
} 

Problem 3:排队打饭

问题描述:

 

 问题分析:

 代码如下:

#include <iostream>

using namespace std;

const int N=1e5+10;

int arrive[N],cost[N],wait[N];
int nowtime=0;

int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)	cin>>arrive[i]>>cost[i]>>wait[i];
	cout<<arrive[1]<<" ";
	nowtime = arrive[1]+cost[1];
	for(int i=2;i<=n;i++)
	{
		if(arrive[i]+wait[i]<nowtime)	cout<<-1<<" ";
		else{
			if(nowtime<arrive[i])	nowtime = arrive[i]; 
			cout<<nowtime<<" ";
			nowtime += cost[i];
		}
	}
	return 0;
}

复旦大学2020其他的题目仍在更新中……

举报

相关推荐

0 条评论