动规、贪心

在这里插入图片描述

 #include<stdio.h>

const int MAXN = 12000;
int n, a[MAXN + 1], dp[MAXN + 1];
int MAX=1;
int longestNum(){
	dp[1] = 1;
	for (int i = 2; i <= n; i++) {
		int flag=0;
		int max=dp[1];
	for(int j=1;j<i;j++)	//add something here for computing dp[i]
	{
		if(a[i]>a[j]&&dp[j]>=max)//要找到j<i且dp[j]最大的j值,一个等于号引发的血案 
		{
		max=dp[j];
		flag=1;
		}
		
		//printf("%d",max);
	}
	dp[i]=max+1;
	if(flag==0)
	 dp[i]=1;
}
	for(int i=1;i<=n;i++)//add something here for computing the final answer and return it.
	{//Note: the final answer equals max{dp[1],dp[2],...,dp[n]}
		if(dp[i]>MAX)
		MAX=dp[i];
	}
	return MAX;
}

int main() {
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
	printf("%d", longestNum());
	return 0;
}

在这里插入图片描述

#include<stdio.h>

const int Maxn = 100;
const int MaxConsume = 200;

int n, r[Maxn + 1], p[Maxn + 1];
//任务i 只能在时刻 ri 后开始处理。任务i 需要 pi个时间单位才能完成,pi存储的是该任务剩余的时间。 
int taskProcess() {
	int cnt = 0, t = 0, tasknum = n; 
	while (tasknum) {
		int min = MaxConsume + 1, j;//min是干什么用的?标记最小的p[i]的值 
		
		//The following loop finds the task j with the earliest possible finishing time among those who can be processed now.
		for (int i = 1; i <= n; i++) {
			if (t >= r[i] && p[i] > 0 && p[i] < min) //注意各个循环的范围 
			//if(p[i]<min)	//add something here,找出能最快完成的赋值为j ,p[j]是最快完成的 
 			{
		 min=p[i]; 
 		j=i;
 		}
 		}  
	
	
		//printf("%d ",j);
		p[j]--; t++;  //process task j in the current time unit.
		if (p[j] == 0){
			cnt+=t;				//add something here.  完成了一个cnt要+当前的时间 
			tasknum--;		//Hint: Update cnt and tasknum
		}
	}
	return cnt;
}

int main() {
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) scanf("%d", &r[i]);//注意都是从1开始的 
	for (int i = 1; i <= n; i++) scanf("%d", &p[i]);
	printf("%d", taskProcess());
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值