Logo Wy Online Judge

WyOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#374#36. 「NOIP2009」Hankson 的趣味题wuenzi1001616ms3480kbC++232.6kb2025-04-22 17:49:092025-04-22 17:49:10

answer

#include<bits/stdc++.h>
#pragma optimize(1)
#pragma optimize(2)
#pragma optimize(3)
#pragma target("avx")
#pragma optimize("Ofast")
#pragma optimize("inline")
#pragma optimize("-fgcse")
#pragma optimize("-fgcse-lm")
#pragma optimize("-fipa-sra")
#pragma optimize("-ftree-pre")
#pragma optimize("-ftree-vrp")
#pragma optimize("-fpeephole2")
#pragma optimize("-ffast-math")
#pragma optimize("-fsched-spec")
#pragma optimize("unroll-loops")
#pragma optimize("-falign-jumps")
#pragma optimize("-falign-loops")
#pragma optimize("-falign-labels")
#pragma optimize("-fdevirtualize")
#pragma optimize("-fcaller-saves")
#pragma optimize("-fcrossjumping")
#pragma optimize("-fthread-jumps")
#pragma optimize("-funroll-loops")
#pragma optimize("-fwhole-program")
#pragma optimize("-freorder-blocks")
#pragma optimize("-fschedule-insns")
#pragma optimize("inline-functions")
#pragma optimize("-ftree-tail-merge")
#pragma optimize("-fschedule-insns2")
#pragma optimize("-fstrict-aliasing")
#pragma optimize("-fstrict-overflow")
#pragma optimize("-falign-functions")
#pragma optimize("-fcse-skip-blocks")
#pragma optimize("-fcse-follow-jumps")
#pragma optimize("-fsched-interblock")
#pragma optimize("-fpartial-inlining")
#pragma optimize("no-stack-protector")
#pragma optimize("-freorder-functions")
#pragma optimize("-findirect-inlining")
#pragma optimize("-fhoist-adjacent-loads")
#pragma optimize("-frerun-cse-after-loop")
#pragma optimize("inline-small-functions")
#pragma optimize("-finline-small-functions")
#pragma optimize("-ftree-switch-conversion")
#pragma optimize("-foptimize-sibling-calls")
#pragma optimize("-fexpensive-optimizations")
#pragma optimize("-funsafe-loop-optimizations")
#pragma optimize("inline-functions-called-once")
#pragma optimize("-fdelete-null-pointer-checks")
#define int long long
#define endl "\n"
using namespace std;
inline void read(int &z){
	int x=0,w=1;
	char ch=0;
	while(ch<'0'||ch>'9'){
		if(ch=='-')w=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9'){
		x=x*10+ch-'0';
		ch=getchar();
	}
	z=x*w;
}
void solve(){
	int a0,b0,a1,b1;
	cin>>a0>>a1>>b0>>b1;
	int ans=0;
	for(int i=1;i*i<=b1;i++){
		if(b1%i==0){
			if(i%a1==0&&__gcd(i/a1,a0/a1)==1&&__gcd(b1/b0,b1/i)==1)ans++;
			if((b1/i)%a1==0&&__gcd((b1/i)/a1,a0/a1)==1&&__gcd(b1/b0,b1/(b1/i))==1)ans++;
		}
	}
	int l=sqrt(b1);
	if(l*l==b1){
		if(l%a1==0&&__gcd(l/a1,a0/a1)==1&&__gcd(b1/b0,b1/l)==1)ans--;
	}
	cout<<ans<<endl;
}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int Q=1;
	cin>>Q;
	while(Q--)solve();
	return 0;
}


详细

小提示:点击横条可展开更详细的信息

Test #1:

score: 10
Accepted
time: 3ms
memory: 3396kb

input:

1
1 1 1 1

output:

1

result:

ok 1 number(s): "1"

Test #2:

score: 10
Accepted
time: 2ms
memory: 3384kb

input:

2
10 10 10 10
5 1 2 10

output:

1
0

result:

ok 2 number(s): "1 0"

Test #3:

score: 10
Accepted
time: 1ms
memory: 3480kb

input:

10
90 2 9 18
73 1 98 196
61 1 75 300
21 1 17 1003
80 1 42 3738
72 18 47 2538
20 4 18 252
43 1 63 504...

output:

1
3
6
2
4
2
3
6
2
2

result:

ok 10 numbers

Test #4:

score: 10
Accepted
time: 0ms
memory: 3392kb

input:

50
93 1 20 20
41 1 96 288
95 1 37 1776
78 1 80 400
76 1 68 6732
44 1 41 287
29 1 32 160
44 1 90 90
7...

output:

6
6
2
1
2
2
6
6
4
1
3
2
8
3
6
1
2
1
2
4
4
2
2
6
10
6
5
2
2
4
4
2
2
4
2
2
2
6
8
2
12
2
4
1
2
2
4
2
4
4

result:

ok 50 numbers

Test #5:

score: 10
Accepted
time: 4ms
memory: 3344kb

input:

100
15 1 7 322
81 1 23 1127
91 1 8 664
4 1 38 2622
90 1 17 1343
90 6 65 780
1 1 4 196
91 7 59 4543
9...

output:

2
2
4
2
2
2
3
2
12
1
2
2
2
2
2
6
1
2
2
4
2
2
2
2
5
3
7
4
2
7
2
2
2
3
2
2
4
1
2
1
2
2
4
2
2
4
6
2
4
2...

result:

ok 100 numbers

Test #6:

score: 10
Accepted
time: 24ms
memory: 3440kb

input:

100
30793 1 7409 25501778
26905 1 9945 181058670
27965 5 22144 288868480
22065 5 15751 478121605
201...

output:

4
12
16
4
18
8
4
4
16
2
12
4
8
4
4
4
4
2
12
8
8
8
2
2
2
2
2
2
8
4
4
4
4
2
8
8
4
2
16
4
2
24
8
8
8
2
...

result:

ok 100 numbers

Test #7:

score: 10
Accepted
time: 61ms
memory: 3464kb

input:

300
15530 2 13320 99806760
18141 1 30071 489916732
1968 3 30808 169782888
23504 8 7616 3008320
20559...

output:

18
2
2
4
6
2
4
4
2
2
4
20
4
8
16
4
8
8
10
2
4
8
2
8
6
2
2
4
4
4
12
4
8
12
16
8
2
8
4
16
10
2
4
2
4
2...

result:

ok 300 numbers

Test #8:

score: 10
Accepted
time: 97ms
memory: 3344kb

input:

600
16199 1 17707 312245238
27421 1 3385 6468735
20012 1 19596 42934836
1856 1 10570 177290610
4750 ...

output:

2
4
8
8
2
8
3
12
2
12
8
2
4
8
6
2
4
8
8
8
2
6
4
6
24
16
8
2
4
8
2
6
2
8
2
16
4
4
12
4
2
2
4
4
4
20
2...

result:

ok 600 numbers

Test #9:

score: 10
Accepted
time: 445ms
memory: 3344kb

input:

2000
28805 1 4 100029072
7275 3 5 500082120
13520 20 6 300083100
13824 12 10 500006220
27389 1 6 300...

output:

1
1
2
2
2
3
1
3
1
1
4
2
2
4
2
2
2
1
2
4
2
1
1
1
4
2
1
2
2
4
2
2
2
1
1
2
2
2
1
2
2
4
1
2
2
1
1
1
1
1
...

result:

ok 2000 numbers

Test #10:

score: 10
Accepted
time: 979ms
memory: 3348kb

input:

2000
21222 2 999993719 1999987438
9034 2 999978442 1999956884
24921 1 999975441 1999950882
8481 1 99...

output:

2
4
4
4
16
4
16
0
2
8
0
16
2
2
24
0
0
4
8
2
16
36
2
4
2
0
16
4
0
8
8
2
32
4
2
4
4
32
4
16
0
8
4
0
4
...

result:

ok 2000 numbers