QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#944633 | #10211. Philosophical … Balance | xuanxuan001 | AC ✓ | 67ms | 36504kb | C++14 | 2.4kb | 2025-03-20 15:25:38 | 2025-03-20 15:25:46 |
Judging History
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