求救
查看原帖
求救
756173
Tristian楼主2022/7/30 13:29
#include<bits/stdc++.h>
using namespace std;
int l[10005],h[10005],g[10005],x[10005],y[10005],n,m,k,p,ans=1e9,inf=1e9,rt;
int f[10005][1005];
int main()
{
	system("color 02");
	cin>>n>>m>>k;
	for(int i=1;i<=n;i++) cin>>x[i]>>y[i];
	for(int i=1;i<=k;i++){
	  cin>>p;
	  cin>>l[p]>>h[p];
	}
	
    
   for(int i=1;i<=n;i++){
	  bool t=false;
	  for(int j=1;j<=m;j++){
	  	f[i][j]=inf;
	  	if(j>x[i-1]) f[i][j]=min(f[i][j],f[i-1][j-x[i-1]]+1);
	  	if(j>x[i-1]) f[i][j]=min(f[i][j],f[i][j-x[i-1]]+1);
	  }
	  for(int j=m-x[i-1];j<=m;j++){
	  	f[i][m]=min(f[i][m],f[i-1][j]+1);
	  	f[i][m]=min(f[i][m],f[i][j]+1);
	  }
	  for(int j=l[i]+1;j<=h[i]-1;j++)
	    if(j+y[i-1]<=m) f[i][j]=min(f[i][j],f[i-1][j+y[i-1]]);
	  for(int j=1;j<=l[i];j++) f[i][j]=inf;
	  for(int j=h[i];j<=m;j++) f[i][j]=inf;
	  for(int j=1;j<=m;j++) if(f[i][j]<inf){t=true;break;}
	  if(!t){
	  	cout<<0<<endl<<rt;
	  	return 0;
	  }
	  if(g[i]) rt++;
	}
	for(int i=1;i<=m;i++) ans=min(f[n][i],ans);
	cout<<1<<endl<<ans;
	return 0;
}

麻烦各位大佬看一下15行应该加什么(空的那两行)

2022/7/30 13:29
加载中...