QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#454149#1264. Lower AlgorithmicsKevin5307WA 1568ms52828kbC++231.7kb2024-06-24 16:53:132024-06-24 16:53:14

Judging History

你现在查看的是最新测评结果

  • [2024-06-24 16:53:14]
  • 评测
  • 测评结果:WA
  • 用时:1568ms
  • 内存:52828kb
  • [2024-06-24 16:53:13]
  • 提交

answer

//Author: Kevin
#include<bits/stdc++.h>
//#pragma GCC optimize("O2")
using namespace std;
#define ll long long
#define ull unsigned ll
#define pb emplace_back
#define mp make_pair
#define ALL(x) (x).begin(),(x).end()
#define rALL(x) (x).rbegin(),(x).rend()
#define srt(x) sort(ALL(x))
#define rsrt(x) sort(rALL(x))
#define inf 0x3f3f3f3f
#define pii pair<int,int>
#define lb(v,x) (int)(lower_bound(ALL(v),x)-v.begin())
#define ub(v,x) (int)(upper_bound(ALL(v),x)-v.begin())
#define uni(v) v.resize(unique(ALL(v))-v.begin())
#define longer __int128_t
void die(string S){puts(S.c_str());exit(0);}
const ll mod=998244353;
ll ksm(ll a,ll b)
{
	ll ans=1;
	while(b)
	{
		if(b&1) ans=ans*a%mod;
		b>>=1;
		a=a*a%mod;
	}
	return ans;
}
void ntt(ll *a,int len,bool t)
{
	vector<int> rev(len);
	for(int i=0;i<len;i++)
		rev[i]=(rev[i>>1]>>1)|((i&1)*(len>>1));
	for(int i=0;i<len;i++)
		if(rev[i]<i)
			swap(a[i],a[rev[i]]);
	for(int i=1;i<len;i<<=1)
	{
		ll gn=ksm(!t?3:ksm(3,mod-2),(mod-1)/i/2);
		for(int j=0;j<len;j+=(i<<1))
		{
			ll g0=1;
			for(int k=0;k<i;k++,g0=g0*gn%mod)
			{
				ll x=a[j+k],y=g0*a[i+j+k]%mod;
				a[j+k]=(x+y)%mod;
				a[i+j+k]=(x+mod-y)%mod;
			}
		}
	}
	if(t)
		for(int i=0;i<len;i++)
			a[i]=a[i]*ksm(len,mod-2)%mod;
}
ll a[1<<22];
int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int n,l,r;
	cin>>n>>l>>r;
	for(int i=1;i<=n;i++)
	{
		int x;
		cin>>x;
		a[x]=1;
	}
	ntt(a,1<<22,0);
	for(int i=0;i<1<<22;i++)
		a[i]=(a[i]==1?r-l+1:(ksm(a[i],r+1)-ksm(a[i],l)+mod)*ksm(a[i]+mod-1,mod-2))%mod;
	ntt(a,1<<22,1);
	int res=0;
	for(int i=0;i<1<<22;i++)
		if(a[i])
			res++;
	cout<<res<<endl;
	return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 1474ms
memory: 52824kb

input:

2 1 2
1 2

output:

4

result:

ok answer is '4'

Test #2:

score: 0
Accepted
time: 1478ms
memory: 52728kb

input:

3 1 3
1 3 10

output:

18

result:

ok answer is '18'

Test #3:

score: 0
Accepted
time: 1483ms
memory: 52756kb

input:

6 3 5
1 2 3 4 5 6

output:

28

result:

ok answer is '28'

Test #4:

score: 0
Accepted
time: 1472ms
memory: 52828kb

input:

3 1 3
1 3 4

output:

12

result:

ok answer is '12'

Test #5:

score: -100
Wrong Answer
time: 1568ms
memory: 52684kb

input:

500 1 2000
6 8 9 10 11 14 16 19 23 24 25 30 31 33 34 38 44 46 48 49 52 53 55 56 58 60 64 65 68 69 70 71 72 74 75 77 79 81 83 84 88 89 93 95 98 103 105 108 109 110 111 118 119 120 121 123 125 129 130 132 134 136 137 138 140 141 144 149 154 155 159 160 161 163 165 166 169 170 172 173 174 175 176 177 1...

output:

1999989

result:

wrong answer expected '1999990', found '1999989'