比赛 CSP2022普及组 评测结果 WWTWWWWWWWWTTTTTTTTT
题目名称 上升点列 最终得分 0
用户昵称 在大街上倒立游泳 运行时间 10.005 s
代码语言 C++ 内存使用 3.16 MiB
提交时间 2022-10-29 17:30:43
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,k,mx=0,my=0;
long long ans;
struct point{
	int x,y;
}tu[505];
bool zai(point dian)
{
	for(int i=1;i<=n;i++)
	{
		if(dian.x==tu[i].x&&dian.y==tu[i].y) return true;
	}
	return false;
}
long long dfs(point dian,int k)
{
	if(k==0) return 1;
	long long da=0;
	point np;
	np.x=dian.x+1;
	np.y=dian.y;
	if(zai(np)) da=max(da,dfs(np,k)+1);
	else if(k>0) da=max(da,dfs(np,k-1)+1);
	np.x=dian.x;
	np.y=dian.y+1;
	if(zai(np)) da=max(da,dfs(np,k)+1);
	else if(k>0) da=max(da,dfs(np,k-1)+1);
	return da;
}
int main()
{
	freopen("csp2022pj_point.in","r",stdin);
	freopen("csp2022pj_point.out","w",stdout);
	cin>>n>>k;
	for(int i=1;i<=n;i++) 
	{
		cin>>tu[i].x>>tu[i].y;
	}
	for(int i=1;i<=n;i++)
	{
		ans=max(dfs(tu[i],k)+1,ans);
	}
	cout<<ans;
    return 0;
}