请求添加 hack

B3637 最长上升子序列

Andy_WA @ 2024-07-21 09:07:30

原因

#include<bits/stdc++.h>
using namespace std;
/*Optimization series
#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
*/
long long n,f[100010],cnt;
int main(){
    scanf("%lld",&n);
    for(long long i=1;i<=n;i++){
        long long x;
        scanf("%lld",&x);
        if(x>f[cnt]){
            f[++cnt]=x;
        }else{
            f[/*This*/upper_bound(f+1,f+cnt+1,x)-f]=x;
        }
    }
    printf("%lld",cnt);
    return 0;
}

以上代码是错误的,应为查找的是右边界。

但在洛谷上 AC 了。

请求添加

Input

779
996 5613 1893 3585 5211 1198 6230 8596 2929 6776 2606 3980 4353 5299 9148 9812 1772 4590 7330 1772 3461 5209 6278 3157 4453 1849 7155 5320 5783 1159 9189 6319 285 4481 8305 5179 5193 8600 8074 5404 8389 4209 6109 5452 3324 8276 4966 7029 7614 3312 1993 9382 3152 3989 7242 8626 8970 3528 6485 6448 3207 9011 2791 9484 5608 7922 1922 5333 4306 6935 9965 4301 3419 1014 1282 6172 2609 4906 8383 1261 5779 7614 4357 1008 4710 5333 2476 86 4929 3091 5997 8168 2465 8690 3382 7889 8742 254 9162 4095 3620 1689 4095 8502 1251 2888 4222 8621 96 6771 1094 5310 7546 4841 8296 2154 3045 986 9532 3651 8682 5483 8780 9809 2325 4374 836 5950 8310 9383 9368 8250 8689 7776 2510 4215 1246 4886 7343 8077 3801 8241 3835 6456 6499 7648 8130 2053 4175 7843 2715 2809 4038 7855 9985 6394 2947 8270 5664 6227 6744 6652 9165 5877 3560 1611 5996 8929 4778 1904 3319 766 6268 131 1198 5993 9646 451 4849 7664 9171 3184 7720 9494 4212 6623 6860 7587 5388 602 5163 8129 1692 7485 839 4032 5801 4842 5208 674 7721 5558 7894 5104 2586 9002 7487 2403 699 7762 2455 7291 1 1985 6691 4460 9012 8140 5437 8380 1359 9322 8451 6727 8035 891 7688 7563 836 9902 5970 2476 7051 3785 3770 8145 7122 5892 383 2677 3051 830 8419 7479 2634 311 5916 2634 6566 7300 357 4038 9404 6095 8890 7605 5452 4212 1376 2663 3946 4853 5338 7646 9614 359 5909 3923 2420 131 2669 2735 253 9686 373 7907 7533 7569 4724 8801 8027 7497 8675 1792 8515 6072 3920 4923 8087 4618 493 3331 7242 7394 7905 3193 2596 5506 8454 1861 3329 1942 5577 4498 2050 9594 3806 4591 5114 3071 3802 1807 2465 75 535 3434 4933 6517 2275 3514 949 2829 3233 3631 3076 594 5190 1147 4908 4954 3229 7607 6600 8334 7860 7836 7224 5466 1629 9419 785 8914 2798 4662 4891 8680 8337 9908 9857 5975 8629 1473 3556 1691 5195 1659 537 1286 1321 7846 1798 4509 6571 8809 9161 9289 8269 2607 5633 7015 7922 2072 7619 9976 464 8117 4454 8946 450 7215 2951 1613 2884 7568 8054 2966 7419 8760 967 2879 2907 9098 9122 4477 5870 76 228 1433 9156 9163 8300 6208 6605 6260 1726 6307 9217 2316 6580 2344 2456 9994 6615 3847 3683 3111 9930 6893 9377 3157 2224 5340 5866 901 3297 1721 2712 4495 8265 1309 6569 1406 1657 3317 3887 4545 2724 5650 80 4908 5987 3098 1078 4117 4274 7157 4799 4839 3905 544 2494 9506 8723 3309 6168 89 1202 1986 3240 7170 2233 6549 5837 6410 8537 9687 6087 4767 9829 8326 4349 1556 6165 760 8873 2224 5255 839 8554 1295 3513 7872 9009 7455 1985 899 1477 85 6789 4198 7183 3174 6995 1922 1038 7966 8011 4820 4965 5084 5231 6973 9800 3428 3962 3011 9571 444 3430 1246 819 9167 8532 812 1098 2621 200 9069 8159 4073 2827 8247 5868 8825 39 8947 2958 1946 6991 7310 9673 1946 4324 6249 946 5084 6016 7882 2434 2103 2687 3561 9482 151 993 356 5497 1035 5738 3307 2600 5141 7715 8292 2367 3117 2086 792 5261 6655 9605 8340 7299 9928 899 3961 3145 4189 441 8653 7401 467 1187 5032 8431 2888 7937 1368 1327 9625 5063 5693 5983 1402 9581 861 2184 7026 5087 1553 457 6107 1821 9047 5268 3030 6077 3566 367 8645 2372 7101 1381 3312 5969 6972 1251 2993 3858 360 9915 4663 1965 7764 7684 5943 5737 2963 5463 1206 338 2975 9668 48 9288 2453 5755 3621 608 1847 6260 4374 722 7240 5927 5340 6697 6835 2949 7506 9190 3333 7837 9078 3902 2126 8519 2828 9687 2421 4781 2827 1423 4481 8957 3246 9445 8080 5993 5956 2254 1731 8310 3712 2449 6736 9936 8089 3211 8511 4405 6875 525 4958 5590 8517 6793 494 9 6825 2408 5779 1353 2912 342 7783 884 8675 1860 6759 4492 2643 3686 7765 9015 3665 8291 2756 895 9846 1080 8288 9571 301 2549 2867 1620 2260 2638 4305 9577 5983 8859 2077 6379 3253 7704 2529 8346 6209 8806 2091 9270 9170 5752 9258 4278 7083 6567 5205 5909 84 5839 7748 5936 7623 1968 3925 6505 6100 3293 2024 6919 7773 4768 5284 8708 9210 3380 7072 1885 7895 8890 858 5494 4481 581 8260 996 2061 4254 6562 1648 7809 7808 7245 7195 9881 9933 6803 7444 6419 6007 1028 4532 9699 5640 2614 9859

Output

49

by LynnvonLemon @ 2024-08-02 11:14:45

为什么是lower\_boundupper\_bound不行呢请问


by Andy_WA @ 2024-08-02 13:42:43

@LynnvonLemon 不是,一个是找左边界,一个是找右边界,本质性不同啊。。。


by Andy_WA @ 2024-08-02 13:44:49

这里要求严格递增 (<),而 upper_bound 是求不严格单调递增 (\le)


by LynnvonLemon @ 2024-08-02 14:25:15

thanks

by Andy_WA @ 2024-08-02 17:46:45

thanks


by Taoran_01 @ 2024-08-06 22:38:47

一组小的,方便大家手模,不知道能不能用得上。

input:

6
1 3 5 3 3 4

output:

3

|