QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#115152#5413. 同构判定鸡zhouhuanyi94.446064 11ms11820kbC++113.5kb2023-06-24 18:07:102023-06-24 18:07:11

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-06-24 18:07:11]
  • 评测
  • 测评结果:94.446064
  • 用时:11ms
  • 内存:11820kb
  • [2023-06-24 18:07:10]
  • 提交

answer

#include<iostream>
#include<cstdio>
#define N 3000
using namespace std;
int read()
{
    char c=0;
    int sum=0;
    while (c<'0'||c>'9') c=getchar();
    while ('0'<=c&&c<='9') sum=sum*10+c-'0',c=getchar();
    return sum;
}
int gcd(int x,int y)
{
    if (!y) return x;
    return gcd(y,x%y);
}
int T,p,n,m,sn,sm,type;
bool E[N+1][N+1],used[N+1];
void adder(int x,int y)
{
    E[x][y]=E[y][x]=1;
    return;
}
int F(int x,int y)
{
    return x*p+y+1;
}
int G(int x,int y,int z)
{
    return x*p*p+y*p+z+1;
}
int main()
{
    int x,y,d1,d2,d3,cnt,rst;
    bool op;
    T=read(),type=read();
    while (T--)
    {
	n=read(),m=read();
	for (int i=1;i<=m;++i) x=read(),y=read();
	sn=read(),sm=read();
	if (type<=2)
	{
	    cnt=0;
	    for (int i=1;i<=sn;++i)
		for (int j=i+1;j<=sn;++j)
		    if ((j-i)%(n-1)!=0)
			cnt++;
	    printf("%d %d\n",sn,cnt);
	    for (int i=1;i<=sn;++i)
		for (int j=i+1;j<=sn;++j)
		    if ((j-i)%(n-1)!=0)
			printf("%d %d\n",i,j);
	}
	else if (type==3)
	{
	    rst=sn/25;
	    for (int i=0;i<5;++i)
		for (int j=0;j<5;++j)
		    adder(i*5+j+1,i*5+(j+1)%5+1);
	    for (int i=0;i<5;++i) adder(i*5+1,((i+1)%5)*5+1),adder(i*5+2,((i+1)%5)*5+3),adder(i*5+3,((i+1)%5)*5+5),adder(i*5+4,((i+1)%5)*5+2),adder(i*5+5,((i+1)%5)*5+4);
	    printf("%d %d\n",sn,sm);
	    for (int i=1;i<=rst;++i)
		for (int j=1;j<=25;++j)
		    for (int k=j+1;k<=25;++k)
			if (E[j][k])
			    printf("%d %d\n",(i-1)*25+j,(i-1)*25+k);
	    for (int i=1;i<=sn%25;++i) printf("%d %d\n",i,rst*25+i),printf("%d %d\n",25+i,rst*25+i);
	}
	else if (type==4)
	{
	    cnt=p=0;
	    while ((p+1)*(p+1)<=sn) p++;
	    for (int i=1;i<=sn;++i)
		for (int j=1;j<=sn;++j)
		    E[i][j]=0;
	    for (int i=0;i<p;++i)
		for (int j=0;j<p;++j)
		    for (int k=0;k<p;++k)
			adder(F(i,j),F(k,(i*k+p-j)%p));
	    for (int i=1;i<=sn;++i)
		for (int j=i+1;j<=sn;++j)
		    if (E[i][j])
			cnt++;
	    printf("%d %d\n",sn,cnt);
	    for (int i=1;i<=sn;++i)
		for (int j=i+1;j<=sn;++j)
		    if (E[i][j])
			printf("%d %d\n",i,j);
	}
	else if (type==5)
	{
	    sn=2809,cnt=p=0;
	    while ((p+1)*(p+1)<=sn) p++;
	    for (int i=0;i<p;++i)
		for (int j=0;j<p;++j)
		    for (int k=0;k<p;++k)
			adder(F(i,j),F(k,(i*k+p-j)%p));
	    for (int i=1;i<=sn;++i)
		for (int j=i+1;j<=sn;++j)
		    if (E[i][j])
			cnt++;
	    printf("%d %d\n",sn,cnt);
	    for (int i=1;i<=sn;++i)
		for (int j=i+1;j<=sn;++j)
		    if (E[i][j])
			printf("%d %d\n",i,j);
	}
	else
	{
	    cnt=p=0;
	    while ((p+1)*(p+1)*(p+1)<=sn) p++;
	    used[0]=1;
	    for (int i=0;i<p;++i)
		for (int j=0;j<p;++j)
		    for (int k=0;k<p;++k)
			for (int i2=0;i2<p;++i2)
			    for (int j2=0;j2<p;++j2)
				for (int k2=0;k2<p;++k2)
				{
				    d1=abs(i-i2),d2=abs(j-j2),d3=abs(k-k2),op=0;
				    if (d1*d1+d2*d2+d3*d3==9) op=1;
				    if (d1&&(p-d1)*(p-d1)+d2*d2+d3*d3==9) op=1;
				    if (d2&&d1*d1+(p-d2)*(p-d2)+d3*d3==9) op=1;
				    if (d3&&d1*d1+d2*d2+(p-d3)*(p-d3)==9) op=1;
				    if (d1&&d2&&(p-d1)*(p-d1)+(p-d2)*(p-d2)+d3*d3==9) op=1;
				    if (d1&&d3&&(p-d1)*(p-d1)+d2*d2+(p-d3)*(p-d3)==9) op=1;
				    if (d2&&d3&&d1*d1+(p-d2)*(p-d2)+(p-d3)*(p-d3)==9) op=1;
				    if (d1&&d2&&d3&&(p-d1)*(p-d1)+(p-d2)*(p-d2)+(p-d3)*(p-d3)==9) op=1;
				    if (op) E[G(i,j,k)][G(i2,j2,k2)]=1;
				}
	    for (int i=1;i<=sn;++i)
		for (int j=i+1;j<=sn;++j)
		    if (E[i][j])
			cnt++;
	    printf("%d %d\n",sn,cnt);
	    for (int i=1;i<=sn;++i)
		for (int j=i+1;j<=sn;++j)
		    if (E[i][j])
			printf("%d %d\n",i,j);
	}
    }
    return 0;
}


詳細信息

Test #1:

score: 5
Accepted
time: 2ms
memory: 3820kb

input:

10 1
3 3
1 2
1 3
2 3
33 272
3 3
1 2
1 3
2 3
28 196
3 3
1 2
1 3
2 3
92 2116
3 3
1 2
1 3
2 3
29 210
3 3
1 2
1 3
2 3
62 961
3 3
1 2
1 3
2 3
97 2352
3 3
1 2
1 3
2 3
60 900
3 3
1 2
1 3
2 3
70 1225
3 3
1 2
1 3
2 3
67 1122
3 3
1 2
1 3
2 3
67 1122

output:

33 272
1 2
1 4
1 6
1 8
1 10
1 12
1 14
1 16
1 18
1 20
1 22
1 24
1 26
1 28
1 30
1 32
2 3
2 5
2 7
2 9
2 11
2 13
2 15
2 17
2 19
2 21
2 23
2 25
2 27
2 29
2 31
2 33
3 4
3 6
3 8
3 10
3 12
3 14
3 16
3 18
3 20
3 22
3 24
3 26
3 28
3 30
3 32
4 5
4 7
4 9
4 11
4 13
4 15
4 17
4 19
4 21
4 23
4 25
4 27
4 29
4 31
4 ...

result:

ok correct! (10 test cases)

Test #2:

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

input:

10 2
5 10
1 2
1 3
1 4
1 5
2 3
2 4
2 5
3 4
3 5
4 5
28 293
8 28
1 2
1 3
1 4
1 5
1 6
1 7
1 8
2 3
2 4
2 5
2 6
2 7
2 8
3 4
3 5
3 6
3 7
3 8
4 5
4 6
4 7
4 8
5 6
5 7
5 8
6 7
6 8
7 8
8 26
4 6
1 2
1 3
1 4
2 3
2 4
3 4
82 2240
3 3
1 2
1 3
2 3
46 528
4 6
1 2
1 3
1 4
2 3
2 4
3 4
42 587
9 36
1 2
1 3
1 4
1 5
1 6
1 ...

output:

28 294
1 2
1 3
1 4
1 6
1 7
1 8
1 10
1 11
1 12
1 14
1 15
1 16
1 18
1 19
1 20
1 22
1 23
1 24
1 26
1 27
1 28
2 3
2 4
2 5
2 7
2 8
2 9
2 11
2 12
2 13
2 15
2 16
2 17
2 19
2 20
2 21
2 23
2 24
2 25
2 27
2 28
3 4
3 5
3 6
3 8
3 9
3 10
3 12
3 13
3 14
3 16
3 17
3 18
3 20
3 21
3 22
3 24
3 25
3 26
3 28
4 5
4 6
4 ...

result:

ok correct! (10 test cases)

Test #3:

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

input:

10 3
4 4
1 2
2 3
3 4
4 1
387 774
4 4
1 2
2 3
3 4
4 1
668 1336
4 4
1 2
2 3
3 4
4 1
1403 2806
4 4
1 2
2 3
3 4
4 1
1516 3032
4 4
1 2
2 3
3 4
4 1
1601 3202
4 4
1 2
2 3
3 4
4 1
1649 3298
4 4
1 2
2 3
3 4
4 1
1722 3444
4 4
1 2
2 3
3 4
4 1
1854 3708
4 4
1 2
2 3
3 4
4 1
1926 3852
4 4
1 2
2 3
3 4
4 1
1989 3978

output:

387 774
1 2
1 5
1 6
1 21
2 3
2 8
2 24
3 4
3 10
3 22
4 5
4 7
4 25
5 9
5 23
6 7
6 10
6 11
7 8
7 13
8 9
8 15
9 10
9 12
10 14
11 12
11 15
11 16
12 13
12 18
13 14
13 20
14 15
14 17
15 19
16 17
16 20
16 21
17 18
17 23
18 19
18 25
19 20
19 22
20 24
21 22
21 25
22 23
23 24
24 25
26 27
26 30
26 31
26 46
27 2...

result:

ok correct! (10 test cases)

Test #4:

score: 15
Accepted
time: 10ms
memory: 9592kb

input:

10 4
4 4
1 2
2 3
3 4
4 1
169 1014
4 4
1 2
2 3
3 4
4 1
529 5819
4 4
1 2
2 3
3 4
4 1
841 11774
4 4
1 2
2 3
3 4
4 1
961 14415
4 4
1 2
2 3
3 4
4 1
1369 24642
4 4
1 2
2 3
3 4
4 1
1681 33620
4 4
1 2
2 3
3 4
4 1
1849 38829
4 4
1 2
2 3
3 4
4 1
361 3249
4 4
1 2
2 3
3 4
4 1
289 2312
4 4
1 2
2 3
3 4
4 1
9 9

output:

169 1092
1 14
1 27
1 40
1 53
1 66
1 79
1 92
1 105
1 118
1 131
1 144
1 157
2 13
2 26
2 39
2 52
2 65
2 78
2 91
2 104
2 117
2 130
2 143
2 156
2 169
3 12
3 25
3 38
3 51
3 64
3 77
3 90
3 103
3 116
3 129
3 142
3 155
3 168
4 11
4 24
4 37
4 50
4 63
4 76
4 89
4 102
4 115
4 128
4 141
4 154
4 167
5 10
5 23
5 3...

result:

ok correct! (10 test cases)

Test #5:

score: 30
Accepted
time: 11ms
memory: 11820kb

input:

1 5
4 4
1 2
2 3
3 4
4 1
2850 24300

output:

2809 74412
1 54
1 107
1 160
1 213
1 266
1 319
1 372
1 425
1 478
1 531
1 584
1 637
1 690
1 743
1 796
1 849
1 902
1 955
1 1008
1 1061
1 1114
1 1167
1 1220
1 1273
1 1326
1 1379
1 1432
1 1485
1 1538
1 1591
1 1644
1 1697
1 1750
1 1803
1 1856
1 1909
1 1962
1 2015
1 2068
1 2121
1 2174
1 2227
1 2280
1 2333
...

result:

points 1.0 m' = 74412, 3M = 72900, points = 30.304790

Test #6:

score: 24.4461
Acceptable Answer
time: 2ms
memory: 4832kb

input:

1 6
6 9
1 4
1 5
1 6
2 4
2 5
2 6
3 4
3 5
3 6
343 2350

output:

343 5145
1 4
1 5
1 22
1 29
1 66
1 69
1 87
1 90
1 108
1 111
1 114
1 119
1 135
1 140
1 143
1 146
1 148
1 197
1 255
1 258
1 261
1 266
1 282
1 287
1 290
1 293
1 311
1 314
1 332
1 335
2 5
2 6
2 23
2 30
2 67
2 70
2 88
2 91
2 109
2 112
2 113
2 115
2 134
2 136
2 144
2 147
2 149
2 198
2 256
2 259
2 260
2 262...

result:

points 0.81486880470 m' = 5145, 3M = 7050, points = 24.446064