QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#328060#7881. Computational Complexityxztmax67WA 107ms17268kbC++141.3kb2024-02-15 16:43:012024-02-15 16:43:06

Judging History

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

  • [2024-02-15 16:43:06]
  • 评测
  • 测评结果:WA
  • 用时:107ms
  • 内存:17268kb
  • [2024-02-15 16:43:01]
  • 提交

answer

#include<bits/stdc++.h>
#define int long long 
using namespace std;
const int N=1e6+100,inf=1e15;
int t,mod;
int f[N],g[N],ff[N],gg[N];
vector<int>vt;
int q(int x)
{
	int it=lower_bound(vt.begin(),vt.end(),x)-vt.begin();
	if(vt[it]!=x)return N-1;else return it;
}
signed main()
{
	cin>>f[0]>>g[0]>>t>>mod;
	vt.push_back(0);
	for(int i=1;i<=13;i++)
		f[i]=max(i,g[i/2]+g[i/3]+g[i/5]+g[i/7]),
		g[i]=max(i,f[i/2]+f[i/3]+f[i/4]+f[i/5]),
		ff[i]=f[i]-f[i-1],gg[i]=g[i]-g[i-1],vt.push_back(i);
	for(int i=0;i<=13;i++)f[i]=f[i]%mod,g[i]=g[i]%mod,ff[i]=ff[i]%mod,gg[i]=gg[i]%mod;
	for(int i=1;i<=13;i++)for(int w1=i;w1<=inf;w1*=2)for(int w2=w1;w2<=inf;w2*=3)
		for(int w3=w2;w3<=inf;w3*=5)for(int w4=w3;w4<=inf;w4*=7)
			vt.push_back(w4);
	sort(vt.begin(),vt.end());vt.erase(unique(vt.begin(),vt.end()),vt.end());
	for(int i=14;i<vt.size();i++)
	{
		int t2=vt[i]%2?N-1:q(vt[i]/2),t3=vt[i]%3?N-1:q(vt[i]/3),
			   t4=vt[i]%4?N-1:q(vt[i]/4),t5=vt[i]%5?N-1:q(vt[i]/5),
			   t7=vt[i]%7?N-1:q(vt[i]/7);
		ff[i]=(gg[t2]+gg[t3]+gg[t5]+gg[t7])%mod;
		gg[i]=(ff[t2]+ff[t3]+ff[t4]+ff[t5])%mod;
		f[i]=(f[i-1]+ff[i])%mod,g[i]=(g[i-1]+gg[i])%mod;
	}
	while(t--)
	{
		int x;cin>>x;int it=upper_bound(vt.begin(),vt.end(),x)-vt.begin()-1;
		cout<<f[it]<<' '<<g[it]<<endl;
	}
	return 0;
}

详细

Test #1:

score: 100
Accepted
time: 44ms
memory: 17268kb

input:

1958 920 10 100000000000
0
1
2
3
10
100
200
1000
19580920
20232023

output:

1958 920
3680 7832
10592 9554
17504 11276
50294 64826
784112 893714
1894550 1905470
12057866 12979424
71481494756 48626708512
28127864908 7251681354

result:

ok 20 numbers

Test #2:

score: 0
Accepted
time: 40ms
memory: 15668kb

input:

0 0 10 100000000000
0
1
2
3
4
10
20
30
40
100

output:

0 0
1 1
2 2
3 3
4 4
11 12
25 26
41 41
55 58
162 172

result:

ok 20 numbers

Test #3:

score: 0
Accepted
time: 38ms
memory: 13568kb

input:

2023 2023 10 2023
0
1
2
3
4
5
6
7
8
9

output:

0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0

result:

ok 20 numbers

Test #4:

score: 0
Accepted
time: 35ms
memory: 17256kb

input:

36092 30559 2149 729566623185
909730017626
961811467628
978809456383
494310140318
760462959632
726343527430
220697276132
366336227300
456813204361
569783542145
13854148170
51526515764
564416233246
876430686824
862897449267
956440673661
512777546436
728860125927
799238602356
978766770799
47962348351
...

output:

192287632545 510282654057
513694515018 658644741565
90751152870 6088748556
138070013247 301112114677
224113421002 105290451187
630454127249 196841848259
546918129568 526274849982
226761501362 157889210040
135623074930 620463814922
78467045157 602244472172
51639549042 411354142414
329188915935 306494...

result:

ok 4298 numbers

Test #5:

score: 0
Accepted
time: 42ms
memory: 17032kb

input:

46012 72474 6895 931299293479
635558333906
151352929427
186830308154
201652909474
130684521091
862625793178
335372663856
565394770762
609752364488
636658378167
568072145317
23602174799
74849827839
567735061723
964475612065
721588322843
526921882143
141483206690
794896616456
923141155683
443983986019...

output:

737640936783 269480550026
785950579990 586907405473
274405996613 356240054012
164145774405 803378519477
613956922400 426121843045
509646717167 788278629379
95131481441 672600899832
720839818877 52329269906
131977527669 257593035330
737640936783 269480550026
202443098753 171133839273
188615102144 605...

result:

ok 13790 numbers

Test #6:

score: -100
Wrong Answer
time: 107ms
memory: 17056kb

input:

4625 65696 87448 104757899185
324541097749
340894391228
353710640194
913290645927
500906082550
994613091630
486893604015
755863379632
795242109754
670982629049
89739557323
995677833835
622128974870
291590021762
74643709454
491030939322
504220665415
590951839890
749414110824
908656060298
831415689095...

output:

24017028596 61020984279
90036018081 8518714361
4807132724 94915889679
60642395760 99169995073
45912197521 30663794937
26807208137 73005099296
31855861883 38442189712
61377861921 69296474844
15633158436 24561226404
83188091024 101278210525
92283972576 51782451279
22904017080 27746280119
46615471334 7...

result:

wrong answer 54th numbers differ - expected: '91736000491', found: '-13021898694'