QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#944633#10211. Philosophical … Balancexuanxuan001AC ✓67ms36504kbC++142.4kb2025-03-20 15:25:382025-03-20 15:25:46

Judging History

This is the latest submission verdict.

  • [2025-03-20 15:25:46]
  • Judged
  • Verdict: AC
  • Time: 67ms
  • Memory: 36504kb
  • [2025-03-20 15:25:38]
  • Submitted

answer

#include<cstdio>
#define TY int
#define MAXN 200002
#define FOR(i,a,b) for(TY i=(a);i<=(b);i=-~i)
#define fOR(i,a,b) for(TY i=(a);i<(b);i=-~i)
#define ROF(i,a,b) for(TY i=(a);i>=(b);i=~-i)
#define rOF(i,a,b) for(TY i=(a);i>(b);i=~-i)
#define EDG(i,u) for(TY i=hed[u];i;i=nxt[i])
using namespace std;
typedef long long ll;
const TY M=998244353;
typedef long double db;
typedef unsigned long long ull;
TY _abs(TY a){return a<0?-a:a;}
TY maxn(TY a,TY b){return a>b?a:b;}
TY minn(TY a,TY b){return a<b?a:b;}
inline void updmx(TY &x,TY y){if(x<y)x=y;}
inline void updmn(TY &x,TY y){if(x>y)x=y;}
inline void add(TY &x,TY y){if((x+=y)>=M)x-=M;}
TY gcd(TY a,TY b){return b?gcd(b,a%b):a;}
TY qp(TY a,TY b){TY ans=1;do{if(1&b)ans=ans*a%M;a=a*a%M;}while(b>>=1);return ans;}
char getc(){char ch=getchar();while(ch==' '||ch=='\n'||ch=='\r')ch=getchar();return ch;}
TY qr(){
	char ch=getchar();TY s=0,x=1;
	for(;ch<'0'||ch>'9';ch=getchar())if(ch=='-')x=-1;
	for(;ch>='0'&&ch<='9';ch=getchar())s=s*10+ch-'0';return x*s;
}void qw(TY a){if(a>9)qw(a/10);putchar(a%10+'0');}
void qw(TY a,char ch){
	if(a<0){a=-a;putchar('-');}
	if(a>9)qw(a/10);putchar(a%10+'0');if(ch)putchar(ch);
}TY lg[MAXN],T=qr(),n,rk[MAXN<<1],sa[MAXN],w[MAXN],t[MAXN],A[MAXN],x,y,ST[18][MAXN];char s[MAXN];
db findans(TY l,TY r){
	if(l==r)return n-sa[l]+1;
	TY k=lg[r-l],p=ST[k][r-(1<<k)];
	if(w[p]>w[ST[k][l]])p=ST[k][l];
	db x=findans(l,p)-w[p],y=findans(p+1,r)-w[p];
	if(x+y<1e-6)return w[p];
	return x*y/(x+y)+w[p];
}int main(){
	fOR(i,2,MAXN)lg[i]=lg[i>>1]+1;
	while(T--){
		scanf("%s",s+1);
		for(n=0;s[n+1];++n);
		fOR(i,0,26)t[i]=0;
		FOR(i,1,n)t[s[i]-'a']=1;
		fOR(i,y=0,26)if(t[i])t[i]=++y;
		FOR(i,1,n)rk[i]=t[s[i]-'a'];
		FOR(i,1,n)rk[n+i]=0;
		for(TY x=1;x<n;x<<=1){
			FOR(i,0,n)t[i]=0;
			FOR(i,1,n)++t[rk[i+x]];
			FOR(i,1,n)t[i]+=t[i-1];
			FOR(i,1,n)A[t[rk[i+x]]--]=i;
			FOR(i,1,n)t[i]=0;FOR(i,1,n)++t[rk[i]];
			FOR(i,1,n)t[i]+=t[i-1];
			ROF(i,n,1)sa[t[rk[A[i]]]--]=A[i];
			y=1;FOR(i,1,n){
				A[sa[i]]=y;if(i==n)break;
				if(rk[sa[i]]!=rk[sa[i+1]]||rk[sa[i]+x]!=rk[sa[i+1]+x])++y;
			}FOR(i,1,n)rk[i]=A[i];if(y==n)break;
		}x=0;sa[n+1]=n+1;FOR(i,1,n){
			y=sa[rk[i]+1];if(x)--x;
			while(i+x<=n&&y+x<=n&&s[i+x]==s[y+x])++x;
			w[rk[i]]=x;
		}fOR(i,1,n)ST[0][i]=i;
		fOR(i,0,lg[n])ROF(j,n-(1<<i+1),1){
			ST[i+1][j]=ST[i][j+(1<<i)];
			if(w[ST[i+1][j]]>w[ST[i][j]])ST[i+1][j]=ST[i][j];
		}printf("%.10Lf\n",findans(1,n));
	}return 0;
}

这程序好像有点Bug,我给组数据试试?

詳細信息

Test #1:

score: 100
Accepted
time: 1ms
memory: 8588kb

input:

3
aba
aaaaaaaaaaa
abcd

output:

0.6666666667
1.0000000000
0.4800000000

result:

ok 3 numbers

Test #2:

score: 0
Accepted
time: 23ms
memory: 10748kb

input:

5000
pwbjrqzjiiprpmmjjoibppwzmfwqbqwqoqzbwbrrpizrwpmromjffzfbbbqfizqppffjwipmfirbbfmmomzmwwrpq
ydloztodvevwelvvhoyphehleynlywpophdnlzdnhvwvhnthztwyytwplyn
pjettohskkwlzinyypwokshlnqysymhccmllscxxzjjnjueotlcmtonzmqs
hengzpzzmtcgcqkpzznirzwlxizdrhbncvlipqmncxrssmeabmxaa
bfjbadvsjytbpiajsycjbduvcbiysxc...

output:

0.2521371052
0.2691560590
0.2420173541
0.2795318454
0.2330061325
1.0000000000
0.2289447287
0.2611209637
1.0000000000
0.3566155913
0.3207700402
0.2278198772
0.2616332667
0.2361161582
0.2309080614
0.3263836769
0.3288923823
0.2169236623
0.2339293996
0.2300852329
0.2497925826
0.2387492107
0.4668973605
0...

result:

ok 5000 numbers

Test #3:

score: 0
Accepted
time: 21ms
memory: 14840kb

input:

1000
qmmjppiwqfiopfjiqwmijjfpiwqoqqijqiwopjoojfjfwiqfpiwmjwqwiqfomjwjioqpqwiopfjmqqofowqqqfjioomqjqpojjmwjoqqqwiioqmmoqoqwmwppmffmjimoqjwwjofijpmfmpifwmmqpqfofwiwpomioqjqjfmipfjwfmiqwpiqifwqmoqwjiompqpomwjpfopmfoojqmjojooiooijwpqwwpfwfjmjwfpwwwjoqjjojijpwpmfiipjwpwqipwjqqomwimojijipjwqqqmfmpopipomwo...

output:

0.2482776861
0.1861809675
0.1937231749
0.2007070483
0.1797874849
0.2512422422
0.2195377123
0.1969682425
0.2534738608
0.1833674559
0.2042719300
0.2367421249
0.2762239925
0.2407339457
0.2458582581
0.1856867735
0.1973128725
0.1914730339
0.2039444656
0.2024252508
0.2646734210
0.1957948233
0.2274845082
0...

result:

ok 1000 numbers

Test #4:

score: 0
Accepted
time: 21ms
memory: 16468kb

input:

500
vwqvjzmffxhbmmplqomqfhjpjfivhhvwhwiiflpiromfjrjffmmfvlihflrhxoivbvpfwbjjwlbwbhziqjrxipqwlvqfmjobzopbfxfiwmfwbohipwjrrxbzjhhfmrrmfwpvbwrhrbrviqhqxzpvriqjbvxrrhioqpwzvvhmizfqqhqxprprrbmbjbhflmpwpxfvfpmrwpjviqprhjizjqvhmrfvjbrfbqwlhioifvfpvwwvbzxjlrrlpilqzxxhhfhjvpliwbbpxqbbopllqvpblxozxvijqpbffzvv...

output:

0.1939345551
0.2254679792
0.2640769031
0.3309338563
0.1714006541
0.2027713726
0.1760457358
0.1787660712
0.1793750140
0.2398104153
0.2041492334
0.1811073430
0.1928629834
0.2067917605
0.2414545018
0.1923657279
0.1756697358
0.1901716338
0.1653469673
0.1852453838
0.1961429602
0.2045836437
0.2868109011
0...

result:

ok 500 numbers

Test #5:

score: 0
Accepted
time: 27ms
memory: 21056kb

input:

5
pwpwpowowwpppwpppwpopowppwpopwpwpwwoowpwpoopppoopopwwowpppwwowopopooppoopoppwpoppwoopwwppopppoowpwpwppoooopowwooooowppwpwowwwpoopopwpowoppopwwwpwwwowoppwoooooppowpwwoppoppowopoowpoppoowpowwpoopwpopwpowopoopopwppowpwwwwppoowowwwwwowwpowwooopwwoopwopppwpwpopopopoowwopwwowowwwpwpwpwowowppwwpwwpppppoo...

output:

0.4481552113
0.1235881050
0.6856996282
0.1225287373
0.1900980804

result:

ok 5 numbers

Test #6:

score: 0
Accepted
time: 45ms
memory: 22752kb

input:

2
nxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnxkhbjavnx...

output:

0.2205424376
0.3216833342

result:

ok 2 numbers

Test #7:

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

input:

2
fojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoiiqfojooqoi...

output:

0.3516829822
0.3181745053

result:

ok 2 numbers

Test #8:

score: 0
Accepted
time: 27ms
memory: 23332kb

input:

2
umrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhumrqjizhhu...

output:

0.2223081419
0.2260166863

result:

ok 2 numbers

Test #9:

score: 0
Accepted
time: 51ms
memory: 34324kb

input:

2
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww...

output:

1.0000000000
0.3562571193

result:

ok 2 numbers

Test #10:

score: 0
Accepted
time: 41ms
memory: 24004kb

input:

2
evprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprevprev...

output:

0.2257529455
0.2348122079

result:

ok 2 numbers

Test #11:

score: 0
Accepted
time: 31ms
memory: 23456kb

input:

2
axxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxjyyaxxj...

output:

0.2094363544
0.2263619443

result:

ok 2 numbers

Test #12:

score: 0
Accepted
time: 57ms
memory: 24012kb

input:

2
jqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqfhzjqf...

output:

0.3456385619
0.3872252166

result:

ok 2 numbers

Test #13:

score: 0
Accepted
time: 61ms
memory: 30504kb

input:

2
pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp...

output:

0.6879831143
0.2639185380

result:

ok 2 numbers

Test #14:

score: 0
Accepted
time: 67ms
memory: 36504kb

input:

2
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww...

output:

0.2381549773
0.2637571239

result:

ok 2 numbers

Test #15:

score: 0
Accepted
time: 54ms
memory: 24788kb

input:

2
pwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpwpppwwwpwpw...

output:

0.6227314664
0.3410408821

result:

ok 2 numbers

Test #16:

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

input:

2
uxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwttwuxwt...

output:

0.3118176638
0.3004657893

result:

ok 2 numbers

Test #17:

score: 0
Accepted
time: 37ms
memory: 19924kb

input:

5
obmmpxhlfmwjmxzjflporxoijbqfvhpiixoowqfwvopljfpjimqijrhwmrbxiqovopbqxjzhwwfjlhjjplhbwbbfqrizqqxwforhllqqoojwohwvjphivpwvpzqbqlfljvopqwrirlbhlpbzqxqffimjlwvxvvpwoiibhhoijxqmlomrlhbhoroxbjfprlrfhzpmrmlljwhzzvrrfhlrxipqfmhqvvfrmrvozfpfrzqlbmhrjrlfbwwhojmrwziriwwlfbhqpmiirhrpqlqqrbwwzwffoopqhxbibpbwlq...

output:

0.1430814122
0.1220176406
0.1263593774
0.2043538932
0.1461981950

result:

ok 5 numbers

Test #18:

score: 0
Accepted
time: 41ms
memory: 21488kb

input:

2
ilixfjyixlyybpxbibzwwpfmjoletithqximrevmojeetqrmirrpxbomxjrpqltlfetivhzjtwxiqoihlbjhvhzopwiqoqwwerhqjlyhwivjvpzpmmrpxmiiyzyjpmlrqfmzmzhiqhbweeqzpmmwvyxefrfqvbjlmlehjjywjffjrftxleebqtxfpxoomvjifyymhmfptlxqqlhbtoqeqjxmiqbbpqprwqztehmbwozjjmrrjyxovhplbihzeprwzbmjlemjvqfeoehzljvxtrxrmtorbvojiwwbjeqeqh...

output:

0.1281010591
0.1154989187

result:

ok 2 numbers

Extra Test:

score: 0
Extra Test Passed