题目在这
一直TLE 但我用的是正解的思路 算的复杂度应该也没有TLE 希望大佬帮帮蒟蒻
#include <iostream>
#include <algorithm>
#include <string.h>
#include <cmath>
#define int long long
const int mod=998244353;
int t,book[100005][5],d[100005][5];
using namespace std;
int pow(int x,int y,int mod){
if(y==0) return 1ll;
if(y==1) return x;
int tmp=pow(x,y/2,mod);
if(y & 1) return tmp*tmp*x%mod;
else return tmp*tmp%mod;
}
signed main(){
ios::sync_with_stdio(false);
cin>>t;
while(t--){
int n,m;
cin>>n>>m;
for(int i=0;i<=n;++i){
book[i][2]=book[i][3]=d[i][2]=d[i][3]=0;
}
while(m--){
int x,y,z;
cin>>x>>y>>z;
d[x][z]++;
d[y+1][z]--;
}
int minn1=999999999,minn2=999999999;
for(int i=1;i<=n;++i){
book[i][2]=d[i-1][2]+book[i-1][2];
book[i][3]=d[i-1][3]+book[i-1][3];
minn1=min(minn1,book[i][2]);
minn2=min(minn2,book[i][3]);
}
cout<<pow(2,minn1,mod)*pow(3,minn2,mod)<<endl;
}
return 0;
}