【UOJ 191/集训队互测】Unknown

【UOJ 191/集训队互测】Unknown

题意

有一个初始为空的栈和 m(m<=500000) 个操作,不外乎三种:
1. 将向量 (xi,yi) 压栈。
2. 弹栈。
3. 询问栈中第 l r个向量与 (x,y) 外积的最大值。

分析

1. 没有 2 操作

注意到这里的“外积”只是外积的竖坐标,而且可以转化为内积。而内积最大即 a⃗  b⃗  上的投影最长,所以只需考虑在凸包上的向量。
首先想到用线段树维护其区间中的向量的凸包(分为上下凸包),查询时在若干个凸包上三分。若照常把 1 操作当成修改,则要支持凸包内动态插点,这当然可以用一个Treap Splay 维护,但方法不算优秀,无法 AC 。换个角度想:在栈不断变大的过程中,线段树每个节点对应的区间一旦被覆盖就不会有任何改动,所以我们只需要在一个区间被覆盖满后一次性构建凸包即可。时间复杂度为 Θ(nlog22n) 大概还有个1/2的小常数

2. 2 操作

那么,只需反复进行 12 操作,上面的程序就会超时。何以蔽之,从根本上来说就是要保证凸包的构建次数足够小。这里的思路是:在一个区间被覆盖时,检查同层的上一个区间,若其没构建凸包则构建。这样保证了凸包构建次数与之前拥有同一上界,同时查询时真正利用的区间个数仍为 Θ(log2n) (同大小的区间不会出现超过 4 次)。如此一来,问题在Θ(nlog22n)得到解决。

收获

本题的思想非常精妙,不仅适用于维护凸包,更适用于其他不可合并结构相关的栈上 Q &A。至于此题的其他解法亦十分精妙,待日后补完。

疑问

在调试过程中,网上 copy AC 代码并没有通过我造的样例,在此悬赏 hacking (包括我, 哪个都可以试试)。

AC1
AC2
0 <script type="math/tex" id="MathJax-Element-6108">0</script>

0
1000
1 78213191 227391742
3 1 1 475761683 349225761
1 -31129056 170397677
1 285890805 -455777224
3 3 3 -394794167 -518448896
3 3 3 234379752 -425751401
3 1 2 -367353067 -8787651
2
1 -245734052 228642699
1 -266406202 281767263
3 3 3 428048233 -76920921
3 3 4 452246060 138542926
2
2
2
3 1 1 -5625313 11403331
3 1 1 516115962 -116415548
1 -221385500 182755419
1 136318907 -412371947
2
1 -271083297 -493344998
3 2 2 403756767 -357577063
1 -520175583 554527
1 108397009 -246732785
2
2
3 3 3 -405725939 -69699896
1 -483665851 -132450580
3 2 3 -93841554 -480720781
3 4 4 -270563188 -474490329
2
3 2 3 181109605 -449120265
1 3825776 -524873094
1 -477634573 395105971
2
2
1 263501803 -433351702
1 301554648 60521923
2
1 -347821049 -239571396
3 1 1 -204892897 203429831
2
3 4 4 -403255107 317245279
2
3 3 3 82016569 -123472149
2
3 2 2 128178054 475197303
3 2 2 455195199 -426204479
2
2
1 -270876102 53295372
1 -54618868 467867545
1 278566810 156838408
3 3 3 -287771334 309383150
2
1 -246740421 8209015
1 -292064590 -228385989
3 1 2 309822740 66359501
2
1 367476648 439120905
1 2844003 215132518
3 4 5 169090267 -523958600
3 3 3 -366842722 -478462658
3 5 5 -196957886 284502123
3 1 4 357216711 6991978
2
2
1 84959903 -442370170
2
3 2 3 461038103 318743395
3 3 3 172026320 56411531
3 2 2 -331859260 -445079672
2
2
1 -41478743 509429856
1 184758670 420526977
1 134855677 221260878
2
2
1 -89043629 47114852
1 -221767130 278034919
3 1 3 -122447114 4819644
3 2 4 100788828 -348699728
1 -447506517 -433716328
3 5 5 310635783 117435782
2
2
1 -399842693 -235997376
3 3 3 -321636026 -448937384
1 234367015 -182138533
1 69767882 294522783
3 1 1 55461495 236566501
3 3 4 266799856 -370039823
2
2
2
2
2
2
1 232149333 95227425
2
1 -406328257 85009274
1 -211936788 69219258
3 2 2 -21358920 335411160
2
3 1 1 375605777 -212609585
2
1 -288181576 -93480017
3 1 1 468535804 333597102
2
1 101201288 158337863
3 1 1 -264728733 -334416545
1 108563762 -387534361
1 439768280 -15748242
1 185050798 -6052709
1 -33344128 322641542
2
2
3 1 2 -394329693 387904836
1 167279969 -92690335
2
2
1 299060001 -27508663
2
2
1 -120188229 491810723
1 435185904 -77592548
2
3 1 1 -52027037 535202577
3 1 2 17575547 199105418
2
1 514105739 -163119708
3 1 1 -513821010 192726715
1 393637701 -195299950
3 1 3 65015540 278496702
3 1 1 194831650 450089816
1 372771591 144346724
2
3 3 3 -298161842 -332293294
2
2
1 -533797117 194103965
1 220474277 532246439
2
2
1 -389221791 -149251589
1 225507208 -373367828
3 1 2 -121533987 -373051602
3 1 2 -520188387 354396437
3 2 2 -440462173 -162839842
1 263100416 113447736
2
1 -79247062 46624242
1 -462597294 -176273955
1 -40324371 -404750993
2
3 1 1 -102610682 -481033694
2
1 477773190 -364919837
2
1 -389664665 439965436
3 2 3 -140076992 293650535
3 5 5 -282235773 304164116
1 -451708414 -226930812
1 152389855 -466834736
2
3 2 3 -85339657 129575511
2
2
1 -422568383 -361661640
3 2 4 -336793572 -274318891
1 -177017697 -128447436
1 4533288 -18188515
1 325777951 -373447097
3 6 8 456939093 -399799069
1 73033724 109524128
2
1 -119882716 -197206146
1 405919043 56096899
3 2 2 -434020917 -507928325
1 194762428 -191856039
1 -231480276 321394560
1 -374189602 -272634012
2
2
3 1 10 -519778786 421304992
1 -64023759 -218345759
2
1 -258056572 251159956
3 7 7 -69923903 -476255230
3 8 9 -49789535 83535953
1 -204110646 121292901
1 -84974505 357880126
3 10 10 -530790609 117087230
1 -476297162 201367841
3 4 4 -483706381 -56436227
2
3 10 10 -251723184 2828040
1 495592214 -448467248
2
3 8 14 -16375545 -382800490
2
1 533670276 -510994079
3 2 6 -318391393 -483150080
2
1 466514043 -332126184
2
3 11 11 -262021640 39865780
3 8 8 206335354 -299221670
1 86716814 -204146250
3 14 14 373262713 484182573
2
1 -230173308 515314576
2
1 -312928412 135660700
3 12 12 455627747 225910032
1 -235833412 495451585
1 488418173 -199965949
2
1 -142222419 464414739
2
3 6 9 -96270691 -211830657
3 9 10 214436109 229618073
1 515375178 -341590516
2
2
2
3 12 12 -531551132 501407164
3 4 13 218980784 221910859
2
1 -12348975 165012186
3 10 10 -168767315 176657872
1 468122024 -287402012
1 -758242 38625536
1 -367914609 -401648587
3 7 8 -431561068 -390240933
2
3 12 13 331072441 -210489538
3 4 10 474474002 -50331411
2
1 271769992 493810968
2
3 14 14 498214393 217573234
3 5 6 97114651 345226842
1 -529896626 223321499
2
3 1 14 -33312539 -116968981
3 1 3 327999721 124358965
3 5 8 40362651 -250720403
1 -32222419 -115686123
2
1 -39040926 129948706
2
3 10 13 490498373 -309678342
3 2 11 -249595105 428663241
2
3 10 10 447367514 -274743429
3 13 13 -184944138 -403534785
2
2
1 -321901475 35309355
3 3 11 -370613602 392326581
1 -405989265 477367816
3 2 9 -459492033 -311493712
1 -380668239 -98404475
3 12 12 339964030 -193181397
2
3 6 13 88568342 478291630
1 -294777502 492512739
2
1 -313435251 262195780
3 13 14 -502328691 -178973700
2
1 -289501955 282477524
1 -536557702 -292331478
3 6 13 -448446809 -307955580
1 -144263588 92095915
2
1 332910462 111879396
3 9 15 -54854606 137090427
3 3 6 409211310 -197351370
2
1 -167466384 28915198
2
3 13 14 -356516068 487912474
2
3 1 3 -13901050 420612185
1 -6106557 217248957
1 193229295 -200472139
2
3 10 14 -334138128 398800671
3 6 10 -280187270 -434114330
2
3 14 14 224904094 189279549
1 -169242667 495798388
3 4 5 -496651616 -218642518
2
3 7 9 283604212 -9054779
3 7 11 139518107 -311774095
1 147763509 153103040
3 9 13 -150857273 -257343039
1 -417295834 416000596
1 -326192836 -148134123
2
1 74021123 29929535
3 12 15 431225624 72454871
1 209614768 -263908351
2
3 7 15 487579885 132124137
1 145317500 -490694690
1 438067984 -253608243
1 -213553692 431489950
3 13 19 -82358282 458712672
3 5 16 361371542 525951
2
3 17 17 284197085 -474261717
2
1 -19640771 -302866745
3 3 7 -219003971 -419249731
2
2
2
3 15 15 9580326 405905305
1 -474944231 -259680560
2
1 295232117 331894690
2
2
2
2
3 13 13 -441334835 498956350
1 -434713643 -460185866
1 386832427 -65025246
1 31397519 114037445
1 178246731 102853129
1 33081606 329634434
1 -101458826 -410549708
1 -328759686 139381537
3 14 15 -154548736 -372176292
3 14 17 172322271 -266619962
1 -248717090 534198515
3 6 13 -525821948 -336014657
1 21383755 -76805662
2
3 20 21 242939513 24733170
1 -302316776 301091817
1 158211361 -288966124
1 364048432 -327759246
2
2
2
2
2
1 -87990584 360943697
1 429850901 224848852
2
1 -416015944 -246091876
1 259450857 -176193068
2
1 -351949365 233746226
2
1 122007710 524812688
2
1 182536501 162394697
3 20 21 201585077 -386265219
3 15 19 407762221 -97976799
3 20 22 535415132 237942258
2
1 -124346901 -82636216
2
2
2
1 -96830120 6506100
3 2 14 43628931 218105403
3 3 4 15101675 518679745
3 11 12 399867672 -190934436
1 -238236673 -308654596
3 2 19 -265007317 -522866266
3 17 20 -221671688 -365208680
2
1 -315820503 387325812
2
1 -461312793 488749079
1 -342077364 196592304
1 -384929173 390775119
2
3 8 9 65018458 -233651485
3 19 21 -433955519 -258514166
3 16 17 255391982 443530342
2
3 10 15 404389696 -518083591
2
1 -174717200 -197768629
2
3 15 20 -82488709 -50163141
3 7 15 460365212 -57133044
1 -268004999 -323606232
3 9 10 -213902155 -144046631
2
3 15 15 -477330162 -35346090
3 17 18 445738245 494382553
2
3 14 15 -332825730 -74408318
1 -436280582 26677809
1 461399977 -482155523
3 12 19 -131573473 -394996565
2
2
3 2 19 262040665 -230514140
1 -116833906 -302812246
2
3 17 19 -218266171 -286762310
2
1 193663860 120777203
2
2
2
2
2
1 -413359584 -244963248
1 -49181992 -134756416
1 489223252 202558375
3 5 8 326145885 -175725933
2
1 -411069937 265448110
1 226116145 -312537234
3 13 16 -4619795 181794868
2
1 258486163 127937534
3 13 18 -292737429 290816381
2
3 2 7 -282639177 364661542
3 13 16 -273224645 231257074
2
2
1 411231241 -511130046
2
2
2
3 10 12 -52581597 -245298119
1 470533397 -142710019
3 10 11 -534438180 258059164
1 350018561 -125035629
3 6 9 -385443190 -97080389
3 2 2 81692243 371550289
3 14 14 221665901 -215080860
1 -288269878 326354949
3 4 5 447208794 528245118
3 7 16 -209269094 -103789706
1 51987347 23142834
3 1 4 169755785 -198956686
1 -297257733 481843616
1 -380322985 -418274892
3 19 19 -377436123 -4721651
1 -524425079 -245195452
3 3 5 -171697284 -325604498
3 3 17 204714106 483644937
2
1 -342570415 506075664
3 13 16 -533253187 -177521170
1 495987863 497496175
1 206599171 -24888546
3 14 18 -333154243 361110278
3 2 13 485120367 -86287369
3 15 17 171801498 321253538
2
2
1 494596906 65392890
3 10 20 -378894063 -398663445
3 11 17 423986703 -353473302
2
3 18 20 -236355825 362730246
2
1 -215475302 -332480589
2
1 -302717777 318028437
3 7 13 -356348843 126234739
1 281749882 -506897958
1 485587745 51988037
1 534780584 215045061
1 466786129 65077658
2
1 -30110128 -82352900
3 19 19 -53763197 -347999448
3 6 15 160743457 -505227442
3 5 11 -87893180 -515676426
3 13 23 -107884346 213612740
3 17 22 385371610 184719069
1 338977232 -462633403
3 5 22 -514532933 -401962631
2
2
3 16 16 -116063717 -517784015
1 248796361 350231786
2
1 184914340 -240423992
3 18 24 -230223770 -248803182
3 14 16 -337016898 509876072
3 1 7 -219822213 81977422
1 335640187 139113382
2
3 13 20 -432773410 -159599003
2
3 8 15 391940406 382684920
2
1 -102557202 16735359
2
1 -388880152 -183723447
3 2 11 457395314 -420637262
1 -245402424 476781072
2
1 74816999 -452707741
1 -210185996 515836580
1 -78859392 -279852892
2
3 10 19 133401539 -506337682
3 4 22 -80994098 -240752517
3 22 24 488586762 106065794
2
1 -408949523 273218432
2
2
3 14 16 275001702 -455201455
2
2
1 82806162 200045235
3 14 15 191299424 128535722
1 -117299162 -360170234
1 -233036577 -276577506
1 279112690 -224301039
2
1 -316920227 462189333
3 12 13 -71726056 498459295
1 -220665483 273385240
1 439003498 112413580
2
1 -179476915 -358513000
1 164337467 -502064240
2
3 19 22 -470174895 320626433
3 13 18 412500216 516428716
3 2 6 319050784 -303353433
2
1 452762381 224847613
2
3 11 22 -118458100 50861580//出错点
1 -58637075 341316780
1 -357279237 -153846473
3 11 12 -264786006 429570200
3 17 24 -196930970 -314744328
3 3 22 -78128509 -169511405
2
1 -458924878 -203114185
2
2
1 275297493 469984556
2
3 24 24 -389380958 -52092052
1 6239270 402414015
1 455015012 -485833139
1 311268073 521581626
2
2
2
1 -356285203 189632015
2
2
3 3 5 265932430 66029476
2
1 501282320 414801642
3 4 11 360026198 3644955
1 319477939 -336002569
1 -441329206 129349745
1 -344304435 163486906
2
1 6097006 239663681
2
3 2 9 395773258 415313407
1 -331941189 -360094847
1 -58328393 35886043
3 7 18 -524301686 -244890088
1 433018184 -312514760
3 5 20 58275868 234275023
3 5 11 475902361 -284424357
3 23 23 231799568 62589432
1 223837799 -149789194
3 5 12 -43777946 400774559
2
3 12 25 -366305974 -464364068
1 -513199523 6285991
1 -535775391 -44800769
2
1 178973484 1743484
2
3 24 31 -39054585 452231263
1 298401797 242186406
3 21 31 451102252 153969528
3 5 11 312462812 -222431392
3 16 19 -77022992 465754793
3 12 24 111700028 200590161
2
2
1 -269470699 530490051
3 17 29 451785610 -190739053
1 373199640 -37096909
2
3 19 20 -32466381 429893646
1 -380150207 -259860497
3 24 32 508709698 -276786814
1 128413002 503250618
1 -160326699 447045769
2
2
2
1 448413215 -259649642
3 8 8 530276243 -311493989
1 -498712802 -125315315
3 31 33 328545289 41491823
3 28 33 -296798517 228682705
2
2
1 195065905 -289957036
1 429334063 91763318
1 317361626 529423098
3 22 30 86286306 -296718817
2
3 24 25 369272628 246552095
1 181146055 265841418
1 225072882 198499045
2
2
1 -51261255 -463502519
2
2
2
3 3 21 295018766 -244341747
1 106864898 60287937
3 29 30 -106608406 -526357120
1 -44996381 -51395412
2
3 7 28 -263844108 -373825554
3 29 32 223588829 447589008
1 289588715 81256220
2
2
1 436674040 62762700
3 4 25 -101165922 -319775826
2
2
3 27 27 -231058411 -207963416
3 14 25 467957671 14748051
2
2
1 -115572921 101326308
3 2 26 343343169 -66550836
1 486329011 -103551730
2
2
1 70352544 50384302
1 16066435 406441994
1 -531704767 -157200635
3 31 31 27388213 284266550
3 29 29 297750610 -248204921
3 5 31 -308864785 172397208
3 13 14 331541216 -193286888
2
2
3 24 27 501127960 523658979
2
1 353511125 -375468915
2
1 397400908 -465972458
2
2
1 508541302 -306551910
3 23 25 324393153 -469772085
2
3 9 23 103692053 -266198450
2
2
1 -44089300 -263702183
2
3 11 23 -354993314 337777787
1 -290203118 -289866883
2
2
3 1 21 -134604384 209431093
2
2
1 65641285 -501942537
3 6 12 -157956152 -394452865
3 12 21 -254379399 327366941
2
3 8 18 -465685781 -269928938
1 -192317913 341001939
2
1 -216695099 -45612239
3 8 13 422697075 -138935141
2
2
3 20 21 59684186 425905374
2
1 285749291 77700784
2
1 92741914 424469000
1 298595966 -501882359
2
3 6 11 -114661739 469506118
3 2 4 52516147 -322951171
2
2
1 47561533 90556451
2
1 234372061 299692774
3 18 20 -390759428 95627078
3 3 4 386552012 259635051
1 -212718600 -75118092
1 383962993 68804688
1 416828651 396870532
2
1 367032632 -53255350
3 6 13 351302843 311271409
3 10 18 133602418 111125115
2
2
1 276418464 -247994227
1 207047181 -277434299
1 84302835 -99256263
1 342578192 21363441
2
3 5 22 -373021970 -374636529
1 -145505314 462863996
1 197251816 442446704
3 20 21 -312437199 263566162
2
3 18 18 -52143889 -164521859
3 17 19 -93318086 -536537185
1 49464969 -263469558
2
3 13 15 118524409 296408881
3 15 23 -160219524 -276893619
2
1 480329058 526068745
2
1 501957021 -534795628
1 385251120 431943631
3 17 19 41231683 418856145
2
3 25 25 -436276206 -235965988
1 -141122538 324017272
1 40952015 357913525
1 -87776635 -329763837
3 11 15 -439155588 -305016651
1 -45764677 46312259
3 29 29 158721831 171108650
1 -302302799 -225167471
2
2
3 26 27 506554433 83200087
3 8 11 -31229244 -246907934
1 -91441912 -400651158
2
2
2
3 11 16 -151598078 395517362
2
3 17 20 -477613984 160908650
2
3 11 23 -56227830 106176296
1 -518113529 -135317909
2
2
3 2 17 -233639996 297532498
2
2
2
1 215112927 25243750
2
1 270137471 252823880
1 -515813846 373898257
1 -206676234 418852393
1 37115455 292509656
3 1 13 151599620 488057583
2
1 -193718312 320726019
3 13 22 204679845 -259750137
2
2
3 16 21 43459654 -499941342
2
1 253846205 312544856
2
1 144082578 -211566496
3 22 22 430068983 60434780
1 498224920 -486162696
3 18 18 431724401 -217949509
1 7578475 -456619090
1 -132963711 13316434
1 -352285260 322257085
2
3 9 20 -461796755 449089338
1 103596402 59154034
3 18 25 -441417714 -92881513
1 -343373721 170884568
1 -495059956 -285461525
1 -9400281 429983034
1 279667213 -82880579
3 20 23 -4703971 -351625616
1 -60707300 -202637822
2
3 6 30 236926728 -178601822
2
2
3 23 28 169175490 177895334
2
3 25 26 189485754 -302303765
1 85907658 -25986438
3 9 24 -217979484 -79751980
1 291588655 -199457814
1 -18483313 -200579670
1 -149253945 -399468238
1 422934767 -433206559
1 493527178 -454888552
1 52665680 216107880
2
3 4 4 194006190 366986733
1 255063099 -431721569
2
3 6 7 -388309449 -357081286
3 4 27 121132736 159530742
2
2
3 17 25 13021256 262327285
1 -39610933 -83188438
3 14 22 243007959 -499248094
2
1 -468176261 126215903
1 -427377949 170525999
1 -479755650 -102531358
2
1 -281145367 406366773
2
3 16 33 516304506 -25069612
2
3 6 26 418355154 -50941969
2
2
2
2
2
2
2
2
1 405711007 -293786435
2
3 9 21 -506598069 471360577
3 24 24 -159954511 417426597
2
3 13 22 -223689184 384790072
3 12 15 -533414943 -275368950
3 14 20 -316403588 299501836
3 3 21 289915756 -298545500
2
2
2
1 -521502626 -462619005
2
2
2
2
1 -9441101 -401687572
1 287245170 485568102
2
2
2
2
3 7 11 3648065 203635672
3 4 13 -168516326 -459889358
3 9 15 -201927406 -285590478
2
3 13 13 456663596 509922289
1 -240671144 207867831
3 13 15 249243197 -224654853
1 163531374 240596131
2
2
1 408148572 474201701
3 9 15 -171633896 -474275728
1 -386759041 -445484696
3 11 14 135060212 -96258606
2
1 -116995712 -152617754
2
2
2
2
1 -458456169 330595029
2
2
1 -380509201 378740693
3 11 11 -121887960 -343885476
2
3 7 7 -326967209 227072982
2
3 7 8 505086049 -193144367
1 427143112 284626975
1 -276949537 50613141
1 506191153 478643855
2
2
3 6 6 -261727136 -333678641
2
1 -395103586 -377195913
2
1 -29148269 507527706
2
2
3 8 8 -197548691 6981683
1 -309244790 238014947
1 -480190579 -52070391
3 4 5 5856902 -214465678
1 7870533 -246683062
1 388112984 415851082
3 8 13 315579513 -134892201
2
2
1 496770208 38244264
1 346907818 302037034
2
1 -502822672 -181144427
1 -357997482 -272960553
1 -122253287 449884897
2
1 -253669339 115533825
3 3 8 -75252798 398506119
2
1 477666252 -474609621
1 528388339 -278320861
1 -445429356 249493346
3 12 12 393389059 -446064098
3 7 8 -203847596 -421981843
3 9 12 516657702 6196842
3 9 9 -333442921 57810927
2
2
1 261907112 519549328
1 -158588189 293207072
2
2
1 200207824 503651869
3 9 10 11628582 -143805955
1 -68930952 -365636758
2
3 6 11 269885256 -352229127
3 13 16 42309603 82152631
1 -136799854 91573583
3 10 12 -416602605 -526303871
1 281528867 83496945
3 17 18 -273350192 -216572488
2
2
2
1 -414134917 55909907
2
1 -76515632 331237484
2
2
3 14 14 139106988 177039528
3 6 9 -455560918 15469817
2
2
3 1 11 -245615526 -500438618
1 57811940 -284776410
2
1 454845492 -6071818
3 13 13 476529650 79540651
2
3 5 5 399288642 -93773967
3 4 7 291884485 320096742
1 535327790 -165465977
2
1 338023686 184142968
1 -115072543 353954304
3 5 9 -425544609 156780493
3 3 13 264562221 396946375
2
3 6 12 75987482 531809572
3 5 11 327082029 -44119895
1 -98915206 -27625357
3 6 6 -182034329 -313354077
2
2
3 12 12 322519032 -20956073
1 96917498 -491528927
1 313793468 150102125
3 6 14 -268057680 402448597
2
1 5529445 -120991382
1 -460532857 142372479
2
0
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页