求测试点1的数据 ans赋初值1是对的,但是赋初值0是错的
  • 板块P1233 木棍加工
  • 楼主syyyyhy
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/10/31 19:22
  • 上次更新2023/10/27 04:42:05
查看原帖
求测试点1的数据 ans赋初值1是对的,但是赋初值0是错的
675572
syyyyhy楼主2022/10/31 19:22
#include <iostream>
#include <algorithm>
using namespace std;

struct node{
	int l;
	int w;
};

int dp[5020];
node wood[5020];
int n, ans = 1; //ans赋初值1是对的,但是赋初值0是错的 

bool cmp(node a, node b){
	if(a.l == b.l) return a.w > b.w;
	return a.l > b.l;
}
int main(){
	cin>>n;
	for(int i = 1; i <= n; i++) {
		cin>>wood[i].l>>wood[i].w;
	}
	sort(wood + 1, wood + 1 + n, cmp);
	for(int i = 1; i <= n; i++) dp[i] = 1;
	for(int i = 2; i <= n; i++) {
		for(int j = 1; j < i; j++){
			if(wood[j].w < wood[i].w){
				dp[i] = max(dp[i], dp[j] + 1);
				ans = max(ans, dp[i]);
			}
		}
	}
	cout<<ans;
	return 0;
} 
2022/10/31 19:22
加载中...