{"id":119506,"date":"2026-10-29T21:24:45","date_gmt":"2026-10-29T13:24:45","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/119506.html"},"modified":"2026-10-29T21:24:45","modified_gmt":"2026-10-29T13:24:45","slug":"%e6%8b%bc%e5%a4%9a%e5%a4%9a%e6%a0%a1%e6%8b%9b%e7%ac%94%e8%af%95%e7%9c%9f%e9%a2%98-10-26-%e6%a0%87%e4%bb%b7%e5%b7%ae%e5%86%85%e9%80%89%e8%b4%adc-py-java-js-go","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/119506.html","title":{"rendered":"\u62fc\u591a\u591a\u6821\u62db\u7b14\u8bd5\u771f\u9898 10.26 - \u6807\u4ef7\u5dee\u5185\u9009\u8d2d(C++\/Py\/Java \/Js\/Go)"},"content":{"rendered":"<h2>\u6807\u4ef7\u5dee\u5185\u9009\u8d2d<\/h2>\n<p>\u62fc\u591a\u591a 10\u670826\u53f7 \u7b14\u8bd5\u771f\u9898 \u7b2c\u56db\u9898<\/p>\n<p>\u62fc\u591a\u591a\u771f\u9898\u76ee\u5f55\u70b9\u51fb\u67e5\u770b: \u62fc\u591a\u591a\u7b14\u8bd5\u771f\u9898\u9898\u5e93\u76ee\u5f55&#xff5c;\u7b14\u8bd5\u9898\u5e93 &#043; \u7b97\u6cd5\u8003\u70b9\u8be6\u89e3<\/p>\n<h2>\u9898\u76ee\u5185\u5bb9<\/h2>\n<p>\u591a\u591a\u7231\u5403\u6a58\u5b50\u3002\u8fd9\u5929\u4ed6\u505c\u5728\u4e00\u5bb6\u6c34\u679c\u644a\u524d\u9762&#xff0c;\u644a\u4e0a\u4f9d\u6b21\u6446\u7740 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        M<\/p>\n<p>       M<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6833em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.109em\">M<\/span><\/span><\/span><\/span><\/span> \u79cd\u5f7c\u6b64\u4e0d\u540c\u7684\u6a58\u5b50\u3002\u8001\u677f\u6bcf\u4e00\u5929\u90fd\u4f1a\u9009\u4e2d\u5176\u4e2d\u4e00\u79cd&#xff0c;\u628a\u8fd9\u4e00\u5929\u7684\u6807\u4ef7\u6362\u6210\u4e00\u4e2a\u65b0\u6570&#xff0c;\u6362\u5b8c\u5c31\u505c\u5728\u8fd9\u4e2a\u65b0\u6570\u4e0a&#xff0c;\u4e0d\u4f1a\u81ea\u5df1\u53d8\u56de\u53bb\u3002 \u6bcf\u6539\u5b8c\u4e00\u5929&#xff0c;\u591a\u591a\u90fd\u8981\u7b97\u4e00\u7b97&#xff1a;\u53ea\u6311\u6807\u4ef7\u6700\u9ad8\u4e0e\u6700\u4f4e\u76f8\u5dee\u4e0d\u8d85\u8fc7 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        G<\/p>\n<p>       G<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6833em\"><\/span><span class=\"mord mathnormal\">G<\/span><\/span><\/span><\/span><\/span> \u7684\u79cd\u7c7b\u6765\u4e70&#xff0c;\u6700\u591a\u53ef\u4ee5\u4e70\u8fdb\u51e0\u79cd\u3002\u6807\u4ef7\u4e00\u6837\u7684\u6a58\u5b50\u4ecd\u7136\u5404\u7b97\u4e00\u79cd\u3002<\/p>\n<h2>\u8f93\u5165\u63cf\u8ff0<\/h2>\n<p>\u9996\u884c\u4e24\u4e2a\u6574\u6570 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        M<\/p>\n<p>        ,<\/p>\n<p>        G<\/p>\n<p>       M,G<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.8778em;vertical-align: -0.1944em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.109em\">M<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord mathnormal\">G<\/span><\/span><\/span><\/span><\/span>&#xff08;<span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        1<\/p>\n<p>        \u2264<\/p>\n<p>        M<\/p>\n<p>        \u2264<\/p>\n<p>        5<\/p>\n<p>        \u00d7<\/p>\n<p>         10<\/p>\n<p>         4<\/p>\n<p>        ,<\/p>\n<p>        0<\/p>\n<p>        \u2264<\/p>\n<p>        G<\/p>\n<p>        \u2264<\/p>\n<p>         10<\/p>\n<p>         8<\/p>\n<p>       1 \\\\le M \\\\le 5 \\\\times 10^4,0 \\\\le G \\\\le 10^8<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.7804em;vertical-align: -0.136em\"><\/span><span class=\"mord\">1<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">\u2264<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8193em;vertical-align: -0.136em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.109em\">M<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">\u2264<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.7278em;vertical-align: -0.0833em\"><\/span><span class=\"mord\">5<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><span class=\"mbin\">\u00d7<\/span><span class=\"mspace\" style=\"margin-right: 0.2222em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 1.0085em;vertical-align: -0.1944em\"><\/span><span class=\"mord\">1<\/span><span class=\"mord\"><span class=\"mord\">0<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.8141em\"><span class=\"\" style=\"top: -3.063em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">4<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">0<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">\u2264<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8193em;vertical-align: -0.136em\"><\/span><span class=\"mord mathnormal\">G<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">\u2264<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8141em\"><\/span><span class=\"mord\">1<\/span><span class=\"mord\"><span class=\"mord\">0<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.8141em\"><span class=\"\" style=\"top: -3.063em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">8<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span>&#xff09;&#xff0c;\u7a7a\u683c\u9694\u5f00&#xff0c;\u4f9d\u6b21\u662f\u6a58\u5b50\u6709\u51e0\u79cd\u3001\u5141\u8bb8\u7684\u6700\u5927\u6807\u4ef7\u5dee\u3002 \u7b2c\u4e8c\u884c <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        M<\/p>\n<p>       M<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6833em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.109em\">M<\/span><\/span><\/span><\/span><\/span> \u4e2a\u6b63\u6574\u6570 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>         W<\/p>\n<p>         1<\/p>\n<p>        ,<\/p>\n<p>         W<\/p>\n<p>         2<\/p>\n<p>        ,<\/p>\n<p>        \u2026<\/p>\n<p>        ,<\/p>\n<p>         W<\/p>\n<p>         M<\/p>\n<p>       W_1,W_2,\\\\dots,W_M<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.8778em;vertical-align: -0.1944em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">W<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3011em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.1389em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">1<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">W<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3011em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.1389em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">2<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"minner\">\u2026<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">W<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3283em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.1389em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\" style=\"margin-right: 0.109em\">M<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span>&#xff08;<span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        1<\/p>\n<p>        \u2264<\/p>\n<p>         W<\/p>\n<p>         i<\/p>\n<p>        \u2264<\/p>\n<p>         10<\/p>\n<p>         8<\/p>\n<p>       1 \\\\le W_i \\\\le 10^8<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.7804em;vertical-align: -0.136em\"><\/span><span class=\"mord\">1<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">\u2264<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8333em;vertical-align: -0.15em\"><\/span><span class=\"mord\"><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">W<\/span><span class=\"msupsub\"><span class=\"vlist-t vlist-t2\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.3117em\"><span class=\"\" style=\"top: -2.55em;margin-left: -0.1389em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mathnormal mtight\">i<\/span><\/span><\/span><\/span><span class=\"vlist-s\">\u200b<\/span><\/span><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.15em\"><span class=\"\"><\/span><\/span><\/span><\/span><\/span><\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">\u2264<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8141em\"><\/span><span class=\"mord\">1<\/span><span class=\"mord\"><span class=\"mord\">0<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.8141em\"><span class=\"\" style=\"top: -3.063em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">8<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span>&#xff09;&#xff0c;\u7a7a\u683c\u9694\u5f00&#xff0c;\u662f\u6309\u6446\u653e\u987a\u5e8f\u6bcf\u79cd\u6a58\u5b50\u4e00\u5f00\u59cb\u7684\u6807\u4ef7\u3002 \u7b2c\u4e09\u884c\u5355\u72ec\u5199\u5929\u6570 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        T<\/p>\n<p>       T<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6833em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">T<\/span><\/span><\/span><\/span><\/span>&#xff08;<span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        1<\/p>\n<p>        \u2264<\/p>\n<p>        T<\/p>\n<p>        \u2264<\/p>\n<p>         10<\/p>\n<p>         5<\/p>\n<p>       1 \\\\le T \\\\le 10^5<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.7804em;vertical-align: -0.136em\"><\/span><span class=\"mord\">1<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">\u2264<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8193em;vertical-align: -0.136em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">T<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">\u2264<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8141em\"><\/span><span class=\"mord\">1<\/span><span class=\"mord\"><span class=\"mord\">0<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.8141em\"><span class=\"\" style=\"top: -3.063em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">5<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span>&#xff09;\u3002 \u5176\u540e\u6bcf\u4e00\u5929\u5360\u4e00\u884c&#xff0c;\u5148\u5199\u88ab\u6539\u7684\u90a3\u79cd\u6a58\u5b50\u7684\u5e8f\u53f7 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        B<\/p>\n<p>       B<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6833em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0502em\">B<\/span><\/span><\/span><\/span><\/span>&#xff0c;\u518d\u5199\u5b83\u7684\u65b0\u6807\u4ef7 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        C<\/p>\n<p>       C<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6833em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0715em\">C<\/span><\/span><\/span><\/span><\/span>&#xff08;<span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        1<\/p>\n<p>        \u2264<\/p>\n<p>        B<\/p>\n<p>        \u2264<\/p>\n<p>        M<\/p>\n<p>        ,<\/p>\n<p>        1<\/p>\n<p>        \u2264<\/p>\n<p>        C<\/p>\n<p>        \u2264<\/p>\n<p>         10<\/p>\n<p>         8<\/p>\n<p>       1 \\\\le B \\\\le M,1 \\\\le C \\\\le 10^8<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.7804em;vertical-align: -0.136em\"><\/span><span class=\"mord\">1<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">\u2264<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8193em;vertical-align: -0.136em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0502em\">B<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">\u2264<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8778em;vertical-align: -0.1944em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.109em\">M<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">1<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">\u2264<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8193em;vertical-align: -0.136em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.0715em\">C<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><span class=\"mrel\">\u2264<\/span><span class=\"mspace\" style=\"margin-right: 0.2778em\"><\/span><\/span><span class=\"base\"><span class=\"strut\" style=\"height: 0.8141em\"><\/span><span class=\"mord\">1<\/span><span class=\"mord\"><span class=\"mord\">0<\/span><span class=\"msupsub\"><span class=\"vlist-t\"><span class=\"vlist-r\"><span class=\"vlist\" style=\"height: 0.8141em\"><span class=\"\" style=\"top: -3.063em;margin-right: 0.05em\"><span class=\"pstrut\" style=\"height: 2.7em\"><\/span><span class=\"sizing reset-size6 size3 mtight\"><span class=\"mord mtight\">8<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span>&#xff09;\u3002<\/p>\n<h2>\u8f93\u51fa\u63cf\u8ff0<\/h2>\n<p>\u4e00\u5171\u5199\u51fa <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        T<\/p>\n<p>       T<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6833em\"><\/span><span class=\"mord mathnormal\" style=\"margin-right: 0.1389em\">T<\/span><\/span><\/span><\/span><\/span> \u884c\u3002\u7b2c <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        i<\/p>\n<p>       i<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6595em\"><\/span><span class=\"mord mathnormal\">i<\/span><\/span><\/span><\/span><\/span> \u884c\u4e00\u4e2a\u6574\u6570&#xff0c;\u8868\u793a\u7b2c <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        i<\/p>\n<p>       i<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6595em\"><\/span><span class=\"mord mathnormal\">i<\/span><\/span><\/span><\/span><\/span> \u5929\u6539\u5b8c\u4e4b\u540e&#xff0c;\u6807\u4ef7\u5dee\u4e0d\u8d85\u8fc7 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        G<\/p>\n<p>       G<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6833em\"><\/span><span class=\"mord mathnormal\">G<\/span><\/span><\/span><\/span><\/span> \u65f6\u6700\u591a\u80fd\u4e70\u8fdb\u51e0\u79cd\u3002<\/p>\n<h2>\u6837\u4f8b1<\/h2>\n<p>\u8f93\u5165<\/p>\n<p>4 3<br \/>\n4 8 1 6<br \/>\n3<br \/>\n2 5<br \/>\n3 4<br \/>\n4 20<\/p>\n<p>\u8f93\u51fa<\/p>\n<p>3<br \/>\n4<br \/>\n3<\/p>\n<p>\u8bf4\u660e \u7b2c <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        2<\/p>\n<p>       2<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">2<\/span><\/span><\/span><\/span><\/span> \u79cd\u6539\u6210 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        5<\/p>\n<p>       5<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">5<\/span><\/span><\/span><\/span><\/span> \u540e&#xff0c;\u6807\u4ef7\u662f <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        4<\/p>\n<p>        ,<\/p>\n<p>        5<\/p>\n<p>        ,<\/p>\n<p>        1<\/p>\n<p>        ,<\/p>\n<p>        6<\/p>\n<p>       4,5,1,6<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.8389em;vertical-align: -0.1944em\"><\/span><span class=\"mord\">4<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">5<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">1<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">6<\/span><\/span><\/span><\/span><\/span>\u3002<span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        4<\/p>\n<p>        ,<\/p>\n<p>        5<\/p>\n<p>        ,<\/p>\n<p>        6<\/p>\n<p>       4,5,6<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.8389em;vertical-align: -0.1944em\"><\/span><span class=\"mord\">4<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">5<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">6<\/span><\/span><\/span><\/span><\/span> \u7684\u6781\u5dee\u662f <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        2<\/p>\n<p>       2<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">2<\/span><\/span><\/span><\/span><\/span>&#xff0c;\u4e00\u5171 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        3<\/p>\n<p>       3<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">3<\/span><\/span><\/span><\/span><\/span> \u79cd&#xff1b;<span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        1<\/p>\n<p>       1<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">1<\/span><\/span><\/span><\/span><\/span> \u548c <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        4<\/p>\n<p>       4<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">4<\/span><\/span><\/span><\/span><\/span> \u4e5f\u80fd\u653e\u5728\u4e00\u8d77&#xff0c;\u4f46\u53ea\u6709 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        2<\/p>\n<p>       2<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">2<\/span><\/span><\/span><\/span><\/span> \u79cd\u3002 \u7b2c <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        3<\/p>\n<p>       3<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">3<\/span><\/span><\/span><\/span><\/span> \u79cd\u518d\u6539\u6210 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        4<\/p>\n<p>       4<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">4<\/span><\/span><\/span><\/span><\/span> \u540e&#xff0c;\u6807\u4ef7\u662f <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        4<\/p>\n<p>        ,<\/p>\n<p>        5<\/p>\n<p>        ,<\/p>\n<p>        4<\/p>\n<p>        ,<\/p>\n<p>        6<\/p>\n<p>       4,5,4,6<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.8389em;vertical-align: -0.1944em\"><\/span><span class=\"mord\">4<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">5<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">4<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">6<\/span><\/span><\/span><\/span><\/span>&#xff0c;\u5168\u4f53\u6781\u5dee\u662f <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        2<\/p>\n<p>       2<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">2<\/span><\/span><\/span><\/span><\/span>&#xff0c;\u7b54\u6848\u662f <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        4<\/p>\n<p>       4<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">4<\/span><\/span><\/span><\/span><\/span>\u3002 \u7b2c <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        4<\/p>\n<p>       4<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">4<\/span><\/span><\/span><\/span><\/span> \u79cd\u6539\u6210 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        20<\/p>\n<p>       20<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">20<\/span><\/span><\/span><\/span><\/span> \u540e&#xff0c;<span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        20<\/p>\n<p>       20<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">20<\/span><\/span><\/span><\/span><\/span> \u53ea\u80fd\u5355\u72ec\u7b97&#xff0c;<span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        4<\/p>\n<p>        ,<\/p>\n<p>        5<\/p>\n<p>        ,<\/p>\n<p>        4<\/p>\n<p>       4,5,4<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.8389em;vertical-align: -0.1944em\"><\/span><span class=\"mord\">4<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">5<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">4<\/span><\/span><\/span><\/span><\/span> \u7684\u6781\u5dee\u662f <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        1<\/p>\n<p>       1<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">1<\/span><\/span><\/span><\/span><\/span>&#xff0c;\u7b54\u6848\u662f <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        3<\/p>\n<p>       3<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">3<\/span><\/span><\/span><\/span><\/span>\u3002<\/p>\n<h2>\u6837\u4f8b2<\/h2>\n<p>\u8f93\u5165<\/p>\n<p>3 5<br \/>\n1 6 20<br \/>\n2<br \/>\n3 6<br \/>\n2 100<\/p>\n<p>\u8f93\u51fa<\/p>\n<p>3<br \/>\n2<\/p>\n<p>\u8bf4\u660e \u7b2c <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        3<\/p>\n<p>       3<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">3<\/span><\/span><\/span><\/span><\/span> \u79cd\u6539\u6210 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        6<\/p>\n<p>       6<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">6<\/span><\/span><\/span><\/span><\/span> \u540e&#xff0c;\u6807\u4ef7\u662f <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        1<\/p>\n<p>        ,<\/p>\n<p>        6<\/p>\n<p>        ,<\/p>\n<p>        6<\/p>\n<p>       1,6,6<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.8389em;vertical-align: -0.1944em\"><\/span><span class=\"mord\">1<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">6<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">6<\/span><\/span><\/span><\/span><\/span>\u3002<span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        6<\/p>\n<p>       6<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">6<\/span><\/span><\/span><\/span><\/span> \u548c <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        1<\/p>\n<p>       1<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">1<\/span><\/span><\/span><\/span><\/span> \u6b63\u597d\u76f8\u5dee <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        5<\/p>\n<p>       5<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">5<\/span><\/span><\/span><\/span><\/span>&#xff0c;\u4e09\u79cd\u90fd\u80fd\u4e70\u3002 \u7b2c <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        2<\/p>\n<p>       2<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">2<\/span><\/span><\/span><\/span><\/span> \u79cd\u518d\u6539\u6210 <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        100<\/p>\n<p>       100<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">100<\/span><\/span><\/span><\/span><\/span> \u540e&#xff0c;\u6807\u4ef7\u662f <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        1<\/p>\n<p>        ,<\/p>\n<p>        100<\/p>\n<p>        ,<\/p>\n<p>        6<\/p>\n<p>       1,100,6<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.8389em;vertical-align: -0.1944em\"><\/span><span class=\"mord\">1<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">100<\/span><span class=\"mpunct\">,<\/span><span class=\"mspace\" style=\"margin-right: 0.1667em\"><\/span><span class=\"mord\">6<\/span><\/span><\/span><\/span><\/span>\u3002<span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        1<\/p>\n<p>       1<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">1<\/span><\/span><\/span><\/span><\/span> \u548c <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        6<\/p>\n<p>       6<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">6<\/span><\/span><\/span><\/span><\/span> \u4ecd\u76f8\u5dee <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        5<\/p>\n<p>       5<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">5<\/span><\/span><\/span><\/span><\/span>&#xff0c;<span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        100<\/p>\n<p>       100<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">100<\/span><\/span><\/span><\/span><\/span> \u653e\u4e0d\u8fdb\u8fd9\u4e00\u7ec4&#xff0c;\u7b54\u6848\u662f <span class=\"katex--inline\"><span class=\"katex\"><span class=\"katex-mathml\"><\/p>\n<p>        2<\/p>\n<p>       2<\/p>\n<p>    <\/span><span class=\"katex-html\"><span class=\"base\"><span class=\"strut\" style=\"height: 0.6444em\"><\/span><span class=\"mord\">2<\/span><\/span><\/span><\/span><\/span>\u3002<\/p>\n<h2>\u9898\u89e3<\/h2>\n<h3>\u601d\u8def<\/h3>\n<p>\u89e3\u9898\u601d\u8def&#xff1a;\u7ebf\u6bb5\u6811<\/p>\n<li>\u5b9a\u4e49f(i)\u8868\u793a\u4ef7\u683c\u533a\u95f4\u4ece i \u5f00\u59cb&#xff0c;\u4ef7\u683c\u5dee\u4e0d\u8d85\u8fc7G&#xff0c;\u6700\u591a\u53ef\u4ee5\u8d2d\u4e70\u591a\u5c11\u79cd\u6a58\u5b50\u3002\u54ea\u4e9b\u4fee\u6539\u4e00\u4e2a\u6a58\u5b50\u4ef7\u683c\u4ecex &#8211; &gt; y&#xff0c;\u6536\u5230\u5f71\u54cd\u7684f(j)\u5305\u542b\u4ee5\u4e0b\u90e8\u5206\n<ul>\n<li>\u51cf\u5c11&#xff1a;\u6240\u6709\u5305\u542bx\u7684f\u4f1a\u53d7\u5230\u5f71\u54cd&#xff0c;\u6570\u91cf-1&#xff0c;\u5bf9\u5e94\u5230f(i)\u4e2d&#xff0c;x-G &lt;&#061; i &lt;&#061;x<\/li>\n<li>\u589e\u52a0: \u6240\u6709\u5305\u542by\u7684f\u4f1a\u53d7\u5230\u5f71\u54cd&#xff0c;\u6570\u91cf &#043; 1&#xff0c; \u5bf9\u5e94\u5230f(i)\u4e2d&#xff0c;x &lt;&#061; i &lt;&#061; x&#043; G<\/li>\n<\/ul>\n<\/li>\n<li>\u901a\u8fc71\u7684\u5b9a\u4e49&#xff0c;\u518d\u52a0\u4e0a\u672c\u9898\u7ed9\u51fa\u7684\u6570\u636e\u8303\u56f40 &lt;&#061; G &lt;&#061; 10^8, \u4e0d\u80fd\u521b\u5efa10^8\u7684f\u6570\u7ec4&#xff0c;\u9700\u8981\u8fdb\u884c\u4f18\u5316&#xff0c;\u7531\u4e8e\u53ef\u77e5\u6240\u6709\u53ef\u80fd\u51fa\u73b0\u7684w\u5305\u542b\u521d\u59cb\u548c\u4fee\u6539\u540e\u7684&#xff0c;\u53ef\u4ee5\u901a\u8fc7\u79bb\u6563\u5316 \u7f29\u5c0f\u521b\u5efaf\u6570\u7ec4&#xff0c;\u4f7f\u7528all\u6570\u7ec4\u8fdb\u884c\u4fdd\u5b58\u3002<\/li>\n<li>\u540c\u65f6\u7531\u4e8eT\u7ed9\u51fa\u7684\u67e5\u8be2\u6b21\u65701 &lt;&#061; T &lt;&#061; 10^5, \u5355\u7eaf\u8fdb\u884c\u4e0a\u8ff0\u4fee\u6539\u64cd\u4f5c\u7136\u540e\u8fdb\u884c\u67e5\u8be2\u4f1a\u8d85\u65f6&#xff0c;\u5f15\u5165\u7ebf\u6bb5\u6811\u8fdb\u884c\u4f18\u5316&#xff0c;\u7ebf\u6bb5\u6811\u7684\u53f6\u5b50\u8282\u70b9\u4e3a\u7ef4\u62a4\u4e00\u4e2af(i), \u5185\u90e8\u8282\u70b9\u4e3amax(tree[left], tree[right]), \u8fd9\u6837\u975e\u5e38\u5bb9\u6613\u67e5\u8be2\u51fa\u4fee\u6539\u540e\u7684\u80fd\u4e70\u5230\u7684\u6700\u5927\u6570\u91cf\u4e3atree[\u6839\u8282\u70b9]<\/li>\n<li>\u5bf9\u4e8e\u4fee\u6539\u64cd\u4f5c&#xff0c;\u53ef\u4ee5\u540c\u65f6\u5f15\u5165\u61d2\u60f0\u6807\u8bb0\u8fdb\u884c\u4f18\u5316&#xff0c;\u6bcf\u6b21\u4fee\u6539\u64cd\u4f5c&#xff1a;\n<ul>\n<li>\u53ef\u4ee5\u901a\u8fc7\u4e8c\u5206\u5728\u79bb\u6563\u8282\u70b9\u4e2d\u627e\u5230\u5bf9\u5e94\u9700\u8981\u51cf\u5c11\u548c\u589e\u52a0\u7684\u533a\u95f4&#xff0c;\u7136\u540e\u8fdb\u884c\u66f4\u65b0\u5373\u53ef\u3002<\/li>\n<li>\u7136\u540e\u8fd4\u56de\u7ebf\u6bb5\u6811\u6839\u8282\u70b9\u7684\u503c\u5373\u53ef\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\u7b97\u6cd5\u603b\u4f53\u65f6\u95f4\u590d\u6742\u5ea6\u4e3aO((M &#043; T)log(M &#043; T))<\/li>\n<h3>C&#043;&#043;<\/h3>\n<p><span class=\"token macro property\"><span class=\"token directive-hash\">#<\/span><span class=\"token directive keyword\">include<\/span> <span class=\"token string\">&lt;bits\/stdc&#043;&#043;.h&gt;<\/span><\/span><br \/>\n<span class=\"token keyword\">using<\/span> <span class=\"token keyword\">namespace<\/span> std<span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">using<\/span> ll <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">long<\/span> <span class=\"token keyword\">long<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">struct<\/span> <span class=\"token class-name\">SegmentTree<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">int<\/span> n<span class=\"token punctuation\">;<\/span><br \/>\n    vector<span class=\"token operator\">&lt;<\/span><span class=\"token keyword\">int<\/span><span class=\"token operator\">&gt;<\/span> tree<span class=\"token punctuation\">,<\/span> lazy<span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token function\">SegmentTree<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> n<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">:<\/span> <span class=\"token function\">n<\/span><span class=\"token punctuation\">(<\/span>n<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token function\">tree<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">4<\/span> <span class=\"token operator\">*<\/span> n <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">5<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token function\">lazy<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">4<\/span> <span class=\"token operator\">*<\/span> n <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">5<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">void<\/span> <span class=\"token function\">apply<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> node<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> val<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        tree<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#043;&#061;<\/span> val<span class=\"token punctuation\">;<\/span><br \/>\n        lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#043;&#061;<\/span> val<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">void<\/span> <span class=\"token function\">pushDown<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> node<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">!&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token function\">apply<\/span><span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token function\">apply<\/span><span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">void<\/span> <span class=\"token function\">build<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> node<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> l<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> r<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">const<\/span> vector<span class=\"token operator\">&lt;<\/span><span class=\"token keyword\">int<\/span><span class=\"token operator\">&gt;<\/span><span class=\"token operator\">&amp;<\/span> a<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>l <span class=\"token operator\">&#061;&#061;<\/span> r<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            tree<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> a<span class=\"token punctuation\">[<\/span>l<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">return<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token keyword\">int<\/span> mid <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span>l <span class=\"token operator\">&#043;<\/span> r<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token function\">build<\/span><span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> l<span class=\"token punctuation\">,<\/span> mid<span class=\"token punctuation\">,<\/span> a<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token function\">build<\/span><span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> mid <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> r<span class=\"token punctuation\">,<\/span> a<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        tree<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">max<\/span><span class=\"token punctuation\">(<\/span>tree<span class=\"token punctuation\">[<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> tree<span class=\"token punctuation\">[<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">void<\/span> <span class=\"token function\">update<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> node<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> l<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> r<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> ql<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> qr<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> val<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>ql <span class=\"token operator\">&lt;&#061;<\/span> l <span class=\"token operator\">&amp;&amp;<\/span> r <span class=\"token operator\">&lt;&#061;<\/span> qr<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token function\">apply<\/span><span class=\"token punctuation\">(<\/span>node<span class=\"token punctuation\">,<\/span> val<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">return<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token function\">pushDown<\/span><span class=\"token punctuation\">(<\/span>node<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token keyword\">int<\/span> mid <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span>l <span class=\"token operator\">&#043;<\/span> r<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>ql <span class=\"token operator\">&lt;&#061;<\/span> mid<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token function\">update<\/span><span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> l<span class=\"token punctuation\">,<\/span> mid<span class=\"token punctuation\">,<\/span> ql<span class=\"token punctuation\">,<\/span> qr<span class=\"token punctuation\">,<\/span> val<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>qr <span class=\"token operator\">&gt;<\/span> mid<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token function\">update<\/span><span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> mid <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> r<span class=\"token punctuation\">,<\/span> ql<span class=\"token punctuation\">,<\/span> qr<span class=\"token punctuation\">,<\/span> val<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        tree<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">max<\/span><span class=\"token punctuation\">(<\/span>tree<span class=\"token punctuation\">[<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> tree<span class=\"token punctuation\">[<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">int<\/span> <span class=\"token function\">queryMax<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> tree<span class=\"token punctuation\">[<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">struct<\/span> <span class=\"token class-name\">Query<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">int<\/span> b<span class=\"token punctuation\">,<\/span> c<span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">int<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    ios<span class=\"token double-colon punctuation\">::<\/span><span class=\"token function\">sync_with_stdio<\/span><span class=\"token punctuation\">(<\/span><span class=\"token boolean\">false<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    cin<span class=\"token punctuation\">.<\/span><span class=\"token function\">tie<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">nullptr<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">int<\/span> M<span class=\"token punctuation\">;<\/span><br \/>\n    ll G<span class=\"token punctuation\">;<\/span><br \/>\n    cin <span class=\"token operator\">&gt;&gt;<\/span> M <span class=\"token operator\">&gt;&gt;<\/span> G<span class=\"token punctuation\">;<\/span><\/p>\n<p>    vector<span class=\"token operator\">&lt;<\/span><span class=\"token keyword\">int<\/span><span class=\"token operator\">&gt;<\/span> <span class=\"token function\">W<\/span><span class=\"token punctuation\">(<\/span>M <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    vector<span class=\"token operator\">&lt;<\/span><span class=\"token keyword\">int<\/span><span class=\"token operator\">&gt;<\/span> all<span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;&#061;<\/span> M<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        cin <span class=\"token operator\">&gt;&gt;<\/span> W<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        all<span class=\"token punctuation\">.<\/span><span class=\"token function\">push_back<\/span><span class=\"token punctuation\">(<\/span>W<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">int<\/span> T<span class=\"token punctuation\">;<\/span><br \/>\n    cin <span class=\"token operator\">&gt;&gt;<\/span> T<span class=\"token punctuation\">;<\/span><\/p>\n<p>    vector<span class=\"token operator\">&lt;<\/span>Query<span class=\"token operator\">&gt;<\/span> <span class=\"token function\">queries<\/span><span class=\"token punctuation\">(<\/span>T<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token comment\">\/\/ \u8bfb\u5165\u6240\u6709\u64cd\u4f5c&#xff0c;\u5c06\u53ef\u80fd\u51fa\u73b0\u7684\u4ef7\u683c\u52a0\u5165\u79bb\u6563\u5316\u6570\u7ec4<\/span><br \/>\n    <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> T<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        cin <span class=\"token operator\">&gt;&gt;<\/span> queries<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>b <span class=\"token operator\">&gt;&gt;<\/span> queries<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>c<span class=\"token punctuation\">;<\/span><br \/>\n        all<span class=\"token punctuation\">.<\/span><span class=\"token function\">push_back<\/span><span class=\"token punctuation\">(<\/span>queries<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>c<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token comment\">\/\/ \u79bb\u6563\u5316\u6240\u6709\u51fa\u73b0\u6807\u4ef7 \u6392\u5e8f \u53bb\u91cd<\/span><br \/>\n    <span class=\"token function\">sort<\/span><span class=\"token punctuation\">(<\/span>all<span class=\"token punctuation\">.<\/span><span class=\"token function\">begin<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> all<span class=\"token punctuation\">.<\/span><span class=\"token function\">end<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    all<span class=\"token punctuation\">.<\/span><span class=\"token function\">erase<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">unique<\/span><span class=\"token punctuation\">(<\/span>all<span class=\"token punctuation\">.<\/span><span class=\"token function\">begin<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> all<span class=\"token punctuation\">.<\/span><span class=\"token function\">end<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> all<span class=\"token punctuation\">.<\/span><span class=\"token function\">end<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">int<\/span> N <span class=\"token operator\">&#061;<\/span> all<span class=\"token punctuation\">.<\/span><span class=\"token function\">size<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token comment\">\/\/ cnt[i] \u8868\u793a\u5f53\u524d\u4ef7\u683c\u7b49\u4e8e all[i] \u7684\u6a58\u5b50\u6570\u91cf<\/span><br \/>\n    vector<span class=\"token operator\">&lt;<\/span><span class=\"token keyword\">int<\/span><span class=\"token operator\">&gt;<\/span> <span class=\"token function\">cnt<\/span><span class=\"token punctuation\">(<\/span>N<span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;&#061;<\/span> M<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u8fd4\u56de\u7b2c\u4e00\u4e2a\u5927\u4e8e\u7b49\u4e8e W[i] \u7684\u4ef7\u683c\u4e0b\u6807<\/span><br \/>\n        <span class=\"token keyword\">int<\/span> id <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">lower_bound<\/span><span class=\"token punctuation\">(<\/span>all<span class=\"token punctuation\">.<\/span><span class=\"token function\">begin<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> all<span class=\"token punctuation\">.<\/span><span class=\"token function\">end<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> W<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#8211;<\/span> all<span class=\"token punctuation\">.<\/span><span class=\"token function\">begin<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        cnt<span class=\"token punctuation\">[<\/span>id<span class=\"token punctuation\">]<\/span><span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token comment\">\/\/ left[i] \u8868\u793a\u6240\u6709\u5305\u542b\u4ef7\u683c all[i] \u7684\u7a97\u53e3\u7684\u6700\u5c0f\u5de6\u7aef\u70b9<\/span><br \/>\n    <span class=\"token comment\">\/\/ \u8fd9\u4e9b\u7a97\u53e3\u7684\u5de6\u7aef\u4ef7\u683c\u5fc5\u987b\u6ee1\u8db3 all[i] &#8211; all[l] &lt;&#061; G<\/span><br \/>\n    vector<span class=\"token operator\">&lt;<\/span><span class=\"token keyword\">int<\/span><span class=\"token operator\">&gt;<\/span> <span class=\"token function\">left<\/span><span class=\"token punctuation\">(<\/span>N<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> N<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        left<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">lower_bound<\/span><span class=\"token punctuation\">(<\/span><br \/>\n            all<span class=\"token punctuation\">.<\/span><span class=\"token function\">begin<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> all<span class=\"token punctuation\">.<\/span><span class=\"token function\">end<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">(<\/span>ll<span class=\"token punctuation\">)<\/span>all<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#8211;<\/span> G<br \/>\n        <span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#8211;<\/span> all<span class=\"token punctuation\">.<\/span><span class=\"token function\">begin<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token comment\">\/\/ \u521d\u59cb\u5316 f[i]&#xff1a;\u4ee5 all[i] \u4e3a\u5de6\u7aef\u70b9\u7684\u7a97\u53e3\u5185\u6a58\u5b50\u6570\u91cf<\/span><br \/>\n    vector<span class=\"token operator\">&lt;<\/span><span class=\"token keyword\">int<\/span><span class=\"token operator\">&gt;<\/span> <span class=\"token function\">f<\/span><span class=\"token punctuation\">(<\/span>N<span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">int<\/span> r <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">int<\/span> sum <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> N<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">while<\/span> <span class=\"token punctuation\">(<\/span>r <span class=\"token operator\">&lt;<\/span> N <span class=\"token operator\">&amp;&amp;<\/span> <span class=\"token punctuation\">(<\/span>ll<span class=\"token punctuation\">)<\/span>all<span class=\"token punctuation\">[<\/span>r<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#8211;<\/span> all<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&lt;&#061;<\/span> G<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            sum <span class=\"token operator\">&#043;&#061;<\/span> cnt<span class=\"token punctuation\">[<\/span>r<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            r<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        f<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> sum<span class=\"token punctuation\">;<\/span><br \/>\n        sum <span class=\"token operator\">-&#061;<\/span> cnt<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token comment\">\/\/ \u5efa\u7acb\u7ebf\u6bb5\u6811&#xff0c;\u7ef4\u62a4\u6240\u6709\u7a97\u53e3\u4e2d\u7684\u6700\u5927\u6a58\u5b50\u6570\u91cf<\/span><br \/>\n    SegmentTree <span class=\"token function\">seg<\/span><span class=\"token punctuation\">(<\/span>N<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    seg<span class=\"token punctuation\">.<\/span><span class=\"token function\">build<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> N <span class=\"token operator\">&#8211;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> f<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token comment\">\/\/ \u9010\u5929\u4fee\u6539\u4ef7\u683c\u5e76\u8f93\u51fa\u7b54\u6848<\/span><br \/>\n    <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> T<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">int<\/span> b <span class=\"token operator\">&#061;<\/span> queries<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>b<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">int<\/span> c <span class=\"token operator\">&#061;<\/span> queries<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>c<span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token keyword\">int<\/span> oldId <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">lower_bound<\/span><span class=\"token punctuation\">(<\/span><br \/>\n            all<span class=\"token punctuation\">.<\/span><span class=\"token function\">begin<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> all<span class=\"token punctuation\">.<\/span><span class=\"token function\">end<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> W<span class=\"token punctuation\">[<\/span>b<span class=\"token punctuation\">]<\/span><br \/>\n        <span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#8211;<\/span> all<span class=\"token punctuation\">.<\/span><span class=\"token function\">begin<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token keyword\">int<\/span> newId <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">lower_bound<\/span><span class=\"token punctuation\">(<\/span><br \/>\n            all<span class=\"token punctuation\">.<\/span><span class=\"token function\">begin<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> all<span class=\"token punctuation\">.<\/span><span class=\"token function\">end<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> c<br \/>\n        <span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#8211;<\/span> all<span class=\"token punctuation\">.<\/span><span class=\"token function\">begin<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ \u5982\u679c\u65b0\u65e7\u4ef7\u683c\u76f8\u540c&#xff0c;\u4e0d\u9700\u8981\u4fee\u6539<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>oldId <span class=\"token operator\">!&#061;<\/span> newId<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token comment\">\/\/ \u79fb\u9664\u65e7\u4ef7\u683c&#xff1a;\u6240\u6709\u5305\u542b\u65e7\u4ef7\u683c\u7684\u7a97\u53e3\u6570\u91cf\u51cf 1<\/span><br \/>\n            seg<span class=\"token punctuation\">.<\/span><span class=\"token function\">update<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> N <span class=\"token operator\">&#8211;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> left<span class=\"token punctuation\">[<\/span>oldId<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> oldId<span class=\"token punctuation\">,<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            cnt<span class=\"token punctuation\">[<\/span>oldId<span class=\"token punctuation\">]<\/span><span class=\"token operator\">&#8212;<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>            <span class=\"token comment\">\/\/ \u52a0\u5165\u65b0\u4ef7\u683c&#xff1a;\u6240\u6709\u5305\u542b\u65b0\u4ef7\u683c\u7684\u7a97\u53e3\u6570\u91cf\u52a0 1<\/span><br \/>\n            seg<span class=\"token punctuation\">.<\/span><span class=\"token function\">update<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> N <span class=\"token operator\">&#8211;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> left<span class=\"token punctuation\">[<\/span>newId<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> newId<span class=\"token punctuation\">,<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            cnt<span class=\"token punctuation\">[<\/span>newId<span class=\"token punctuation\">]<\/span><span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>            W<span class=\"token punctuation\">[<\/span>b<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> c<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ \u6839\u8282\u70b9\u7ef4\u62a4\u6240\u6709\u7a97\u53e3\u4e2d\u7684\u6700\u5927\u503c<\/span><br \/>\n        cout <span class=\"token operator\">&lt;&lt;<\/span> seg<span class=\"token punctuation\">.<\/span><span class=\"token function\">queryMax<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&lt;&lt;<\/span> <span class=\"token char\">&#039;\\\\n&#039;<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">return<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<h3>Java<\/h3>\n<p><span class=\"token keyword\">import<\/span> <span class=\"token import\"><span class=\"token namespace\">java<span class=\"token punctuation\">.<\/span>io<span class=\"token punctuation\">.<\/span><\/span><span class=\"token operator\">*<\/span><\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token keyword\">import<\/span> <span class=\"token import\"><span class=\"token namespace\">java<span class=\"token punctuation\">.<\/span>util<span class=\"token punctuation\">.<\/span><\/span><span class=\"token operator\">*<\/span><\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">public<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Main<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">SegmentTree<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">int<\/span> n<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">int<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> tree<span class=\"token punctuation\">,<\/span> lazy<span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token class-name\">SegmentTree<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> n<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>n <span class=\"token operator\">&#061;<\/span> n<span class=\"token punctuation\">;<\/span><br \/>\n            tree <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token keyword\">int<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">4<\/span> <span class=\"token operator\">*<\/span> n <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">5<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            lazy <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token keyword\">int<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">4<\/span> <span class=\"token operator\">*<\/span> n <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">5<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token keyword\">void<\/span> <span class=\"token function\">apply<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> node<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> val<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            tree<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#043;&#061;<\/span> val<span class=\"token punctuation\">;<\/span><br \/>\n            lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#043;&#061;<\/span> val<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token keyword\">void<\/span> <span class=\"token function\">pushDown<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> node<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">!&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token function\">apply<\/span><span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token function\">apply<\/span><span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token keyword\">void<\/span> <span class=\"token function\">build<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> node<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> l<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> r<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> a<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>l <span class=\"token operator\">&#061;&#061;<\/span> r<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                tree<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> a<span class=\"token punctuation\">[<\/span>l<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token keyword\">return<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><\/p>\n<p>            <span class=\"token keyword\">int<\/span> mid <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span>l <span class=\"token operator\">&#043;<\/span> r<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token function\">build<\/span><span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> l<span class=\"token punctuation\">,<\/span> mid<span class=\"token punctuation\">,<\/span> a<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token function\">build<\/span><span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> mid <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> r<span class=\"token punctuation\">,<\/span> a<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>            tree<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">Math<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">max<\/span><span class=\"token punctuation\">(<\/span>tree<span class=\"token punctuation\">[<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> tree<span class=\"token punctuation\">[<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token keyword\">void<\/span> <span class=\"token function\">update<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> node<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> l<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> r<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> ql<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> qr<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> val<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>ql <span class=\"token operator\">&lt;&#061;<\/span> l <span class=\"token operator\">&amp;&amp;<\/span> r <span class=\"token operator\">&lt;&#061;<\/span> qr<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token function\">apply<\/span><span class=\"token punctuation\">(<\/span>node<span class=\"token punctuation\">,<\/span> val<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token keyword\">return<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><\/p>\n<p>            <span class=\"token function\">pushDown<\/span><span class=\"token punctuation\">(<\/span>node<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>            <span class=\"token keyword\">int<\/span> mid <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span>l <span class=\"token operator\">&#043;<\/span> r<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>            <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>ql <span class=\"token operator\">&lt;&#061;<\/span> mid<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token function\">update<\/span><span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> l<span class=\"token punctuation\">,<\/span> mid<span class=\"token punctuation\">,<\/span> ql<span class=\"token punctuation\">,<\/span> qr<span class=\"token punctuation\">,<\/span> val<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><\/p>\n<p>            <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>qr <span class=\"token operator\">&gt;<\/span> mid<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token function\">update<\/span><span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> mid <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> r<span class=\"token punctuation\">,<\/span> ql<span class=\"token punctuation\">,<\/span> qr<span class=\"token punctuation\">,<\/span> val<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><\/p>\n<p>            tree<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">Math<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">max<\/span><span class=\"token punctuation\">(<\/span>tree<span class=\"token punctuation\">[<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> tree<span class=\"token punctuation\">[<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token keyword\">int<\/span> <span class=\"token function\">queryMax<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">return<\/span> tree<span class=\"token punctuation\">[<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">Query<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">int<\/span> b<span class=\"token punctuation\">,<\/span> c<span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token class-name\">Query<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> b<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">int<\/span> c<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>b <span class=\"token operator\">&#061;<\/span> b<span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>c <span class=\"token operator\">&#061;<\/span> c<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">public<\/span> <span class=\"token keyword\">static<\/span> <span class=\"token keyword\">void<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">String<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> args<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">throws<\/span> <span class=\"token class-name\">IOException<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token class-name\">BufferedReader<\/span> br <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">BufferedReader<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">InputStreamReader<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>in<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token class-name\">StringTokenizer<\/span> st <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">StringTokenizer<\/span><span class=\"token punctuation\">(<\/span>br<span class=\"token punctuation\">.<\/span><span class=\"token function\">readLine<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token keyword\">int<\/span> <span class=\"token class-name\">M<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">Integer<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">parseInt<\/span><span class=\"token punctuation\">(<\/span>st<span class=\"token punctuation\">.<\/span><span class=\"token function\">nextToken<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">long<\/span> <span class=\"token class-name\">G<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">Long<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">parseLong<\/span><span class=\"token punctuation\">(<\/span>st<span class=\"token punctuation\">.<\/span><span class=\"token function\">nextToken<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token keyword\">int<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token class-name\">W<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token keyword\">int<\/span><span class=\"token punctuation\">[<\/span><span class=\"token class-name\">M<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token class-name\">List<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token class-name\">Integer<\/span><span class=\"token punctuation\">&gt;<\/span><\/span> allList <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">ArrayList<\/span><span class=\"token generics\"><span class=\"token punctuation\">&lt;<\/span><span class=\"token punctuation\">&gt;<\/span><\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        st <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">StringTokenizer<\/span><span class=\"token punctuation\">(<\/span>br<span class=\"token punctuation\">.<\/span><span class=\"token function\">readLine<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;&#061;<\/span> <span class=\"token class-name\">M<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token class-name\">W<\/span><span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">Integer<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">parseInt<\/span><span class=\"token punctuation\">(<\/span>st<span class=\"token punctuation\">.<\/span><span class=\"token function\">nextToken<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            allList<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">W<\/span><span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token keyword\">int<\/span> <span class=\"token class-name\">T<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">Integer<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">parseInt<\/span><span class=\"token punctuation\">(<\/span>br<span class=\"token punctuation\">.<\/span><span class=\"token function\">readLine<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">trim<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token class-name\">Query<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> queries <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Query<\/span><span class=\"token punctuation\">[<\/span><span class=\"token class-name\">T<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ \u8bfb\u5165\u6240\u6709\u64cd\u4f5c&#xff0c;\u5c06\u53ef\u80fd\u51fa\u73b0\u7684\u4ef7\u683c\u52a0\u5165\u79bb\u6563\u5316\u6570\u7ec4<\/span><br \/>\n        <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> <span class=\"token class-name\">T<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            st <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">StringTokenizer<\/span><span class=\"token punctuation\">(<\/span>br<span class=\"token punctuation\">.<\/span><span class=\"token function\">readLine<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">int<\/span> b <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">Integer<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">parseInt<\/span><span class=\"token punctuation\">(<\/span>st<span class=\"token punctuation\">.<\/span><span class=\"token function\">nextToken<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">int<\/span> c <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">Integer<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">parseInt<\/span><span class=\"token punctuation\">(<\/span>st<span class=\"token punctuation\">.<\/span><span class=\"token function\">nextToken<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>            queries<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Query<\/span><span class=\"token punctuation\">(<\/span>b<span class=\"token punctuation\">,<\/span> c<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            allList<span class=\"token punctuation\">.<\/span><span class=\"token function\">add<\/span><span class=\"token punctuation\">(<\/span>c<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ \u79bb\u6563\u5316\u6240\u6709\u51fa\u73b0\u6807\u4ef7&#xff1a;\u6392\u5e8f\u3001\u53bb\u91cd<\/span><br \/>\n        <span class=\"token class-name\">Collections<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">sort<\/span><span class=\"token punctuation\">(<\/span>allList<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token keyword\">int<\/span> size <span class=\"token operator\">&#061;<\/span> allList<span class=\"token punctuation\">.<\/span><span class=\"token function\">size<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">int<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> temp <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token keyword\">int<\/span><span class=\"token punctuation\">[<\/span>size<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">int<\/span> <span class=\"token class-name\">N<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> x <span class=\"token operator\">:<\/span> allList<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token class-name\">N<\/span> <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token number\">0<\/span> <span class=\"token operator\">||<\/span> temp<span class=\"token punctuation\">[<\/span><span class=\"token class-name\">N<\/span> <span class=\"token operator\">&#8211;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">!&#061;<\/span> x<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                temp<span class=\"token punctuation\">[<\/span><span class=\"token class-name\">N<\/span><span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> x<span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token keyword\">int<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> all <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">Arrays<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">copyOf<\/span><span class=\"token punctuation\">(<\/span>temp<span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">N<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ cnt[i] \u8868\u793a\u5f53\u524d\u4ef7\u683c\u7b49\u4e8e all[i] \u7684\u6a58\u5b50\u6570\u91cf<\/span><br \/>\n        <span class=\"token keyword\">int<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> cnt <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token keyword\">int<\/span><span class=\"token punctuation\">[<\/span><span class=\"token class-name\">N<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;&#061;<\/span> <span class=\"token class-name\">M<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token comment\">\/\/ \u8fd4\u56de\u7b2c\u4e00\u4e2a\u5927\u4e8e\u7b49\u4e8e W[i] \u7684\u4ef7\u683c\u4e0b\u6807<\/span><br \/>\n            <span class=\"token keyword\">int<\/span> id <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">Arrays<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">binarySearch<\/span><span class=\"token punctuation\">(<\/span>all<span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">W<\/span><span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            cnt<span class=\"token punctuation\">[<\/span>id<span class=\"token punctuation\">]<\/span><span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ left[i] \u8868\u793a\u6240\u6709\u5305\u542b\u4ef7\u683c all[i] \u7684\u7a97\u53e3\u7684\u6700\u5c0f\u5de6\u7aef\u70b9<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u8fd9\u4e9b\u7a97\u53e3\u7684\u5de6\u7aef\u4ef7\u683c\u5fc5\u987b\u6ee1\u8db3 all[i] &#8211; all[l] &lt;&#061; G<\/span><br \/>\n        <span class=\"token keyword\">int<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> left <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token keyword\">int<\/span><span class=\"token punctuation\">[<\/span><span class=\"token class-name\">N<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> <span class=\"token class-name\">N<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">long<\/span> target <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">long<\/span><span class=\"token punctuation\">)<\/span> all<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#8211;<\/span> <span class=\"token class-name\">G<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>            <span class=\"token keyword\">int<\/span> lo <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> hi <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">N<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">while<\/span> <span class=\"token punctuation\">(<\/span>lo <span class=\"token operator\">&lt;<\/span> hi<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token keyword\">int<\/span> mid <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span>lo <span class=\"token operator\">&#043;<\/span> hi<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>all<span class=\"token punctuation\">[<\/span>mid<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&lt;<\/span> target<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                    lo <span class=\"token operator\">&#061;<\/span> mid <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                    hi <span class=\"token operator\">&#061;<\/span> mid<span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token punctuation\">}<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><\/p>\n<p>            left<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> lo<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ \u521d\u59cb\u5316 f[i]&#xff1a;\u4ee5 all[i] \u4e3a\u5de6\u7aef\u70b9\u7684\u7a97\u53e3\u5185\u6a58\u5b50\u6570\u91cf<\/span><br \/>\n        <span class=\"token keyword\">int<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> f <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token keyword\">int<\/span><span class=\"token punctuation\">[<\/span><span class=\"token class-name\">N<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">int<\/span> r <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">int<\/span> sum <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> <span class=\"token class-name\">N<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">while<\/span> <span class=\"token punctuation\">(<\/span>r <span class=\"token operator\">&lt;<\/span> <span class=\"token class-name\">N<\/span> <span class=\"token operator\">&amp;&amp;<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">long<\/span><span class=\"token punctuation\">)<\/span> all<span class=\"token punctuation\">[<\/span>r<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#8211;<\/span> all<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&lt;&#061;<\/span> <span class=\"token class-name\">G<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                sum <span class=\"token operator\">&#043;&#061;<\/span> cnt<span class=\"token punctuation\">[<\/span>r<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                r<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><\/p>\n<p>            f<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> sum<span class=\"token punctuation\">;<\/span><br \/>\n            sum <span class=\"token operator\">-&#061;<\/span> cnt<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ \u5efa\u7acb\u7ebf\u6bb5\u6811&#xff0c;\u7ef4\u62a4\u6240\u6709\u7a97\u53e3\u4e2d\u7684\u6700\u5927\u6a58\u5b50\u6570\u91cf<\/span><br \/>\n        <span class=\"token class-name\">SegmentTree<\/span> seg <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">SegmentTree<\/span><span class=\"token punctuation\">(<\/span><span class=\"token class-name\">N<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        seg<span class=\"token punctuation\">.<\/span><span class=\"token function\">build<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">N<\/span> <span class=\"token operator\">&#8211;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> f<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ \u9010\u5929\u4fee\u6539\u4ef7\u683c\u5e76\u8f93\u51fa\u7b54\u6848<\/span><br \/>\n        <span class=\"token class-name\">StringBuilder<\/span> out <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">StringBuilder<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> <span class=\"token class-name\">T<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">int<\/span> b <span class=\"token operator\">&#061;<\/span> queries<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>b<span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">int<\/span> c <span class=\"token operator\">&#061;<\/span> queries<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>c<span class=\"token punctuation\">;<\/span><\/p>\n<p>            <span class=\"token keyword\">int<\/span> oldId <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">Arrays<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">binarySearch<\/span><span class=\"token punctuation\">(<\/span>all<span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">W<\/span><span class=\"token punctuation\">[<\/span>b<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">int<\/span> newId <span class=\"token operator\">&#061;<\/span> <span class=\"token class-name\">Arrays<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">binarySearch<\/span><span class=\"token punctuation\">(<\/span>all<span class=\"token punctuation\">,<\/span> c<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>            <span class=\"token comment\">\/\/ \u5982\u679c\u65b0\u65e7\u4ef7\u683c\u76f8\u540c&#xff0c;\u4e0d\u9700\u8981\u4fee\u6539<\/span><br \/>\n            <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>oldId <span class=\"token operator\">!&#061;<\/span> newId<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token comment\">\/\/ \u79fb\u9664\u65e7\u4ef7\u683c&#xff1a;\u6240\u6709\u5305\u542b\u65e7\u4ef7\u683c\u7684\u7a97\u53e3\u6570\u91cf\u51cf 1<\/span><br \/>\n                seg<span class=\"token punctuation\">.<\/span><span class=\"token function\">update<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">N<\/span> <span class=\"token operator\">&#8211;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> left<span class=\"token punctuation\">[<\/span>oldId<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> oldId<span class=\"token punctuation\">,<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                cnt<span class=\"token punctuation\">[<\/span>oldId<span class=\"token punctuation\">]<\/span><span class=\"token operator\">&#8212;<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>                <span class=\"token comment\">\/\/ \u52a0\u5165\u65b0\u4ef7\u683c&#xff1a;\u6240\u6709\u5305\u542b\u65b0\u4ef7\u683c\u7684\u7a97\u53e3\u6570\u91cf\u52a0 1<\/span><br \/>\n                seg<span class=\"token punctuation\">.<\/span><span class=\"token function\">update<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token class-name\">N<\/span> <span class=\"token operator\">&#8211;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> left<span class=\"token punctuation\">[<\/span>newId<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> newId<span class=\"token punctuation\">,<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                cnt<span class=\"token punctuation\">[<\/span>newId<span class=\"token punctuation\">]<\/span><span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>                <span class=\"token class-name\">W<\/span><span class=\"token punctuation\">[<\/span>b<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> c<span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><\/p>\n<p>            <span class=\"token comment\">\/\/ \u6839\u8282\u70b9\u7ef4\u62a4\u6240\u6709\u7a97\u53e3\u4e2d\u7684\u6700\u5927\u503c<\/span><br \/>\n            out<span class=\"token punctuation\">.<\/span><span class=\"token function\">append<\/span><span class=\"token punctuation\">(<\/span>seg<span class=\"token punctuation\">.<\/span><span class=\"token function\">queryMax<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">append<\/span><span class=\"token punctuation\">(<\/span><span class=\"token char\">&#039;\\\\n&#039;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token class-name\">System<\/span><span class=\"token punctuation\">.<\/span>out<span class=\"token punctuation\">.<\/span><span class=\"token function\">print<\/span><span class=\"token punctuation\">(<\/span>out<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<h3>python<\/h3>\n<p><span class=\"token keyword\">import<\/span> sys<br \/>\n<span class=\"token keyword\">from<\/span> bisect <span class=\"token keyword\">import<\/span> bisect_left<\/p>\n<p><span class=\"token builtin\">input<\/span> <span class=\"token operator\">&#061;<\/span> sys<span class=\"token punctuation\">.<\/span>stdin<span class=\"token punctuation\">.<\/span>readline<\/p>\n<p><span class=\"token keyword\">class<\/span> <span class=\"token class-name\">SegmentTree<\/span><span class=\"token punctuation\">:<\/span><br \/>\n    <span class=\"token keyword\">def<\/span> <span class=\"token function\">__init__<\/span><span class=\"token punctuation\">(<\/span>self<span class=\"token punctuation\">,<\/span> n<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n        self<span class=\"token punctuation\">.<\/span>n <span class=\"token operator\">&#061;<\/span> n<br \/>\n        self<span class=\"token punctuation\">.<\/span>tree <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">*<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token number\">4<\/span> <span class=\"token operator\">*<\/span> n <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">5<\/span><span class=\"token punctuation\">)<\/span><br \/>\n        self<span class=\"token punctuation\">.<\/span>lazy <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">*<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token number\">4<\/span> <span class=\"token operator\">*<\/span> n <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">5<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>    <span class=\"token keyword\">def<\/span> <span class=\"token function\">apply<\/span><span class=\"token punctuation\">(<\/span>self<span class=\"token punctuation\">,<\/span> node<span class=\"token punctuation\">,<\/span> val<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n        self<span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#043;&#061;<\/span> val<br \/>\n        self<span class=\"token punctuation\">.<\/span>lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#043;&#061;<\/span> val<\/p>\n<p>    <span class=\"token keyword\">def<\/span> <span class=\"token function\">push_down<\/span><span class=\"token punctuation\">(<\/span>self<span class=\"token punctuation\">,<\/span> node<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> self<span class=\"token punctuation\">.<\/span>lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">!&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">:<\/span><br \/>\n            self<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">apply<\/span><span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> self<span class=\"token punctuation\">.<\/span>lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><br \/>\n            self<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">apply<\/span><span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> self<span class=\"token punctuation\">.<\/span>lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><br \/>\n            self<span class=\"token punctuation\">.<\/span>lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><\/p>\n<p>    <span class=\"token keyword\">def<\/span> <span class=\"token function\">build<\/span><span class=\"token punctuation\">(<\/span>self<span class=\"token punctuation\">,<\/span> node<span class=\"token punctuation\">,<\/span> l<span class=\"token punctuation\">,<\/span> r<span class=\"token punctuation\">,<\/span> a<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> l <span class=\"token operator\">&#061;&#061;<\/span> r<span class=\"token punctuation\">:<\/span><br \/>\n            self<span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> a<span class=\"token punctuation\">[<\/span>l<span class=\"token punctuation\">]<\/span><br \/>\n            <span class=\"token keyword\">return<\/span><\/p>\n<p>        mid <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span>l <span class=\"token operator\">&#043;<\/span> r<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/\/<\/span> <span class=\"token number\">2<\/span><br \/>\n        self<span class=\"token punctuation\">.<\/span>build<span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> l<span class=\"token punctuation\">,<\/span> mid<span class=\"token punctuation\">,<\/span> a<span class=\"token punctuation\">)<\/span><br \/>\n        self<span class=\"token punctuation\">.<\/span>build<span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> mid <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> r<span class=\"token punctuation\">,<\/span> a<span class=\"token punctuation\">)<\/span><\/p>\n<p>        self<span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token builtin\">max<\/span><span class=\"token punctuation\">(<\/span>self<span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                              self<span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>    <span class=\"token keyword\">def<\/span> <span class=\"token function\">update<\/span><span class=\"token punctuation\">(<\/span>self<span class=\"token punctuation\">,<\/span> node<span class=\"token punctuation\">,<\/span> l<span class=\"token punctuation\">,<\/span> r<span class=\"token punctuation\">,<\/span> ql<span class=\"token punctuation\">,<\/span> qr<span class=\"token punctuation\">,<\/span> val<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> ql <span class=\"token operator\">&lt;&#061;<\/span> l <span class=\"token keyword\">and<\/span> r <span class=\"token operator\">&lt;&#061;<\/span> qr<span class=\"token punctuation\">:<\/span><br \/>\n            self<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">apply<\/span><span class=\"token punctuation\">(<\/span>node<span class=\"token punctuation\">,<\/span> val<span class=\"token punctuation\">)<\/span><br \/>\n            <span class=\"token keyword\">return<\/span><\/p>\n<p>        self<span class=\"token punctuation\">.<\/span>push_down<span class=\"token punctuation\">(<\/span>node<span class=\"token punctuation\">)<\/span><\/p>\n<p>        mid <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span>l <span class=\"token operator\">&#043;<\/span> r<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/\/<\/span> <span class=\"token number\">2<\/span><\/p>\n<p>        <span class=\"token keyword\">if<\/span> ql <span class=\"token operator\">&lt;&#061;<\/span> mid<span class=\"token punctuation\">:<\/span><br \/>\n            self<span class=\"token punctuation\">.<\/span>update<span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> l<span class=\"token punctuation\">,<\/span> mid<span class=\"token punctuation\">,<\/span> ql<span class=\"token punctuation\">,<\/span> qr<span class=\"token punctuation\">,<\/span> val<span class=\"token punctuation\">)<\/span><\/p>\n<p>        <span class=\"token keyword\">if<\/span> qr <span class=\"token operator\">&gt;<\/span> mid<span class=\"token punctuation\">:<\/span><br \/>\n            self<span class=\"token punctuation\">.<\/span>update<span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> mid <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> r<span class=\"token punctuation\">,<\/span> ql<span class=\"token punctuation\">,<\/span> qr<span class=\"token punctuation\">,<\/span> val<span class=\"token punctuation\">)<\/span><\/p>\n<p>        self<span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token builtin\">max<\/span><span class=\"token punctuation\">(<\/span>self<span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                              self<span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>    <span class=\"token keyword\">def<\/span> <span class=\"token function\">query_max<\/span><span class=\"token punctuation\">(<\/span>self<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> self<span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><\/p>\n<p><span class=\"token keyword\">def<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n    M<span class=\"token punctuation\">,<\/span> G <span class=\"token operator\">&#061;<\/span> <span class=\"token builtin\">map<\/span><span class=\"token punctuation\">(<\/span><span class=\"token builtin\">int<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token builtin\">input<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>split<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>    W <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token builtin\">list<\/span><span class=\"token punctuation\">(<\/span><span class=\"token builtin\">map<\/span><span class=\"token punctuation\">(<\/span><span class=\"token builtin\">int<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token builtin\">input<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>split<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n    all_prices <span class=\"token operator\">&#061;<\/span> W<span class=\"token punctuation\">[<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">:<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>copy<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>    T <span class=\"token operator\">&#061;<\/span> <span class=\"token builtin\">int<\/span><span class=\"token punctuation\">(<\/span><span class=\"token builtin\">input<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>    queries <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><\/p>\n<p>    <span class=\"token comment\"># \u8bfb\u5165\u6240\u6709\u64cd\u4f5c&#xff0c;\u5c06\u53ef\u80fd\u51fa\u73b0\u7684\u4ef7\u683c\u52a0\u5165\u79bb\u6563\u5316\u6570\u7ec4<\/span><br \/>\n    <span class=\"token keyword\">for<\/span> _ <span class=\"token keyword\">in<\/span> <span class=\"token builtin\">range<\/span><span class=\"token punctuation\">(<\/span>T<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n        b<span class=\"token punctuation\">,<\/span> c <span class=\"token operator\">&#061;<\/span> <span class=\"token builtin\">map<\/span><span class=\"token punctuation\">(<\/span><span class=\"token builtin\">int<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token builtin\">input<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>split<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n        queries<span class=\"token punctuation\">.<\/span>append<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span>b<span class=\"token punctuation\">,<\/span> c<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n        all_prices<span class=\"token punctuation\">.<\/span>append<span class=\"token punctuation\">(<\/span>c<span class=\"token punctuation\">)<\/span><\/p>\n<p>    <span class=\"token comment\"># \u79bb\u6563\u5316\u6240\u6709\u51fa\u73b0\u6807\u4ef7&#xff1a;\u6392\u5e8f\u3001\u53bb\u91cd<\/span><br \/>\n    all_prices <span class=\"token operator\">&#061;<\/span> <span class=\"token builtin\">sorted<\/span><span class=\"token punctuation\">(<\/span><span class=\"token builtin\">set<\/span><span class=\"token punctuation\">(<\/span>all_prices<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n    N <span class=\"token operator\">&#061;<\/span> <span class=\"token builtin\">len<\/span><span class=\"token punctuation\">(<\/span>all_prices<span class=\"token punctuation\">)<\/span><\/p>\n<p>    <span class=\"token comment\"># cnt[i] \u8868\u793a\u5f53\u524d\u4ef7\u683c\u7b49\u4e8e all_prices[i] \u7684\u6a58\u5b50\u6570\u91cf<\/span><br \/>\n    cnt <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">*<\/span> N<\/p>\n<p>    <span class=\"token keyword\">for<\/span> i <span class=\"token keyword\">in<\/span> <span class=\"token builtin\">range<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> M <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n        <span class=\"token comment\"># \u8fd4\u56de\u7b2c\u4e00\u4e2a\u5927\u4e8e\u7b49\u4e8e W[i] \u7684\u4ef7\u683c\u4e0b\u6807<\/span><br \/>\n        idx <span class=\"token operator\">&#061;<\/span> bisect_left<span class=\"token punctuation\">(<\/span>all_prices<span class=\"token punctuation\">,<\/span> W<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><br \/>\n        cnt<span class=\"token punctuation\">[<\/span>idx<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#043;&#061;<\/span> <span class=\"token number\">1<\/span><\/p>\n<p>    <span class=\"token comment\"># left[i] \u8868\u793a\u6240\u6709\u5305\u542b\u4ef7\u683c all_prices[i] \u7684\u7a97\u53e3\u7684\u6700\u5c0f\u5de6\u7aef\u70b9<\/span><br \/>\n    <span class=\"token comment\"># \u8fd9\u4e9b\u7a97\u53e3\u7684\u5de6\u7aef\u4ef7\u683c\u5fc5\u987b\u6ee1\u8db3 all_prices[i] &#8211; all_prices[l] &lt;&#061; G<\/span><br \/>\n    left <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">*<\/span> N<\/p>\n<p>    <span class=\"token keyword\">for<\/span> i <span class=\"token keyword\">in<\/span> <span class=\"token builtin\">range<\/span><span class=\"token punctuation\">(<\/span>N<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n        left<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> bisect_left<span class=\"token punctuation\">(<\/span>all_prices<span class=\"token punctuation\">,<\/span> all_prices<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#8211;<\/span> G<span class=\"token punctuation\">)<\/span><\/p>\n<p>    <span class=\"token comment\"># \u521d\u59cb\u5316 f[i]&#xff1a;\u4ee5 all_prices[i] \u4e3a\u5de6\u7aef\u70b9\u7684\u7a97\u53e3\u5185\u6a58\u5b50\u6570\u91cf<\/span><br \/>\n    f <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">*<\/span> N<br \/>\n    r <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><br \/>\n    total <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><\/p>\n<p>    <span class=\"token keyword\">for<\/span> i <span class=\"token keyword\">in<\/span> <span class=\"token builtin\">range<\/span><span class=\"token punctuation\">(<\/span>N<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n        <span class=\"token keyword\">while<\/span> r <span class=\"token operator\">&lt;<\/span> N <span class=\"token keyword\">and<\/span> all_prices<span class=\"token punctuation\">[<\/span>r<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#8211;<\/span> all_prices<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&lt;&#061;<\/span> G<span class=\"token punctuation\">:<\/span><br \/>\n            total <span class=\"token operator\">&#043;&#061;<\/span> cnt<span class=\"token punctuation\">[<\/span>r<span class=\"token punctuation\">]<\/span><br \/>\n            r <span class=\"token operator\">&#043;&#061;<\/span> <span class=\"token number\">1<\/span><\/p>\n<p>        f<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> total<br \/>\n        total <span class=\"token operator\">-&#061;<\/span> cnt<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><\/p>\n<p>    <span class=\"token comment\"># \u5efa\u7acb\u7ebf\u6bb5\u6811&#xff0c;\u7ef4\u62a4\u6240\u6709\u7a97\u53e3\u4e2d\u7684\u6700\u5927\u6a58\u5b50\u6570\u91cf<\/span><br \/>\n    seg <span class=\"token operator\">&#061;<\/span> SegmentTree<span class=\"token punctuation\">(<\/span>N<span class=\"token punctuation\">)<\/span><br \/>\n    seg<span class=\"token punctuation\">.<\/span>build<span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> N <span class=\"token operator\">&#8211;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> f<span class=\"token punctuation\">)<\/span><\/p>\n<p>    <span class=\"token comment\"># \u9010\u5929\u4fee\u6539\u4ef7\u683c\u5e76\u8f93\u51fa\u7b54\u6848<\/span><br \/>\n    ans <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><\/p>\n<p>    <span class=\"token keyword\">for<\/span> b<span class=\"token punctuation\">,<\/span> c <span class=\"token keyword\">in<\/span> queries<span class=\"token punctuation\">:<\/span><br \/>\n        old_id <span class=\"token operator\">&#061;<\/span> bisect_left<span class=\"token punctuation\">(<\/span>all_prices<span class=\"token punctuation\">,<\/span> W<span class=\"token punctuation\">[<\/span>b<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><br \/>\n        new_id <span class=\"token operator\">&#061;<\/span> bisect_left<span class=\"token punctuation\">(<\/span>all_prices<span class=\"token punctuation\">,<\/span> c<span class=\"token punctuation\">)<\/span><\/p>\n<p>        <span class=\"token comment\"># \u5982\u679c\u65b0\u65e7\u4ef7\u683c\u76f8\u540c&#xff0c;\u4e0d\u9700\u8981\u4fee\u6539<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> old_id <span class=\"token operator\">!&#061;<\/span> new_id<span class=\"token punctuation\">:<\/span><br \/>\n            <span class=\"token comment\"># \u79fb\u9664\u65e7\u4ef7\u683c&#xff1a;\u6240\u6709\u5305\u542b\u65e7\u4ef7\u683c\u7684\u7a97\u53e3\u6570\u91cf\u51cf 1<\/span><br \/>\n            seg<span class=\"token punctuation\">.<\/span>update<span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> N <span class=\"token operator\">&#8211;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> left<span class=\"token punctuation\">[<\/span>old_id<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> old_id<span class=\"token punctuation\">,<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><br \/>\n            cnt<span class=\"token punctuation\">[<\/span>old_id<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">-&#061;<\/span> <span class=\"token number\">1<\/span><\/p>\n<p>            <span class=\"token comment\"># \u52a0\u5165\u65b0\u4ef7\u683c&#xff1a;\u6240\u6709\u5305\u542b\u65b0\u4ef7\u683c\u7684\u7a97\u53e3\u6570\u91cf\u52a0 1<\/span><br \/>\n            seg<span class=\"token punctuation\">.<\/span>update<span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> N <span class=\"token operator\">&#8211;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> left<span class=\"token punctuation\">[<\/span>new_id<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> new_id<span class=\"token punctuation\">,<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><br \/>\n            cnt<span class=\"token punctuation\">[<\/span>new_id<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#043;&#061;<\/span> <span class=\"token number\">1<\/span><\/p>\n<p>            W<span class=\"token punctuation\">[<\/span>b<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> c<\/p>\n<p>        <span class=\"token comment\"># \u6839\u8282\u70b9\u7ef4\u62a4\u6240\u6709\u7a97\u53e3\u4e2d\u7684\u6700\u5927\u503c<\/span><br \/>\n        ans<span class=\"token punctuation\">.<\/span>append<span class=\"token punctuation\">(<\/span><span class=\"token builtin\">str<\/span><span class=\"token punctuation\">(<\/span>seg<span class=\"token punctuation\">.<\/span>query_max<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>    <span class=\"token keyword\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#039;\\\\n&#039;<\/span><span class=\"token punctuation\">.<\/span>join<span class=\"token punctuation\">(<\/span>ans<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token keyword\">if<\/span> __name__ <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token string\">&#034;__main__&#034;<\/span><span class=\"token punctuation\">:<\/span><br \/>\n    main<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<h3>JavaScript<\/h3>\n<p><span class=\"token keyword\">const<\/span> readline <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">require<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#039;readline&#039;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">const<\/span> rl <span class=\"token operator\">&#061;<\/span> readline<span class=\"token punctuation\">.<\/span><span class=\"token function\">createInterface<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token literal-property property\">input<\/span><span class=\"token operator\">:<\/span> process<span class=\"token punctuation\">.<\/span>stdin<span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token literal-property property\">output<\/span><span class=\"token operator\">:<\/span> process<span class=\"token punctuation\">.<\/span>stdout<br \/>\n<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p><span class=\"token keyword\">const<\/span> input <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>rl<span class=\"token punctuation\">.<\/span><span class=\"token function\">on<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#039;line&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token parameter\">line<\/span> <span class=\"token operator\">&#061;&gt;<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    input<span class=\"token punctuation\">.<\/span><span class=\"token function\">push<\/span><span class=\"token punctuation\">(<\/span>line<span class=\"token punctuation\">.<\/span><span class=\"token function\">trim<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>rl<span class=\"token punctuation\">.<\/span><span class=\"token function\">on<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#039;close&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#061;&gt;<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">let<\/span> idx <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">const<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token constant\">M<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token constant\">G<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> input<span class=\"token punctuation\">[<\/span>idx<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">split<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#039; &#039;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">map<\/span><span class=\"token punctuation\">(<\/span>Number<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">const<\/span> <span class=\"token constant\">W<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token operator\">&#8230;<\/span>input<span class=\"token punctuation\">[<\/span>idx<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">split<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#039; &#039;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">map<\/span><span class=\"token punctuation\">(<\/span>Number<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">const<\/span> all <span class=\"token operator\">&#061;<\/span> <span class=\"token constant\">W<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">slice<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">const<\/span> <span class=\"token constant\">T<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">Number<\/span><span class=\"token punctuation\">(<\/span>input<span class=\"token punctuation\">[<\/span>idx<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">const<\/span> queries <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token comment\">\/\/ \u8bfb\u5165\u6240\u6709\u64cd\u4f5c&#xff0c;\u5c06\u53ef\u80fd\u51fa\u73b0\u7684\u4ef7\u683c\u52a0\u5165\u79bb\u6563\u5316\u6570\u7ec4<\/span><br \/>\n    <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">let<\/span> i <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> <span class=\"token constant\">T<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">const<\/span> <span class=\"token punctuation\">[<\/span>b<span class=\"token punctuation\">,<\/span> c<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> input<span class=\"token punctuation\">[<\/span>idx<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">split<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#039; &#039;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">map<\/span><span class=\"token punctuation\">(<\/span>Number<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        queries<span class=\"token punctuation\">.<\/span><span class=\"token function\">push<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<\/span> b<span class=\"token punctuation\">,<\/span> c <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        all<span class=\"token punctuation\">.<\/span><span class=\"token function\">push<\/span><span class=\"token punctuation\">(<\/span>c<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token comment\">\/\/ \u79bb\u6563\u5316\u6240\u6709\u51fa\u73b0\u6807\u4ef7&#xff1a;\u6392\u5e8f\u3001\u53bb\u91cd<\/span><br \/>\n    all<span class=\"token punctuation\">.<\/span><span class=\"token function\">sort<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">a<span class=\"token punctuation\">,<\/span> b<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#061;&gt;<\/span> a <span class=\"token operator\">&#8211;<\/span> b<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">const<\/span> prices <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">const<\/span> x <span class=\"token keyword\">of<\/span> all<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>prices<span class=\"token punctuation\">.<\/span>length <span class=\"token operator\">&#061;&#061;&#061;<\/span> <span class=\"token number\">0<\/span> <span class=\"token operator\">||<\/span> prices<span class=\"token punctuation\">[<\/span>prices<span class=\"token punctuation\">.<\/span>length <span class=\"token operator\">&#8211;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">!&#061;&#061;<\/span> x<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            prices<span class=\"token punctuation\">.<\/span><span class=\"token function\">push<\/span><span class=\"token punctuation\">(<\/span>x<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">const<\/span> <span class=\"token constant\">N<\/span> <span class=\"token operator\">&#061;<\/span> prices<span class=\"token punctuation\">.<\/span>length<span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token comment\">\/\/ \u8fd4\u56de\u7b2c\u4e00\u4e2a\u5927\u4e8e\u7b49\u4e8e target \u7684\u4ef7\u683c\u4e0b\u6807<\/span><br \/>\n    <span class=\"token keyword\">function<\/span> <span class=\"token function\">lowerBound<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">target<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">let<\/span> l <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">let<\/span> r <span class=\"token operator\">&#061;<\/span> <span class=\"token constant\">N<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token keyword\">while<\/span> <span class=\"token punctuation\">(<\/span>l <span class=\"token operator\">&lt;<\/span> r<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">const<\/span> mid <span class=\"token operator\">&#061;<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">floor<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span>l <span class=\"token operator\">&#043;<\/span> r<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>            <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>prices<span class=\"token punctuation\">[<\/span>mid<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&lt;<\/span> target<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                l <span class=\"token operator\">&#061;<\/span> mid <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                r <span class=\"token operator\">&#061;<\/span> mid<span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token keyword\">return<\/span> l<span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token comment\">\/\/ cnt[i] \u8868\u793a\u5f53\u524d\u4ef7\u683c\u7b49\u4e8e prices[i] \u7684\u6a58\u5b50\u6570\u91cf<\/span><br \/>\n    <span class=\"token keyword\">const<\/span> cnt <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Array<\/span><span class=\"token punctuation\">(<\/span><span class=\"token constant\">N<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">fill<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">let<\/span> i <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;&#061;<\/span> <span class=\"token constant\">M<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token comment\">\/\/ \u8fd4\u56de\u7b2c\u4e00\u4e2a\u5927\u4e8e\u7b49\u4e8e W[i] \u7684\u4ef7\u683c\u4e0b\u6807<\/span><br \/>\n        <span class=\"token keyword\">const<\/span> id <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">lowerBound<\/span><span class=\"token punctuation\">(<\/span><span class=\"token constant\">W<\/span><span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        cnt<span class=\"token punctuation\">[<\/span>id<span class=\"token punctuation\">]<\/span><span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token comment\">\/\/ left[i] \u8868\u793a\u6240\u6709\u5305\u542b\u4ef7\u683c prices[i] \u7684\u7a97\u53e3\u7684\u6700\u5c0f\u5de6\u7aef\u70b9<\/span><br \/>\n    <span class=\"token comment\">\/\/ \u8fd9\u4e9b\u7a97\u53e3\u7684\u5de6\u7aef\u4ef7\u683c\u5fc5\u987b\u6ee1\u8db3 prices[i] &#8211; prices[l] &lt;&#061; G<\/span><br \/>\n    <span class=\"token keyword\">const<\/span> left <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Array<\/span><span class=\"token punctuation\">(<\/span><span class=\"token constant\">N<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">let<\/span> i <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> <span class=\"token constant\">N<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        left<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">lowerBound<\/span><span class=\"token punctuation\">(<\/span>prices<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#8211;<\/span> <span class=\"token constant\">G<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token comment\">\/\/ \u521d\u59cb\u5316 f[i]&#xff1a;\u4ee5 prices[i] \u4e3a\u5de6\u7aef\u70b9\u7684\u7a97\u53e3\u5185\u6a58\u5b50\u6570\u91cf<\/span><br \/>\n    <span class=\"token keyword\">const<\/span> f <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Array<\/span><span class=\"token punctuation\">(<\/span><span class=\"token constant\">N<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">fill<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">let<\/span> r <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token keyword\">let<\/span> sum <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">let<\/span> i <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> <span class=\"token constant\">N<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">while<\/span> <span class=\"token punctuation\">(<\/span>r <span class=\"token operator\">&lt;<\/span> <span class=\"token constant\">N<\/span> <span class=\"token operator\">&amp;&amp;<\/span> prices<span class=\"token punctuation\">[<\/span>r<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#8211;<\/span> prices<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&lt;&#061;<\/span> <span class=\"token constant\">G<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            sum <span class=\"token operator\">&#043;&#061;<\/span> cnt<span class=\"token punctuation\">[<\/span>r<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            r<span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        f<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> sum<span class=\"token punctuation\">;<\/span><br \/>\n        sum <span class=\"token operator\">-&#061;<\/span> cnt<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token keyword\">class<\/span> <span class=\"token class-name\">SegmentTree<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token function\">constructor<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">n<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>n <span class=\"token operator\">&#061;<\/span> n<span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>tree <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Array<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">4<\/span> <span class=\"token operator\">*<\/span> n <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">5<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">fill<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>lazy <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">Array<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">4<\/span> <span class=\"token operator\">*<\/span> n <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">5<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">fill<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token function\">apply<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">node<span class=\"token punctuation\">,<\/span> val<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#043;&#061;<\/span> val<span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#043;&#061;<\/span> val<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token function\">pushDown<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">node<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">!&#061;&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">apply<\/span><span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">apply<\/span><span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token function\">build<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">node<span class=\"token punctuation\">,<\/span> l<span class=\"token punctuation\">,<\/span> r<span class=\"token punctuation\">,<\/span> a<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>l <span class=\"token operator\">&#061;&#061;&#061;<\/span> r<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> a<span class=\"token punctuation\">[<\/span>l<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token keyword\">return<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><\/p>\n<p>            <span class=\"token keyword\">const<\/span> mid <span class=\"token operator\">&#061;<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">floor<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span>l <span class=\"token operator\">&#043;<\/span> r<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>            <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">build<\/span><span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> l<span class=\"token punctuation\">,<\/span> mid<span class=\"token punctuation\">,<\/span> a<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">build<\/span><span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> mid <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> r<span class=\"token punctuation\">,<\/span> a<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>            <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">max<\/span><span class=\"token punctuation\">(<\/span><br \/>\n                <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><br \/>\n            <span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token function\">update<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">node<span class=\"token punctuation\">,<\/span> l<span class=\"token punctuation\">,<\/span> r<span class=\"token punctuation\">,<\/span> ql<span class=\"token punctuation\">,<\/span> qr<span class=\"token punctuation\">,<\/span> val<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>ql <span class=\"token operator\">&lt;&#061;<\/span> l <span class=\"token operator\">&amp;&amp;<\/span> r <span class=\"token operator\">&lt;&#061;<\/span> qr<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">apply<\/span><span class=\"token punctuation\">(<\/span>node<span class=\"token punctuation\">,<\/span> val<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n                <span class=\"token keyword\">return<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><\/p>\n<p>            <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">pushDown<\/span><span class=\"token punctuation\">(<\/span>node<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>            <span class=\"token keyword\">const<\/span> mid <span class=\"token operator\">&#061;<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">floor<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span>l <span class=\"token operator\">&#043;<\/span> r<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>            <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>ql <span class=\"token operator\">&lt;&#061;<\/span> mid<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">update<\/span><span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> l<span class=\"token punctuation\">,<\/span> mid<span class=\"token punctuation\">,<\/span> ql<span class=\"token punctuation\">,<\/span> qr<span class=\"token punctuation\">,<\/span> val<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><\/p>\n<p>            <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>qr <span class=\"token operator\">&gt;<\/span> mid<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n                <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">update<\/span><span class=\"token punctuation\">(<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> mid <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> r<span class=\"token punctuation\">,<\/span> ql<span class=\"token punctuation\">,<\/span> qr<span class=\"token punctuation\">,<\/span> val<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            <span class=\"token punctuation\">}<\/span><\/p>\n<p>            <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">max<\/span><span class=\"token punctuation\">(<\/span><br \/>\n                <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span><br \/>\n                <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><br \/>\n            <span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token function\">queryMax<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token keyword\">return<\/span> <span class=\"token keyword\">this<\/span><span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    <span class=\"token comment\">\/\/ \u5efa\u7acb\u7ebf\u6bb5\u6811&#xff0c;\u7ef4\u62a4\u6240\u6709\u7a97\u53e3\u4e2d\u7684\u6700\u5927\u6a58\u5b50\u6570\u91cf<\/span><br \/>\n    <span class=\"token keyword\">const<\/span> seg <span class=\"token operator\">&#061;<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">SegmentTree<\/span><span class=\"token punctuation\">(<\/span><span class=\"token constant\">N<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    seg<span class=\"token punctuation\">.<\/span><span class=\"token function\">build<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token constant\">N<\/span> <span class=\"token operator\">&#8211;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> f<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token comment\">\/\/ \u9010\u5929\u4fee\u6539\u4ef7\u683c\u5e76\u8f93\u51fa\u7b54\u6848<\/span><br \/>\n    <span class=\"token keyword\">const<\/span> ans <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>    <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">const<\/span> <span class=\"token punctuation\">{<\/span> b<span class=\"token punctuation\">,<\/span> c <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">of<\/span> queries<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">const<\/span> oldId <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">lowerBound<\/span><span class=\"token punctuation\">(<\/span><span class=\"token constant\">W<\/span><span class=\"token punctuation\">[<\/span>b<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token keyword\">const<\/span> newId <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">lowerBound<\/span><span class=\"token punctuation\">(<\/span>c<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ \u5982\u679c\u65b0\u65e7\u4ef7\u683c\u76f8\u540c&#xff0c;\u4e0d\u9700\u8981\u4fee\u6539<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>oldId <span class=\"token operator\">!&#061;&#061;<\/span> newId<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token comment\">\/\/ \u79fb\u9664\u65e7\u4ef7\u683c&#xff1a;\u6240\u6709\u5305\u542b\u65e7\u4ef7\u683c\u7684\u7a97\u53e3\u6570\u91cf\u51cf 1<\/span><br \/>\n            seg<span class=\"token punctuation\">.<\/span><span class=\"token function\">update<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token constant\">N<\/span> <span class=\"token operator\">&#8211;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> left<span class=\"token punctuation\">[<\/span>oldId<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> oldId<span class=\"token punctuation\">,<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            cnt<span class=\"token punctuation\">[<\/span>oldId<span class=\"token punctuation\">]<\/span><span class=\"token operator\">&#8212;<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>            <span class=\"token comment\">\/\/ \u52a0\u5165\u65b0\u4ef7\u683c&#xff1a;\u6240\u6709\u5305\u542b\u65b0\u4ef7\u683c\u7684\u7a97\u53e3\u6570\u91cf\u52a0 1<\/span><br \/>\n            seg<span class=\"token punctuation\">.<\/span><span class=\"token function\">update<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token constant\">N<\/span> <span class=\"token operator\">&#8211;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> left<span class=\"token punctuation\">[<\/span>newId<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> newId<span class=\"token punctuation\">,<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n            cnt<span class=\"token punctuation\">[<\/span>newId<span class=\"token punctuation\">]<\/span><span class=\"token operator\">&#043;&#043;<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<p>            <span class=\"token constant\">W<\/span><span class=\"token punctuation\">[<\/span>b<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> c<span class=\"token punctuation\">;<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><\/p>\n<p>        <span class=\"token comment\">\/\/ \u6839\u8282\u70b9\u7ef4\u62a4\u6240\u6709\u7a97\u53e3\u4e2d\u7684\u6700\u5927\u503c<\/span><br \/>\n        ans<span class=\"token punctuation\">.<\/span><span class=\"token function\">push<\/span><span class=\"token punctuation\">(<\/span>seg<span class=\"token punctuation\">.<\/span><span class=\"token function\">queryMax<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><\/p>\n<p>    console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span>ans<span class=\"token punctuation\">.<\/span><span class=\"token function\">join<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#039;\\\\n&#039;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<h3>Go<\/h3>\n<p><span class=\"token keyword\">package<\/span> main<\/p>\n<p><span class=\"token keyword\">import<\/span> <span class=\"token punctuation\">(<\/span><br \/>\n<span class=\"token string\">&#034;bufio&#034;<\/span><br \/>\n<span class=\"token string\">&#034;fmt&#034;<\/span><br \/>\n<span class=\"token string\">&#034;os&#034;<\/span><br \/>\n<span class=\"token string\">&#034;sort&#034;<\/span><br \/>\n<span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token keyword\">func<\/span> <span class=\"token function\">max<\/span><span class=\"token punctuation\">(<\/span>a<span class=\"token punctuation\">,<\/span> b <span class=\"token builtin\">int<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token builtin\">int<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token keyword\">if<\/span> a <span class=\"token operator\">&gt;<\/span> b <span class=\"token punctuation\">{<\/span><br \/>\n        <span class=\"token keyword\">return<\/span> a<br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> b<br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">type<\/span> SegmentTree <span class=\"token keyword\">struct<\/span> <span class=\"token punctuation\">{<\/span><br \/>\nn    <span class=\"token builtin\">int<\/span><br \/>\ntree <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token builtin\">int<\/span><br \/>\nlazy <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token builtin\">int<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">func<\/span> <span class=\"token function\">NewSegmentTree<\/span><span class=\"token punctuation\">(<\/span>n <span class=\"token builtin\">int<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span>SegmentTree <span class=\"token punctuation\">{<\/span><br \/>\n<span class=\"token keyword\">return<\/span> <span class=\"token operator\">&amp;<\/span>SegmentTree<span class=\"token punctuation\">{<\/span><br \/>\nn<span class=\"token punctuation\">:<\/span>    n<span class=\"token punctuation\">,<\/span><br \/>\ntree<span class=\"token punctuation\">:<\/span> <span class=\"token function\">make<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token builtin\">int<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">4<\/span><span class=\"token operator\">*<\/span>n<span class=\"token operator\">&#043;<\/span><span class=\"token number\">5<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><br \/>\nlazy<span class=\"token punctuation\">:<\/span> <span class=\"token function\">make<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token builtin\">int<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">4<\/span><span class=\"token operator\">*<\/span>n<span class=\"token operator\">&#043;<\/span><span class=\"token number\">5<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">func<\/span> <span class=\"token punctuation\">(<\/span>st <span class=\"token operator\">*<\/span>SegmentTree<span class=\"token punctuation\">)<\/span> <span class=\"token function\">apply<\/span><span class=\"token punctuation\">(<\/span>node<span class=\"token punctuation\">,<\/span> val <span class=\"token builtin\">int<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\nst<span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#043;&#061;<\/span> val<br \/>\nst<span class=\"token punctuation\">.<\/span>lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#043;&#061;<\/span> val<br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">func<\/span> <span class=\"token punctuation\">(<\/span>st <span class=\"token operator\">*<\/span>SegmentTree<span class=\"token punctuation\">)<\/span> <span class=\"token function\">pushDown<\/span><span class=\"token punctuation\">(<\/span>node <span class=\"token builtin\">int<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n<span class=\"token keyword\">if<\/span> st<span class=\"token punctuation\">.<\/span>lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">!&#061;<\/span> <span class=\"token number\">0<\/span> <span class=\"token punctuation\">{<\/span><br \/>\nst<span class=\"token punctuation\">.<\/span><span class=\"token function\">apply<\/span><span class=\"token punctuation\">(<\/span>node<span class=\"token operator\">*<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> st<span class=\"token punctuation\">.<\/span>lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><br \/>\nst<span class=\"token punctuation\">.<\/span><span class=\"token function\">apply<\/span><span class=\"token punctuation\">(<\/span>node<span class=\"token operator\">*<\/span><span class=\"token number\">2<\/span><span class=\"token operator\">&#043;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> st<span class=\"token punctuation\">.<\/span>lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><br \/>\nst<span class=\"token punctuation\">.<\/span>lazy<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">func<\/span> <span class=\"token punctuation\">(<\/span>st <span class=\"token operator\">*<\/span>SegmentTree<span class=\"token punctuation\">)<\/span> <span class=\"token function\">build<\/span><span class=\"token punctuation\">(<\/span>node<span class=\"token punctuation\">,<\/span> l<span class=\"token punctuation\">,<\/span> r <span class=\"token builtin\">int<\/span><span class=\"token punctuation\">,<\/span> a <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token builtin\">int<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n<span class=\"token keyword\">if<\/span> l <span class=\"token operator\">&#061;&#061;<\/span> r <span class=\"token punctuation\">{<\/span><br \/>\nst<span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> a<span class=\"token punctuation\">[<\/span>l<span class=\"token punctuation\">]<\/span><br \/>\n<span class=\"token keyword\">return<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>mid <span class=\"token operator\">:&#061;<\/span> <span class=\"token punctuation\">(<\/span>l <span class=\"token operator\">&#043;<\/span> r<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">2<\/span><br \/>\nst<span class=\"token punctuation\">.<\/span><span class=\"token function\">build<\/span><span class=\"token punctuation\">(<\/span>node<span class=\"token operator\">*<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> l<span class=\"token punctuation\">,<\/span> mid<span class=\"token punctuation\">,<\/span> a<span class=\"token punctuation\">)<\/span><br \/>\nst<span class=\"token punctuation\">.<\/span><span class=\"token function\">build<\/span><span class=\"token punctuation\">(<\/span>node<span class=\"token operator\">*<\/span><span class=\"token number\">2<\/span><span class=\"token operator\">&#043;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> mid<span class=\"token operator\">&#043;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> r<span class=\"token punctuation\">,<\/span> a<span class=\"token punctuation\">)<\/span><\/p>\n<p>st<span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">max<\/span><span class=\"token punctuation\">(<\/span>st<span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node<span class=\"token operator\">*<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> st<span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node<span class=\"token operator\">*<\/span><span class=\"token number\">2<\/span><span class=\"token operator\">&#043;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">func<\/span> <span class=\"token punctuation\">(<\/span>st <span class=\"token operator\">*<\/span>SegmentTree<span class=\"token punctuation\">)<\/span> <span class=\"token function\">update<\/span><span class=\"token punctuation\">(<\/span>node<span class=\"token punctuation\">,<\/span> l<span class=\"token punctuation\">,<\/span> r<span class=\"token punctuation\">,<\/span> ql<span class=\"token punctuation\">,<\/span> qr<span class=\"token punctuation\">,<\/span> val <span class=\"token builtin\">int<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n<span class=\"token keyword\">if<\/span> ql <span class=\"token operator\">&lt;&#061;<\/span> l <span class=\"token operator\">&amp;&amp;<\/span> r <span class=\"token operator\">&lt;&#061;<\/span> qr <span class=\"token punctuation\">{<\/span><br \/>\nst<span class=\"token punctuation\">.<\/span><span class=\"token function\">apply<\/span><span class=\"token punctuation\">(<\/span>node<span class=\"token punctuation\">,<\/span> val<span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token keyword\">return<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>st<span class=\"token punctuation\">.<\/span><span class=\"token function\">pushDown<\/span><span class=\"token punctuation\">(<\/span>node<span class=\"token punctuation\">)<\/span><\/p>\n<p>mid <span class=\"token operator\">:&#061;<\/span> <span class=\"token punctuation\">(<\/span>l <span class=\"token operator\">&#043;<\/span> r<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">2<\/span><\/p>\n<p><span class=\"token keyword\">if<\/span> ql <span class=\"token operator\">&lt;&#061;<\/span> mid <span class=\"token punctuation\">{<\/span><br \/>\nst<span class=\"token punctuation\">.<\/span><span class=\"token function\">update<\/span><span class=\"token punctuation\">(<\/span>node<span class=\"token operator\">*<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> l<span class=\"token punctuation\">,<\/span> mid<span class=\"token punctuation\">,<\/span> ql<span class=\"token punctuation\">,<\/span> qr<span class=\"token punctuation\">,<\/span> val<span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">if<\/span> qr <span class=\"token operator\">&gt;<\/span> mid <span class=\"token punctuation\">{<\/span><br \/>\nst<span class=\"token punctuation\">.<\/span><span class=\"token function\">update<\/span><span class=\"token punctuation\">(<\/span>node<span class=\"token operator\">*<\/span><span class=\"token number\">2<\/span><span class=\"token operator\">&#043;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> mid<span class=\"token operator\">&#043;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> r<span class=\"token punctuation\">,<\/span> ql<span class=\"token punctuation\">,<\/span> qr<span class=\"token punctuation\">,<\/span> val<span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>st<span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">max<\/span><span class=\"token punctuation\">(<\/span>st<span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node<span class=\"token operator\">*<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> st<span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span>node<span class=\"token operator\">*<\/span><span class=\"token number\">2<\/span><span class=\"token operator\">&#043;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">func<\/span> <span class=\"token punctuation\">(<\/span>st <span class=\"token operator\">*<\/span>SegmentTree<span class=\"token punctuation\">)<\/span> <span class=\"token function\">queryMax<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token builtin\">int<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n<span class=\"token keyword\">return<\/span> st<span class=\"token punctuation\">.<\/span>tree<span class=\"token punctuation\">[<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">type<\/span> Query <span class=\"token keyword\">struct<\/span> <span class=\"token punctuation\">{<\/span><br \/>\nb<span class=\"token punctuation\">,<\/span> c <span class=\"token builtin\">int<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">func<\/span> <span class=\"token function\">lowerBound<\/span><span class=\"token punctuation\">(<\/span>a <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token builtin\">int<\/span><span class=\"token punctuation\">,<\/span> target <span class=\"token builtin\">int<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token builtin\">int<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n<span class=\"token keyword\">return<\/span> sort<span class=\"token punctuation\">.<\/span><span class=\"token function\">Search<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">len<\/span><span class=\"token punctuation\">(<\/span>a<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">func<\/span><span class=\"token punctuation\">(<\/span>i <span class=\"token builtin\">int<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token builtin\">bool<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n<span class=\"token keyword\">return<\/span> a<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&gt;&#061;<\/span> target<br \/>\n<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">func<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span><br \/>\nreader <span class=\"token operator\">:&#061;<\/span> bufio<span class=\"token punctuation\">.<\/span><span class=\"token function\">NewReader<\/span><span class=\"token punctuation\">(<\/span>os<span class=\"token punctuation\">.<\/span>Stdin<span class=\"token punctuation\">)<\/span><br \/>\nwriter <span class=\"token operator\">:&#061;<\/span> bufio<span class=\"token punctuation\">.<\/span><span class=\"token function\">NewWriter<\/span><span class=\"token punctuation\">(<\/span>os<span class=\"token punctuation\">.<\/span>Stdout<span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token keyword\">defer<\/span> writer<span class=\"token punctuation\">.<\/span><span class=\"token function\">Flush<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token keyword\">var<\/span> M<span class=\"token punctuation\">,<\/span> G <span class=\"token builtin\">int<\/span><br \/>\nfmt<span class=\"token punctuation\">.<\/span><span class=\"token function\">Fscan<\/span><span class=\"token punctuation\">(<\/span>reader<span class=\"token punctuation\">,<\/span> <span class=\"token operator\">&amp;<\/span>M<span class=\"token punctuation\">,<\/span> <span class=\"token operator\">&amp;<\/span>G<span class=\"token punctuation\">)<\/span><\/p>\n<p>W <span class=\"token operator\">:&#061;<\/span> <span class=\"token function\">make<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token builtin\">int<\/span><span class=\"token punctuation\">,<\/span> M<span class=\"token operator\">&#043;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><br \/>\nall <span class=\"token operator\">:&#061;<\/span> <span class=\"token function\">make<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token builtin\">int<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token keyword\">for<\/span> i <span class=\"token operator\">:&#061;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;&#061;<\/span> M<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">&#043;&#043;<\/span> <span class=\"token punctuation\">{<\/span><br \/>\nfmt<span class=\"token punctuation\">.<\/span><span class=\"token function\">Fscan<\/span><span class=\"token punctuation\">(<\/span>reader<span class=\"token punctuation\">,<\/span> <span class=\"token operator\">&amp;<\/span>W<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><br \/>\nall <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">append<\/span><span class=\"token punctuation\">(<\/span>all<span class=\"token punctuation\">,<\/span> W<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">var<\/span> T <span class=\"token builtin\">int<\/span><br \/>\nfmt<span class=\"token punctuation\">.<\/span><span class=\"token function\">Fscan<\/span><span class=\"token punctuation\">(<\/span>reader<span class=\"token punctuation\">,<\/span> <span class=\"token operator\">&amp;<\/span>T<span class=\"token punctuation\">)<\/span><\/p>\n<p>queries <span class=\"token operator\">:&#061;<\/span> <span class=\"token function\">make<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span>Query<span class=\"token punctuation\">,<\/span> T<span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\">\/\/ \u8bfb\u5165\u6240\u6709\u64cd\u4f5c&#xff0c;\u5c06\u53ef\u80fd\u51fa\u73b0\u7684\u4ef7\u683c\u52a0\u5165\u79bb\u6563\u5316\u6570\u7ec4<\/span><br \/>\n<span class=\"token keyword\">for<\/span> i <span class=\"token operator\">:&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> T<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">&#043;&#043;<\/span> <span class=\"token punctuation\">{<\/span><br \/>\nfmt<span class=\"token punctuation\">.<\/span><span class=\"token function\">Fscan<\/span><span class=\"token punctuation\">(<\/span>reader<span class=\"token punctuation\">,<\/span> <span class=\"token operator\">&amp;<\/span>queries<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>b<span class=\"token punctuation\">,<\/span> <span class=\"token operator\">&amp;<\/span>queries<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>c<span class=\"token punctuation\">)<\/span><br \/>\nall <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">append<\/span><span class=\"token punctuation\">(<\/span>all<span class=\"token punctuation\">,<\/span> queries<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>c<span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token comment\">\/\/ \u79bb\u6563\u5316\u6240\u6709\u51fa\u73b0\u6807\u4ef7&#xff1a;\u6392\u5e8f\u3001\u53bb\u91cd<\/span><br \/>\nsort<span class=\"token punctuation\">.<\/span><span class=\"token function\">Ints<\/span><span class=\"token punctuation\">(<\/span>all<span class=\"token punctuation\">)<\/span><\/p>\n<p>prices <span class=\"token operator\">:&#061;<\/span> <span class=\"token function\">make<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token builtin\">int<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token function\">len<\/span><span class=\"token punctuation\">(<\/span>all<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token keyword\">for<\/span> <span class=\"token boolean\">_<\/span><span class=\"token punctuation\">,<\/span> x <span class=\"token operator\">:&#061;<\/span> <span class=\"token keyword\">range<\/span> all <span class=\"token punctuation\">{<\/span><br \/>\n<span class=\"token keyword\">if<\/span> <span class=\"token function\">len<\/span><span class=\"token punctuation\">(<\/span>prices<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token number\">0<\/span> <span class=\"token operator\">||<\/span> prices<span class=\"token punctuation\">[<\/span><span class=\"token function\">len<\/span><span class=\"token punctuation\">(<\/span>prices<span class=\"token punctuation\">)<\/span><span class=\"token operator\">&#8211;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">!&#061;<\/span> x <span class=\"token punctuation\">{<\/span><br \/>\nprices <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">append<\/span><span class=\"token punctuation\">(<\/span>prices<span class=\"token punctuation\">,<\/span> x<span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>N <span class=\"token operator\">:&#061;<\/span> <span class=\"token function\">len<\/span><span class=\"token punctuation\">(<\/span>prices<span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\">\/\/ cnt[i] \u8868\u793a\u5f53\u524d\u4ef7\u683c\u7b49\u4e8e prices[i] \u7684\u6a58\u5b50\u6570\u91cf<\/span><br \/>\ncnt <span class=\"token operator\">:&#061;<\/span> <span class=\"token function\">make<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token builtin\">int<\/span><span class=\"token punctuation\">,<\/span> N<span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token keyword\">for<\/span> i <span class=\"token operator\">:&#061;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;&#061;<\/span> M<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">&#043;&#043;<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n<span class=\"token comment\">\/\/ \u8fd4\u56de\u7b2c\u4e00\u4e2a\u5927\u4e8e\u7b49\u4e8e W[i] \u7684\u4ef7\u683c\u4e0b\u6807<\/span><br \/>\nid <span class=\"token operator\">:&#061;<\/span> <span class=\"token function\">lowerBound<\/span><span class=\"token punctuation\">(<\/span>prices<span class=\"token punctuation\">,<\/span> W<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><br \/>\ncnt<span class=\"token punctuation\">[<\/span>id<span class=\"token punctuation\">]<\/span><span class=\"token operator\">&#043;&#043;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token comment\">\/\/ left[i] \u8868\u793a\u6240\u6709\u5305\u542b\u4ef7\u683c prices[i] \u7684\u7a97\u53e3\u7684\u6700\u5c0f\u5de6\u7aef\u70b9<\/span><br \/>\n<span class=\"token comment\">\/\/ \u8fd9\u4e9b\u7a97\u53e3\u7684\u5de6\u7aef\u4ef7\u683c\u5fc5\u987b\u6ee1\u8db3 prices[i] &#8211; prices[l] &lt;&#061; G<\/span><br \/>\nleft <span class=\"token operator\">:&#061;<\/span> <span class=\"token function\">make<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token builtin\">int<\/span><span class=\"token punctuation\">,<\/span> N<span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token keyword\">for<\/span> i <span class=\"token operator\">:&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> N<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">&#043;&#043;<\/span> <span class=\"token punctuation\">{<\/span><br \/>\nleft<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token function\">lowerBound<\/span><span class=\"token punctuation\">(<\/span>prices<span class=\"token punctuation\">,<\/span> prices<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token operator\">&#8211;<\/span>G<span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token comment\">\/\/ \u521d\u59cb\u5316 f[i]&#xff1a;\u4ee5 prices[i] \u4e3a\u5de6\u7aef\u70b9\u7684\u7a97\u53e3\u5185\u6a58\u5b50\u6570\u91cf<\/span><br \/>\nf <span class=\"token operator\">:&#061;<\/span> <span class=\"token function\">make<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token builtin\">int<\/span><span class=\"token punctuation\">,<\/span> N<span class=\"token punctuation\">)<\/span><br \/>\nr <span class=\"token operator\">:&#061;<\/span> <span class=\"token number\">0<\/span><br \/>\nsum <span class=\"token operator\">:&#061;<\/span> <span class=\"token number\">0<\/span><\/p>\n<p><span class=\"token keyword\">for<\/span> i <span class=\"token operator\">:&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> N<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">&#043;&#043;<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n<span class=\"token keyword\">for<\/span> r <span class=\"token operator\">&lt;<\/span> N <span class=\"token operator\">&amp;&amp;<\/span> prices<span class=\"token punctuation\">[<\/span>r<span class=\"token punctuation\">]<\/span><span class=\"token operator\">&#8211;<\/span>prices<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&lt;&#061;<\/span> G <span class=\"token punctuation\">{<\/span><br \/>\nsum <span class=\"token operator\">&#043;&#061;<\/span> cnt<span class=\"token punctuation\">[<\/span>r<span class=\"token punctuation\">]<\/span><br \/>\nr<span class=\"token operator\">&#043;&#043;<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>f<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> sum<br \/>\nsum <span class=\"token operator\">-&#061;<\/span> cnt<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token comment\">\/\/ \u5efa\u7acb\u7ebf\u6bb5\u6811&#xff0c;\u7ef4\u62a4\u6240\u6709\u7a97\u53e3\u4e2d\u7684\u6700\u5927\u6a58\u5b50\u6570\u91cf<\/span><br \/>\nseg <span class=\"token operator\">:&#061;<\/span> <span class=\"token function\">NewSegmentTree<\/span><span class=\"token punctuation\">(<\/span>N<span class=\"token punctuation\">)<\/span><br \/>\nseg<span class=\"token punctuation\">.<\/span><span class=\"token function\">build<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> N<span class=\"token operator\">&#8211;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> f<span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\">\/\/ \u9010\u5929\u4fee\u6539\u4ef7\u683c\u5e76\u8f93\u51fa\u7b54\u6848<\/span><br \/>\n<span class=\"token keyword\">for<\/span> <span class=\"token boolean\">_<\/span><span class=\"token punctuation\">,<\/span> query <span class=\"token operator\">:&#061;<\/span> <span class=\"token keyword\">range<\/span> queries <span class=\"token punctuation\">{<\/span><br \/>\nb<span class=\"token punctuation\">,<\/span> c <span class=\"token operator\">:&#061;<\/span> query<span class=\"token punctuation\">.<\/span>b<span class=\"token punctuation\">,<\/span> query<span class=\"token punctuation\">.<\/span>c<\/p>\n<p>oldId <span class=\"token operator\">:&#061;<\/span> <span class=\"token function\">lowerBound<\/span><span class=\"token punctuation\">(<\/span>prices<span class=\"token punctuation\">,<\/span> W<span class=\"token punctuation\">[<\/span>b<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><br \/>\nnewId <span class=\"token operator\">:&#061;<\/span> <span class=\"token function\">lowerBound<\/span><span class=\"token punctuation\">(<\/span>prices<span class=\"token punctuation\">,<\/span> c<span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\">\/\/ \u5982\u679c\u65b0\u65e7\u4ef7\u683c\u76f8\u540c&#xff0c;\u4e0d\u9700\u8981\u4fee\u6539<\/span><br \/>\n<span class=\"token keyword\">if<\/span> oldId <span class=\"token operator\">!&#061;<\/span> newId <span class=\"token punctuation\">{<\/span><br \/>\n<span class=\"token comment\">\/\/ \u79fb\u9664\u65e7\u4ef7\u683c&#xff1a;\u6240\u6709\u5305\u542b\u65e7\u4ef7\u683c\u7684\u7a97\u53e3\u6570\u91cf\u51cf 1<\/span><br \/>\nseg<span class=\"token punctuation\">.<\/span><span class=\"token function\">update<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> N<span class=\"token operator\">&#8211;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> left<span class=\"token punctuation\">[<\/span>oldId<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> oldId<span class=\"token punctuation\">,<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><br \/>\ncnt<span class=\"token punctuation\">[<\/span>oldId<span class=\"token punctuation\">]<\/span><span class=\"token operator\">&#8212;<\/span><\/p>\n<p><span class=\"token comment\">\/\/ \u52a0\u5165\u65b0\u4ef7\u683c&#xff1a;\u6240\u6709\u5305\u542b\u65b0\u4ef7\u683c\u7684\u7a97\u53e3\u6570\u91cf\u52a0 1<\/span><br \/>\nseg<span class=\"token punctuation\">.<\/span><span class=\"token function\">update<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> N<span class=\"token operator\">&#8211;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> left<span class=\"token punctuation\">[<\/span>newId<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> newId<span class=\"token punctuation\">,<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><br \/>\ncnt<span class=\"token punctuation\">[<\/span>newId<span class=\"token punctuation\">]<\/span><span class=\"token operator\">&#043;&#043;<\/span><\/p>\n<p>W<span class=\"token punctuation\">[<\/span>b<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> c<br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token comment\">\/\/ \u6839\u8282\u70b9\u7ef4\u62a4\u6240\u6709\u7a97\u53e3\u4e2d\u7684\u6700\u5927\u503c<\/span><br \/>\nfmt<span class=\"token punctuation\">.<\/span><span class=\"token function\">Fprintln<\/span><span class=\"token punctuation\">(<\/span>writer<span class=\"token punctuation\">,<\/span> seg<span class=\"token punctuation\">.<\/span><span class=\"token function\">queryMax<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6807\u4ef7\u5dee\u5185\u9009\u8d2d \u62fc\u591a\u591a 10\u670826\u53f7 \u7b14\u8bd5\u771f\u9898 \u7b2c\u56db\u9898 \u62fc\u591a\u591a\u771f\u9898\u76ee\u5f55\u70b9\u51fb\u67e5\u770b: \u62fc\u591a\u591a\u7b14\u8bd5\u771f\u9898\u9898\u5e93\u76ee\u5f55&#xff5c;\u7b14\u8bd5\u9898\u5e93  \u7b97\u6cd5\u8003\u70b9\u8be6\u89e3<br \/>\n\u9898\u76ee\u5185\u5bb9<br \/>\n\u591a\u591a\u7231\u5403\u6a58\u5b50\u3002\u8fd9\u5929\u4ed6\u505c\u5728\u4e00\u5bb6\u6c34\u679c\u644a\u524d\u9762&#xff0c;\u644a\u4e0a\u4f9d\u6b21\u6446\u7740 MMM \u79cd\u5f7c\u6b64\u4e0d\u540c\u7684\u6a58\u5b50\u3002\u8001\u677f\u6bcf\u4e00\u5929\u90fd\u4f1a\u9009\u4e2d\u5176\u4e2d\u4e00\u79cd&#xff0c;\u628a\u8fd9\u4e00\u5929\u7684\u6807\u4ef7\u6362\u6210\u4e00\u4e2a\u65b0\u6570&#xff0c;\u6362\u5b8c\u5c31\u505c\u5728\u8fd9\u4e2a\u65b0\u6570\u4e0a&#xff0c;\u4e0d\u4f1a\u81ea\u5df1\u53d8\u56de\u53bb\u3002 \u6bcf\u6539\u5b8c\u4e00\u5929&#xff0c;\u591a\u591a\u90fd\u8981\u7b97\u4e00\u7b97&#xff1a;\u53ea\u6311\u6807\u4ef7\u6700\u9ad8\u4e0e\u6700\u4f4e\u76f8\u5dee\u4e0d\u8d85\u8fc7 GG<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[13572,13626,13627,13571,13625],"topic":[],"class_list":["post-119506","post","type-post","status-publish","format-standard","hentry","category-server","tag-pdd","tag-13626","tag-13627","tag-13571","tag-13625"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u62fc\u591a\u591a\u6821\u62db\u7b14\u8bd5\u771f\u9898 10.26 - \u6807\u4ef7\u5dee\u5185\u9009\u8d2d(C++\/Py\/Java \/Js\/Go) - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/119506.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u62fc\u591a\u591a\u6821\u62db\u7b14\u8bd5\u771f\u9898 10.26 - \u6807\u4ef7\u5dee\u5185\u9009\u8d2d(C++\/Py\/Java \/Js\/Go) - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"\u6807\u4ef7\u5dee\u5185\u9009\u8d2d \u62fc\u591a\u591a 10\u670826\u53f7 \u7b14\u8bd5\u771f\u9898 \u7b2c\u56db\u9898 \u62fc\u591a\u591a\u771f\u9898\u76ee\u5f55\u70b9\u51fb\u67e5\u770b: \u62fc\u591a\u591a\u7b14\u8bd5\u771f\u9898\u9898\u5e93\u76ee\u5f55&#xff5c;\u7b14\u8bd5\u9898\u5e93 \u7b97\u6cd5\u8003\u70b9\u8be6\u89e3 \u9898\u76ee\u5185\u5bb9 \u591a\u591a\u7231\u5403\u6a58\u5b50\u3002\u8fd9\u5929\u4ed6\u505c\u5728\u4e00\u5bb6\u6c34\u679c\u644a\u524d\u9762&#xff0c;\u644a\u4e0a\u4f9d\u6b21\u6446\u7740 MMM \u79cd\u5f7c\u6b64\u4e0d\u540c\u7684\u6a58\u5b50\u3002\u8001\u677f\u6bcf\u4e00\u5929\u90fd\u4f1a\u9009\u4e2d\u5176\u4e2d\u4e00\u79cd&#xff0c;\u628a\u8fd9\u4e00\u5929\u7684\u6807\u4ef7\u6362\u6210\u4e00\u4e2a\u65b0\u6570&#xff0c;\u6362\u5b8c\u5c31\u505c\u5728\u8fd9\u4e2a\u65b0\u6570\u4e0a&#xff0c;\u4e0d\u4f1a\u81ea\u5df1\u53d8\u56de\u53bb\u3002 \u6bcf\u6539\u5b8c\u4e00\u5929&#xff0c;\u591a\u591a\u90fd\u8981\u7b97\u4e00\u7b97&#xff1a;\u53ea\u6311\u6807\u4ef7\u6700\u9ad8\u4e0e\u6700\u4f4e\u76f8\u5dee\u4e0d\u8d85\u8fc7 GG\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/119506.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-29T13:24:45+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/119506.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/119506.html\",\"name\":\"\u62fc\u591a\u591a\u6821\u62db\u7b14\u8bd5\u771f\u9898 10.26 - \u6807\u4ef7\u5dee\u5185\u9009\u8d2d(C++\/Py\/Java \/Js\/Go) - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2026-10-29T13:24:45+00:00\",\"dateModified\":\"2026-10-29T13:24:45+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/119506.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/119506.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/119506.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u62fc\u591a\u591a\u6821\u62db\u7b14\u8bd5\u771f\u9898 10.26 - \u6807\u4ef7\u5dee\u5185\u9009\u8d2d(C++\/Py\/Java \/Js\/Go)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u62fc\u591a\u591a\u6821\u62db\u7b14\u8bd5\u771f\u9898 10.26 - \u6807\u4ef7\u5dee\u5185\u9009\u8d2d(C++\/Py\/Java \/Js\/Go) - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/119506.html","og_locale":"zh_CN","og_type":"article","og_title":"\u62fc\u591a\u591a\u6821\u62db\u7b14\u8bd5\u771f\u9898 10.26 - \u6807\u4ef7\u5dee\u5185\u9009\u8d2d(C++\/Py\/Java \/Js\/Go) - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"\u6807\u4ef7\u5dee\u5185\u9009\u8d2d \u62fc\u591a\u591a 10\u670826\u53f7 \u7b14\u8bd5\u771f\u9898 \u7b2c\u56db\u9898 \u62fc\u591a\u591a\u771f\u9898\u76ee\u5f55\u70b9\u51fb\u67e5\u770b: \u62fc\u591a\u591a\u7b14\u8bd5\u771f\u9898\u9898\u5e93\u76ee\u5f55&#xff5c;\u7b14\u8bd5\u9898\u5e93 \u7b97\u6cd5\u8003\u70b9\u8be6\u89e3 \u9898\u76ee\u5185\u5bb9 \u591a\u591a\u7231\u5403\u6a58\u5b50\u3002\u8fd9\u5929\u4ed6\u505c\u5728\u4e00\u5bb6\u6c34\u679c\u644a\u524d\u9762&#xff0c;\u644a\u4e0a\u4f9d\u6b21\u6446\u7740 MMM \u79cd\u5f7c\u6b64\u4e0d\u540c\u7684\u6a58\u5b50\u3002\u8001\u677f\u6bcf\u4e00\u5929\u90fd\u4f1a\u9009\u4e2d\u5176\u4e2d\u4e00\u79cd&#xff0c;\u628a\u8fd9\u4e00\u5929\u7684\u6807\u4ef7\u6362\u6210\u4e00\u4e2a\u65b0\u6570&#xff0c;\u6362\u5b8c\u5c31\u505c\u5728\u8fd9\u4e2a\u65b0\u6570\u4e0a&#xff0c;\u4e0d\u4f1a\u81ea\u5df1\u53d8\u56de\u53bb\u3002 \u6bcf\u6539\u5b8c\u4e00\u5929&#xff0c;\u591a\u591a\u90fd\u8981\u7b97\u4e00\u7b97&#xff1a;\u53ea\u6311\u6807\u4ef7\u6700\u9ad8\u4e0e\u6700\u4f4e\u76f8\u5dee\u4e0d\u8d85\u8fc7 GG","og_url":"https:\/\/www.wsisp.com\/helps\/119506.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2026-10-29T13:24:45+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"13 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/119506.html","url":"https:\/\/www.wsisp.com\/helps\/119506.html","name":"\u62fc\u591a\u591a\u6821\u62db\u7b14\u8bd5\u771f\u9898 10.26 - \u6807\u4ef7\u5dee\u5185\u9009\u8d2d(C++\/Py\/Java \/Js\/Go) - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2026-10-29T13:24:45+00:00","dateModified":"2026-10-29T13:24:45+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/119506.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/119506.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/119506.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"\u62fc\u591a\u591a\u6821\u62db\u7b14\u8bd5\u771f\u9898 10.26 - \u6807\u4ef7\u5dee\u5185\u9009\u8d2d(C++\/Py\/Java \/Js\/Go)"}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/119506","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=119506"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/119506\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=119506"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=119506"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=119506"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=119506"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}