关于 define
  • 板块学术版
  • 楼主_Anchor
  • 当前回复8
  • 已保存回复8
  • 发布时间2021/5/6 20:44
  • 上次更新2023/11/4 23:36:32
查看原帖
关于 define
130387
_Anchor楼主2021/5/6 20:44

某题我这样写了这样一个 definedefine

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5,t=500,MOD=998244353;
#define ll long long 
ll Pow[N],POW[N];
//inline ll LogPow(int x,ll mod){return POW[(int)floor(x/t)]*Pow[x-(int)floor(x/t)*t]%mod;}
#define LogPow(x,mod) (POW[(int)floor(x/t)]*Pow[x-(int)floor(x/t)*t]%mod)
#define Inc(x,y,mod) (x+y>=mod?x+y-mod:x+y)
signed main(){
	Pow[0]=1;POW[0]=1;
	for(int j=1;j<=t;j++) Pow[j]=Inc(Pow[j-1],Pow[j-1],MOD);POW[1]=Pow[t];
	for(int j=2;j<=t;j++) POW[j]=POW[j-1]*POW[1]%MOD;
	int l=1,r=2;
	cout<<LogPow(r-l+1,MOD)<<" "<<LogPow(2,MOD);
	return 0;
}

这样输出的第一个结果明显错误,而把 definedefine 换成函数就没错了。

之前我树套树模板把线段树套平衡树里面的线段树 definedefine 了一下变量,也是直接导致 T 掉了。

为什么会出现这种情况啊/fad

2021/5/6 20:44
加载中...