今天比赛的第二题,10分,半天调不好
  • 板块题目总版
  • 楼主Apress
  • 当前回复13
  • 已保存回复13
  • 发布时间2022/8/6 18:02
  • 上次更新2023/10/27 16:43:48
查看原帖
今天比赛的第二题,10分,半天调不好
384419
Apress楼主2022/8/6 18:02

题目

我的代码:

#include<bits/stdc++.h>
#define mod 998244353
using namespace std;
unsigned long long n,m,k,ans;
struct il{
	unsigned long long l,r,h,num=-1;
}iil[100010];
unsigned long long search(unsigned long long k,unsigned long long h1,unsigned long long f){ 
	for(unsigned long long i=f;i>0;i--)
		if(iil[i].l<=k&&iil[i].r>=k){
			if(iil[i].num==-1)
			  iil[i].num=(search(iil[i].l,iil[i].h,i-1)%mod+search(iil[i].r,iil[i].h,i-1)%mod)%mod;
			return iil[i].num;
		}	
	return 1;
}
bool cmp(il x,il y){
    return x.h<y.h;
}
int main(){
    scanf("%lld %lld",&n,&m);
    for(unsigned long long i=1;i<=m;i++)  scanf("%lld %lld %lld",&iil[i].l,&iil[i].r,&iil[i].h);
    sort(iil+1,iil+m+1,cmp);
    for(unsigned long long i=1;i<=n;i++){
    	scanf("%lld",&k);
    	ans+=search(k,1e10,m);
	}
	printf("%lld",ans);
	return 0;
}

用的记忆化搜索,后面WA了,不是TLE

2022/8/6 18:02
加载中...