QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#670447 | #9417. Palindromic Polygon | 1025497292 | AC ✓ | 713ms | 26996kb | C++17 | 2.3kb | 2024-10-23 21:46:15 | 2024-10-23 21:46:17 |
Judging History
answer
#include<bits/stdc++.h>
#define endl '\n'
#define int long long
#define double long double
#define Vector Point
#define Mirai ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
using namespace std;
typedef pair<int,int> pii;
const double eps=1e-12;
struct Point
{
int x,y;
Point(int x=0,int y=0):x(x),y(y){};
Vector operator-(const Vector &o)const{return Vector(x-o.x,y-o.y);}
};
int Cross(Vector a,Vector b){return abs(a.x*b.y-a.y*b.x);}
void show(Point a){cout<<a.x<<" "<<a.y<<endl;}
void solve()
{
int n;cin>>n;
vector<int> val(n*2+1);
vector<Point> p(n*2+1);
for(int i=1;i<=n;i++)
{
cin>>val[i];
val[i+n]=val[i];
}
for(int i=1;i<=n;i++)
{
cin>>p[i].x>>p[i].y;
p[i+n]=p[i];
}
vector<vector<int>> L(n*2+1,vector<int>(n*2+1));
vector<vector<int>> R(n*2+1,vector<int>(n*2+1));
for(int i=1;i<=n*2;i++)
{
int pos=i;
for(int j=i;j<=n*2;j++)
{
if(val[i]==val[j])pos=j;
L[i][j]=pos;
}
}
for(int j=n*2;j>=1;j--)
{
int pos=j;
for(int i=j;i>=1;i--)
{
if(val[i]==val[j])pos=i;
R[i][j]=pos;
}
}
vector<vector<int>> dp(n*2+1,vector<int>(n*2+1,0));
int res=0;
for(int len=2;len<=n-1;len++)
{
for(int l=1;l<=n*2-len;l++)
{
int r=l+len;
if(val[l]!=val[r])continue;
for(int l1=l+1;l1<r;l1++)
{
int r1=L[l1][r-1];
dp[l][r]=max(dp[l][r],dp[l1][r1]+Cross(p[l1]-p[r],p[r1]-p[r])+Cross(p[l1]-p[l],p[l1]-p[r]));
// else dp[l][r]=max(dp[l][r],dp[l1][r1]+Cross(p[l]-p[l1],p[r]-p[l1]));
}
for(int r1=r-1;r1>l;r1--)
{
int l1=R[l+1][r1];
dp[l][r]=max(dp[l][r],dp[l1][r1]+Cross(p[l1]-p[r],p[r1]-p[r])+Cross(p[l1]-p[l],p[l1]-p[r]));
// else dp[l][r]=max(dp[l][r],dp[l1][r1]+Cross(p[l]-p[l1],p[r]-p[l1]));
}
res=max(res,dp[l][r]);
}
}
cout<<res<<endl;
}
signed main()
{
Mirai;
int T=1;
cin>>T;
while(T--)
{
solve();
}
return 0;
}
这程序好像有点Bug,我给组数据试试?
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3632kb
input:
3 8 2 4 2 4 3 4 5 3 2 3 0 6 -3 3 -3 0 -2 -3 1 -5 3 -3 4 0 3 1 2 3 0 0 1 0 0 1 3 1 1 1 0 0 1 0 0 1
output:
84 0 1
result:
ok 3 number(s): "84 0 1"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3580kb
input:
1 4 1000000000 1000000000 1000000000 1000000000 -1000000000 -1000000000 1000000000 -1000000000 1000000000 1000000000 -1000000000 1000000000
output:
8000000000000000000
result:
ok 1 number(s): "8000000000000000000"
Test #3:
score: 0
Accepted
time: 0ms
memory: 3556kb
input:
129 10 604040473 604040473 287094217 682965575 70435786 287094217 604040473 287094217 682965575 92620053 -193 -184 -200 -200 -125 -169 -120 -157 -120 -145 -124 -139 -137 -136 -155 -149 -172 -163 -187 -177 5 346787871 346787871 113397429 113397429 346787871 -173 -181 -186 -166 -200 -195 -194 -200 -17...
output:
3857 1068 877 516 2668 3559 1165 3468 560 925 3502 696 3824 1746 2970 1826 613 2221 1130 4677 1900 1646 564 273 3203 6572 1070 3330 1024 765 142 3038 1615 9445 2122 320 1741 2561 1145 480 2094 5119 5458 2446 3929 2249 4378 4927 2356 1473 3152 1574 1990 1609 3367 2298 1459 2663 2617 2298 4048 215 546...
result:
ok 129 numbers
Test #4:
score: 0
Accepted
time: 1ms
memory: 3628kb
input:
135 5 1 1 2 113253381 2 -187 -200 -185 -199 -172 -161 -192 -163 -200 -181 6 2 1 558119535 2 681168219 1 -159 -157 -200 -181 -197 -188 -190 -200 -179 -187 -164 -169 9 330122537 1 43508877 1 330122537 2 43508877 43508877 2 -115 -171 -127 -160 -140 -158 -153 -161 -170 -166 -190 -181 -200 -200 -126 -197...
output:
1199 1019 4995 993 374 2202 5999 2738 1610 287 2402 2421 1968 2253 889 2109 3594 1369 660 3823 1039 779 1068 1961 793 4749 906 1528 834 1125 244 532 1943 999 2279 274 1928 1969 3195 4189 762 1266 1330 6496 550 1452 2392 5402 246 1504 1603 1190 2002 2010 3855 5341 1096 730 4077 1005 368 2383 2465 278...
result:
ok 135 numbers
Test #5:
score: 0
Accepted
time: 1ms
memory: 3680kb
input:
68 18 177729849 694994462 698865345 342457858 192803483 342457858 666388583 192803483 981906585 981906585 477960944 666388583 477960944 666388583 279990638 192803483 666388583 378306063 -247299689 -596018085 -257763469 -530664858 -307204843 -477869906 -830737754 -587840234 -915132692 -619194354 -100...
output:
454110023930570607 183756804328850070 298315022228123202 307512523943663260 356398611422117225 175693541183498183 85435294912017589 90055534959464621 470255288030458232 72285943569225582 93246116205839344 204734350926653941 181050899065321759 92595596931349298 252462643584630356 170478369910592368 2...
result:
ok 68 numbers
Test #6:
score: 0
Accepted
time: 1ms
memory: 3664kb
input:
68 17 4 5 364570994 3 364570994 922037103 1 2 1 3 4 922037103 348120378 922774606 2 5 348120378 -944527911 -585310186 -985388783 -648105509 -996957301 -724274531 -1000000000 -776231334 -987660458 -849026993 -956240043 -910614062 -921236523 -949464303 -824975533 -1000000000 -758560856 -997163831 -685...
output:
283257114140518651 196218877050842110 222494863055424896 205446281561853782 250005106663316430 97542520284278361 366125469664341547 45201313979184996 302406140775158311 273846619401894473 114076427182578290 296093289576963628 314427730122999682 275016401751244176 113458042513568150 65331043997675878...
result:
ok 68 numbers
Test #7:
score: 0
Accepted
time: 8ms
memory: 7000kb
input:
5 200 609999526 472639833 217024831 181719265 607443350 247865634 182637039 952698029 667998662 552937384 309920961 395554742 529168804 633125523 572946770 964103704 809297865 675769477 8628527 954614525 607443350 402709616 933276333 156118214 382882490 982120770 8449875 613209070 635469591 90592427...
output:
26672937937698 21734491556698 26790824844133 30739464810342 25766825658360
result:
ok 5 number(s): "26672937937698 21734491556698 ...3 30739464810342 25766825658360"
Test #8:
score: 0
Accepted
time: 4ms
memory: 7068kb
input:
5 200 492204292 199500284 956414792 947905664 397147741 584603063 477504704 67732501 947905664 168522928 23355651 717940721 618420996 23355651 850784605 928119758 717940721 375517624 745458203 790993066 558764624 889247289 690761448 654316570 720267356 380473009 294135686 730680716 871352642 7131338...
output:
25179077707847 24610803287778 27879482074960 26586509092648 23860637721112
result:
ok 5 number(s): "25179077707847 24610803287778 ...0 26586509092648 23860637721112"
Test #9:
score: 0
Accepted
time: 0ms
memory: 7044kb
input:
5 200 84 35 20 33 36 78 24 47 5 18 90 100 48 99 17 86 92 42 22 22 91 15 16 34 61 2 52 72 31 71 24 67 10 64 72 81 56 47 34 58 75 46 59 85 27 14 14 83 30 42 13 89 38 52 51 66 44 51 62 41 28 40 12 79 23 56 81 8 60 69 65 68 26 96 55 68 46 70 1 21 84 44 62 4 23 99 69 18 35 54 37 19 39 93 48 8 43 53 16 93...
output:
25742598865692 23940201061139 21774320032543 29925923291252 25943299932354
result:
ok 5 number(s): "25742598865692 23940201061139 ...3 29925923291252 25943299932354"
Test #10:
score: 0
Accepted
time: 8ms
memory: 6996kb
input:
5 200 30 1 9 6 855627481 44 807240211 19 328678825 43 2 611193007 21 1 17357465 777452512 296168618 293501368 41887972 16 460434285 25 17 2 820070575 32 49 11 50 7 876136756 48 167436795 18 44 9 32 34 492450178 92584206 117799001 753835505 447351438 293501368 14 45 17357465 47 419370691 820070575 8 ...
output:
25588520303771 24556295312210 22684955350359 25702614992989 26005004619374
result:
ok 5 number(s): "25588520303771 24556295312210 ...9 25702614992989 26005004619374"
Test #11:
score: 0
Accepted
time: 7ms
memory: 7164kb
input:
5 200 8 870822545 888011437 384726727 366602674 888011437 384726727 384726727 366602674 870822545 870822545 384726727 651014332 10 888011437 411902203 611980057 910184732 411902203 651014332 411902203 723545326 5 3 319317853 476997146 910184732 8 888011437 651014332 611980057 7 611980057 910184732 5...
output:
26138916026487 24620851403857 25071187076679 25469429774328 30775803237893
result:
ok 5 number(s): "26138916026487 24620851403857 ...9 25469429774328 30775803237893"
Test #12:
score: 0
Accepted
time: 44ms
memory: 7068kb
input:
5 200 817980653 817980653 125172097 125172097 817980653 163615641 163615641 817980653 817980653 668379506 817980653 125172097 163615641 163615641 125172097 125172097 125172097 125172097 668379506 817980653 817980653 163615641 817980653 817980653 817980653 817980653 817980653 163615641 163615641 6683...
output:
26176012030413 25187907268116 26211235264533 24618377847566 26109975005241
result:
ok 5 number(s): "26176012030413 25187907268116 ...3 24618377847566 26109975005241"
Test #13:
score: 0
Accepted
time: 87ms
memory: 6972kb
input:
5 200 212397750 992618221 212397750 992618221 992618221 212397750 992618221 992618221 992618221 992618221 992618221 212397750 2 992618221 992618221 992618221 212397750 212397750 992618221 212397750 212397750 992618221 212397750 212397750 992618221 992618221 992618221 992618221 212397750 212397750 21...
output:
24420005315074 25336424651447 23383079383207 25959789505886 25582059787979
result:
ok 5 number(s): "24420005315074 25336424651447 ...7 25959789505886 25582059787979"
Test #14:
score: 0
Accepted
time: 14ms
memory: 26868kb
input:
2 500 250285849 580799867 401195916 661392649 274956707 428122906 643570314 597693323 592665916 548828299 95425938 535055216 384703504 881144262 438319718 745176673 592665916 880144539 422267581 531703035 896349921 462725647 550924100 68263737 86309277 974901795 379678136 311335012 808714258 8693175...
output:
148932394479904 154174289817183
result:
ok 2 number(s): "148932394479904 154174289817183"
Test #15:
score: 0
Accepted
time: 16ms
memory: 26860kb
input:
2 500 949563149 328612154 460785000 575821013 653281828 795841469 254532165 949563149 201859963 321853857 543557486 260875897 615307892 283709631 56492240 73771155 907703161 246563892 962285534 213433892 254428673 378181126 231227997 916759825 389322999 543557486 254428673 382216426 520489024 415367...
output:
152920875589467 146994747277368
result:
ok 2 number(s): "152920875589467 146994747277368"
Test #16:
score: 0
Accepted
time: 20ms
memory: 26752kb
input:
2 500 199 123 12 243 208 167 191 187 212 45 214 160 29 209 154 102 124 140 155 90 119 47 214 171 103 200 165 16 198 231 202 145 19 176 40 193 183 50 212 28 105 238 177 179 127 116 204 67 243 149 93 23 222 116 200 38 149 174 169 219 122 153 92 216 8 67 58 181 185 232 138 189 133 59 72 210 106 111 30 ...
output:
166697813512230 163068164683089
result:
ok 2 number(s): "166697813512230 163068164683089"
Test #17:
score: 0
Accepted
time: 17ms
memory: 26796kb
input:
2 500 47 873285980 79 849771068 74 1 44 94 120 19 200446046 77 11 22 17 34 72 538801034 972859531 26 86 773234986 43 65 189731974 213731477 665326879 74 8 99 16 501881943 256119516 4 81 5 94 392347711 213731477 13 172643627 91 82 733662021 14 125 60 20 121 154440980 463976233 690756841 208950480 122...
output:
173330999736669 152174681452318
result:
ok 2 number(s): "173330999736669 152174681452318"
Test #18:
score: 0
Accepted
time: 27ms
memory: 26780kb
input:
2 500 540767236 963353518 561314711 81529695 7 922697634 919109514 767431537 478297881 493445298 63090798 406478570 11 55 32 56 162788153 401080796 432220145 919109514 52 56 41 23 120695251 54 561314711 493445298 705279452 358783590 509626765 182281030 614041703 44261929 681696090 561314711 16278815...
output:
159663591152060 158072356086552
result:
ok 2 number(s): "159663591152060 158072356086552"
Test #19:
score: 0
Accepted
time: 45ms
memory: 26996kb
input:
2 500 266649322 682547799 808972918 596605297 217916121 107173579 413534051 217916121 934948565 27 422367079 422367079 217916121 87875810 87875810 413534051 13 169854310 202383590 314937934 283020826 632112772 986212611 169854310 87875810 596605297 19 808972918 836612378 733968754 733968754 63211277...
output:
169410553734380 165802983119455
result:
ok 2 number(s): "169410553734380 165802983119455"
Test #20:
score: 0
Accepted
time: 116ms
memory: 26836kb
input:
2 500 583670485 13 2608273 847215851 556630050 554918196 732375307 272837728 899937572 2608273 732375307 554918196 732375307 847215851 3 856869545 272837728 554918196 847215851 7 2608273 847215851 317707407 899937572 554918196 583670485 879430504 2 965838562 847215851 879430504 272837728 556630050 8...
output:
158326373826089 150187630936592
result:
ok 2 number(s): "158326373826089 150187630936592"
Test #21:
score: 0
Accepted
time: 283ms
memory: 26788kb
input:
2 500 756582711 575924897 118687709 695386745 575924897 695386745 897710981 239579019 897710981 897710981 695386745 695386745 756582711 695386745 575924897 118687709 756582711 695386745 239579019 239579019 4 756582711 575924897 239579019 575924897 1 239579019 575924897 756582711 239579019 575924897 ...
output:
176833038255727 153234216106459
result:
ok 2 number(s): "176833038255727 153234216106459"
Test #22:
score: 0
Accepted
time: 713ms
memory: 26976kb
input:
2 500 270188663 76390750 76390750 270188663 270188663 76390750 76390750 270188663 76390750 270188663 76390750 76390750 76390750 270188663 270188663 76390750 76390750 270188663 270188663 270188663 76390750 270188663 270188663 270188663 270188663 270188663 76390750 270188663 270188663 270188663 270188...
output:
160330837189026 149529694641768
result:
ok 2 number(s): "160330837189026 149529694641768"
Extra Test:
score: 0
Extra Test Passed