把O2关了就AC了?
查看原帖
把O2关了就AC了?
1180231
H_dream楼主2024/8/18 15:13

关闭O2 开启O2

代码如下:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=110;
int n,m,ans=LLONG_MAX,c[N];
struct node{
	int l,r,p,v;
}a[N];
bool check(){
	for(int i=1;i<=N;++i)
		if(c[i]>0) return 0;
	return 1;
}
void dfs(int cnt,int sum){
	if(cnt>m){
		if(check())
			ans=min(ans,sum);
		return ;
	}
	for(int i=a[cnt].l;i<=a[cnt].r;++i)
		c[i]-=a[cnt].p;
	dfs(cnt+1,sum+a[cnt].v);
	for(int i=a[cnt].l;i<=a[cnt].r;++i)
		c[i]+=a[cnt].p;
	dfs(cnt+1,sum);
	return ;
}

signed main(){
	cin>>n>>m;
	for(int i=1;i<=n;++i){
		int s,t,b;
		cin>>s>>t>>b;
		for(int j=s;j<=t;++j) c[j]+=b;
	}
	for(int i=1;i<=m;++i)
		cin>>a[i].l>>a[i].r>>a[i].p>>a[i].v;
	dfs(1,0);
	cout<<ans;
	return 0;
}
2024/8/18 15:13
加载中...