这不是进复赛了吗,就想着熟悉一下freopen
#include<bits/stdc++.h>
using namespace std;
#define x first
#define y second
int ans=0;
int n,k,f[505][105];
pair<int,int>a[1145];
int main(){
freopen("point.in","r",stdin);
freopen("point.out","w",stdout);
cin>>n>>k;
for(int i=1;i<=n;i++)cin>>a[i].x>>a[i].y;
sort(a+1,a+n+1);
for(int i=1;i<=n;i++){
for(int j=0;j<=k;j++)f[i][j]=1+j;
}
for(int i=2;i<=n;i++){
for(int j=i-1;j>=1;j--)
{
if(a[j].y>a[i].y)
continue;
int m=a[i].x-a[j].x+a[i].y-a[j].y-1;
for(int p=m;p<=k;p++)
f[i][p]=max(f[i][p],f[j][p-m]+m+1);
}
}
for(int i=1;i<=n;i++)
ans=max(ans,f[i][k]);
cout<<ans;
return 0;
}
上升点列的程序,编译过后我的电脑页面只出现了point.out而没有point.in,之前从来没用过freopen,一窍不通,求助QWQ,(bdfs搜出来一堆乱七八糟的