比赛 CSP2022普及组 评测结果 WAWWAAAAAAWWWWWWWWWW
题目名称 上升点列 最终得分 35
用户昵称 ┭┮﹏┭┮ 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2022-10-29 17:31:47
显示代码纯文本
#include <bits/stdc++.h> 
using namespace std;
int n,m,f[510];
struct made{
	int x,y;
}a[510];
bool cmp(made x,made y){
	if(x.x == y.x)return x.y < y.y;
	return x.x < y.x;
}
int main(){
	freopen("csp2022pj_point.in","r",stdin);
	freopen("csp2022pj_point.out","w",stdout);
    cin>>n>>m;
	for(int i = 1;i <= n;i++) {
		cin>>a[i].x>>a[i].y;
	}
	sort(a+1,a+1+n,cmp);
	f[n] = 1;
	for(int i = n-1;i >= 1;i--){
		for(int j = i+1;j <= n;j++){
			if(a[i].x == a[j].x &&a[i].y+1 == a[j].y){
				f[i] = max(f[i],f[j]);
			}
			else if(a[i].x+1 == a[j].x &&a[i].y == a[j].y){
				f[i] = max(f[i],f[j]);
			}
		}
		f[i] += 1;
	}
	cout<<f[1]<<endl;
	
	return 0;
}