{"version":"https://jsonfeed.org/version/1.1","title":"Codeforces Rounds on 练习本","description":"Recent content in Codeforces Rounds on 练习本","home_page_url":"https://4hh.github.io/","feed_url":"https://4hh.github.io/codeforces/index.json","language":"zh-cn","icon":"https://4hh.github.io/apple-touch-icon.png","favicon":"https://4hh.github.io/apple-touch-icon.png","authors":[{"name":"4hh","url":"https://4hh.github.io"}],"items":[{"title":"Codeforces Round 1044 (Div. 2) ABCD","date_published":"2025-11-18T16:22:35+08:00","date_modified":"2025-11-18T16:22:35+08:00","id":"https://4hh.github.io/codeforces/codeforces-round-1044/","url":"https://4hh.github.io/codeforces/codeforces-round-1044/","content_html":"\u003cp\u003e题目🔗 \u003ca href=\"https://codeforces.com/contest/2133\"\u003eCodeforces Round 1044 (Div. 2)\u003c/a\u003e\u003c/p\u003e\n\u003ch1 id=\"a-redstone\"\u003eA. Redstone?\u003c/h1\u003e\n\u003cp\u003e列公式发现要求最后一个齿轮的大小要和第一个齿轮的大小一样。也就是要求数组中存在出现至少两次的数字。\u003c/p\u003e\n\u003cdiv data-codeblock itemscope itemtype=\"https://schema.org/SoftwareSourceCode\" \u003e\n\u003cbutton data-codebutton class=\"codebutton\" title=\"Copy code\"\u003e\u003cspan\u003e⧉\u003c/span\u003e\u003c/button\u003e\n\u003cmeta itemprop=\"codeSampleType\" content=\"snippet\"\u003e\n\u003cmeta data-codetext itemprop=\"text\" content=\"\u0026#34;void solve() {\\n  int n;\\n  cin \\u003e\\u003e n;\\n\\n  vector\\u003cint\\u003e a(n \u0026#43; 1), vis(120);\\n  bool ok = false;\\n  For1(i, 1, n) {\\n    cin \\u003e\\u003e a[i];\\n    if (vis[a[i]]) {\\n      ok = true;\\n    }\\n    vis[a[i]] = true;\\n  }\\n  if (ok)\\n    YES();\\n  else\\n    NO();\\n}\u0026#34;\"\u003e\n\u003cmeta itemprop=\"programmingLanguage\" content=\"cpp\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\n\u003ccode class=\"language-cpp\" data-lang=\"cpp\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#cf222e\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003esolve\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e()\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  vector\u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u003c/span\u003e\u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e\u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003en \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e),\u003c/span\u003e vis\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#0550ae\"\u003e120\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003ebool\u003c/span\u003e ok \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003efalse\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  For1\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e];\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003evis\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ea\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]])\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      ok \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003etrue\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    vis\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ea\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003etrue\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003eok\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    YES\u003cspan style=\"color:#1f2328\"\u003e();\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eelse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    NO\u003cspan style=\"color:#1f2328\"\u003e();\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch1 id=\"b-villagers\"\u003eB. Villagers\u003c/h1\u003e\n\u003cp\u003e为了让总花费最小，把数组排序，选择最大的两个，让这两个元素和解。这样从大到小两两配对即可。\u003c/p\u003e\n\u003cdiv data-codeblock itemscope itemtype=\"https://schema.org/SoftwareSourceCode\" \u003e\n\u003cbutton data-codebutton class=\"codebutton\" title=\"Copy code\"\u003e\u003cspan\u003e⧉\u003c/span\u003e\u003c/button\u003e\n\u003cmeta itemprop=\"codeSampleType\" content=\"snippet\"\u003e\n\u003cmeta data-codetext itemprop=\"text\" content=\"\u0026#34;void solve() {\\n  int n;\\n  cin \\u003e\\u003e n;\\n\\n  vector\\u003cint\\u003e a(n \u0026#43; 1);\\n  for (int i = 1; i \\u003c= n; i\u0026#43;\u0026#43;) {\\n    cin \\u003e\\u003e a[i];\\n  }\\n  sort(a.begin() \u0026#43; 1, a.begin() \u0026#43; 1 \u0026#43; n);\\n  ll ans{};\\n  for (int i = n; i \\u003e= 1; i -= 2) {\\n    ans \u0026#43;= a[i];\\n  }\\n  cout \\u003c\\u003c ans \\u003c\\u003c \u0026#39;\\\\n\u0026#39;;\\n}\u0026#34;\"\u003e\n\u003cmeta itemprop=\"programmingLanguage\" content=\"cpp\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\n\u003ccode class=\"language-cpp\" data-lang=\"cpp\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#cf222e\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003esolve\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e()\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  vector\u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u003c/span\u003e\u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e\u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003en \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003efor\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e i \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e i \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;=\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e i\u003cspan style=\"color:#0550ae\"\u003e++\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e];\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  sort\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ea\u003cspan style=\"color:#1f2328\"\u003e.\u003c/span\u003ebegin\u003cspan style=\"color:#1f2328\"\u003e()\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e.\u003c/span\u003ebegin\u003cspan style=\"color:#1f2328\"\u003e()\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ll ans\u003cspan style=\"color:#1f2328\"\u003e{};\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003efor\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e i \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e i \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e i \u003cspan style=\"color:#0550ae\"\u003e-=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e2\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ans \u003cspan style=\"color:#0550ae\"\u003e+=\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e];\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e ans \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39;\\n\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch1 id=\"c-the-nether\"\u003eC. The Nether\u003c/h1\u003e\n\u003cp\u003e以每个节点作为起点询问，容易找到最大路径的长度 $len$\u003c/p\u003e\n\u003cp\u003e考虑如何找到路径的第二个节点，设这个节点是 $p$ ，那么以 $p$ 开头的最长路径必然是 $len - 1$ , 并且以 $start$ 作为起点， $p$ 作为终点，路径长度需要恰好是 2.\u003c/p\u003e\n\u003cp\u003e在第一遍询问的过程中，我们可以记录每个长度对应的点的列表。我们就可以容易找到 $len - 1$ 对应的点，然后以 $start$ 为起点， $p$ 作为另外一个点询问，找答案恰好是 2 的元素。依此类推，可以找到所有的 $len$ 个点。\u003c/p\u003e\n\u003cp\u003e问题的关键：我们发现第二遍询问的过程中，每个点最多只会被询问一次。所以这个做法是正确的。\u003c/p\u003e\n\u003cdiv data-codeblock itemscope itemtype=\"https://schema.org/SoftwareSourceCode\" \u003e\n\u003cbutton data-codebutton class=\"codebutton\" title=\"Copy code\"\u003e\u003cspan\u003e⧉\u003c/span\u003e\u003c/button\u003e\n\u003cmeta itemprop=\"codeSampleType\" content=\"snippet\"\u003e\n\u003cmeta data-codetext itemprop=\"text\" content=\"\u0026#34;void solve() {\\n  int n;\\n  cin \\u003e\\u003e n;\\n\\n  auto query = [\\u0026](int start) -\\u003e int {\\n    cout \\u003c\\u003c \\\u0026#34;? \\\u0026#34; \\u003c\\u003c start \\u003c\\u003c \\\u0026#34; \\\u0026#34; \\u003c\\u003c n;\\n    for (int i = 1; i \\u003c= n; i\u0026#43;\u0026#43;) {\\n      cout \\u003c\\u003c \\\u0026#34; \\\u0026#34; \\u003c\\u003c i;\\n    }\\n    cout \\u003c\\u003c endl;\\n\\n    int len;\\n    cin \\u003e\\u003e len;\\n    return len;\\n  };\\n  auto query2 = [\\u0026](int p1, int p2) -\\u003e bool {\\n    cout \\u003c\\u003c \\\u0026#34;? \\\u0026#34; \\u003c\\u003c p1 \\u003c\\u003c \\\u0026#34; 2 \\\u0026#34; \\u003c\\u003c p1 \\u003c\\u003c \u0026#39; \u0026#39; \\u003c\\u003c p2 \\u003c\\u003c endl;\\n    int len;\\n    cin \\u003e\\u003e len;\\n    return len == 2;\\n  };\\n\\n  map\\u003cint, vector\\u003cint\\u003e\\u003e mp;\\n  int mx = 0;\\n  for (int i = 1; i \\u003c= n; i\u0026#43;\u0026#43;) {\\n    int len = query(i);\\n    mp[len].push_back(i);\\n    ckmax(mx, len);\\n  }\\n\\n  vector\\u003cint\\u003e ans;\\n  int p1 = mp[mx][0], len = mx;\\n  ans.push_back(p1);\\n  for (int i = len - 1; i \\u003e= 1; i--) {\\n    for (auto v : mp[i]) {\\n      if (query2(p1, v)) {\\n        ans.push_back(v);\\n        p1 = v;\\n        break;\\n      }\\n    }\\n  }\\n\\n  cout \\u003c\\u003c \\\u0026#34;! \\\u0026#34; \\u003c\\u003c mx;\\n  for (auto i : ans) {\\n    cout \\u003c\\u003c \\\u0026#34; \\\u0026#34; \\u003c\\u003c i;\\n  }\\n  cout \\u003c\\u003c endl;\\n}\u0026#34;\"\u003e\n\u003cmeta itemprop=\"programmingLanguage\" content=\"cpp\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\n\u003ccode class=\"language-cpp\" data-lang=\"cpp\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#cf222e\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003esolve\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e()\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eauto\u003c/span\u003e query \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#0550ae\"\u003e\u0026amp;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e](\u003c/span\u003e\u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e start\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#34;? \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e start \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#34; \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003efor\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e i \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e i \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;=\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e i\u003cspan style=\"color:#0550ae\"\u003e++\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#34; \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e i\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e endl\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e len\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e len\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003ereturn\u003c/span\u003e len\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e};\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eauto\u003c/span\u003e query2 \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#0550ae\"\u003e\u0026amp;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e](\u003c/span\u003e\u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e p1\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e p2\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan style=\"color:#cf222e\"\u003ebool\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#34;? \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e p1 \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#34; 2 \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e p1 \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39; \u0026#39;\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e p2 \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e endl\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e len\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e len\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003ereturn\u003c/span\u003e len \u003cspan style=\"color:#0550ae\"\u003e==\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e2\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e};\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  map\u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u003c/span\u003e\u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e vector\u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u003c/span\u003e\u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e\u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e mp\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e mx \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003efor\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e i \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e i \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;=\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e i\u003cspan style=\"color:#0550ae\"\u003e++\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e len \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e query\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    mp\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003elen\u003cspan style=\"color:#1f2328\"\u003e].\u003c/span\u003epush_back\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ckmax\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003emx\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e len\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  vector\u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u003c/span\u003e\u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e\u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u003c/span\u003e ans\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e p1 \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e mp\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003emx\u003cspan style=\"color:#1f2328\"\u003e][\u003c/span\u003e\u003cspan style=\"color:#0550ae\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e],\u003c/span\u003e len \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e mx\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ans\u003cspan style=\"color:#1f2328\"\u003e.\u003c/span\u003epush_back\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ep1\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003efor\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e i \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e len \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e i \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e i\u003cspan style=\"color:#0550ae\"\u003e--\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003efor\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#cf222e\"\u003eauto\u003c/span\u003e \u003cspan style=\"color:#900;font-weight:bold\"\u003ev\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e:\u003c/span\u003e mp\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e])\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003equery2\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ep1\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e v\u003cspan style=\"color:#1f2328\"\u003e))\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        ans\u003cspan style=\"color:#1f2328\"\u003e.\u003c/span\u003epush_back\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ev\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        p1 \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e v\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#cf222e\"\u003ebreak\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#34;! \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e mx\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003efor\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#cf222e\"\u003eauto\u003c/span\u003e \u003cspan style=\"color:#900;font-weight:bold\"\u003ei\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e:\u003c/span\u003e ans\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#34; \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e i\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e endl\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch1 id=\"d-chicken-jockey\"\u003eD. Chicken Jockey\u003c/h1\u003e\n\u003cp\u003e有趣的 DP 题\u003c/p\u003e\n\u003cp\u003e注意到我们需要造成的伤害总量是固定的，总伤害分为两个部分：坠落伤害和普攻伤害。我们需要最大化坠落伤害，最小化普攻伤害。\u003c/p\u003e\n\u003cp\u003e设 $d_i$ 代表，消灭前 $i$ 个元素，需要的普攻伤害的最小值。\u003c/p\u003e\n\u003cp\u003e对于位置 $i$ ，如果要对它造成坠落伤害，我们需要考虑前 $i - 1$ 个位置。直接对 $i$ 造成坠落伤害的时刻，一定是 $i - 1$ 消失的时刻。\u003c/p\u003e\n\u003cp\u003e最简单的情况是，直接杀掉 $i - 1$ ，此时状态转移是 $d_{i - 2} + a_{i - 1} + max(0, a_i - (i - 1))$\u003c/p\u003e\n\u003cp\u003e另外一种情况是，不直接杀掉 $i - 1$ , 总之我们需要让前 $i - 1$ 给被消灭，此时只剩下第 $i - 1$ 个元素，第 $i$ 个元素的坠落伤害只有 1. 而消灭前 $i - 1$ 个元素的最小代价，恰好是我们的状态定义，这是一个子问题，因此状态转移是 $d_i = d_{i - 1} + (a_i - 1)$\u003c/p\u003e\n\u003cdiv data-codeblock itemscope itemtype=\"https://schema.org/SoftwareSourceCode\" \u003e\n\u003cbutton data-codebutton class=\"codebutton\" title=\"Copy code\"\u003e\u003cspan\u003e⧉\u003c/span\u003e\u003c/button\u003e\n\u003cmeta itemprop=\"codeSampleType\" content=\"snippet\"\u003e\n\u003cmeta data-codetext itemprop=\"text\" content=\"\u0026#34;void solve() {\\n  int n;\\n  cin \\u003e\\u003e n;\\n\\n  VI a(n \u0026#43; 1);\\n  for (int i = 1; i \\u003c= n; i\u0026#43;\u0026#43;)\\n    cin \\u003e\\u003e a[i];\\n\\n  VL d(n \u0026#43; 1, INFL);\\n  d[0] = 0;\\n  d[1] = a[1];\\n\\n  For1(i, 2, n) {\\n    d[i] = d[i - 1] \u0026#43; a[i] - 1;\\n    ckmin(d[i], d[i - 2] \u0026#43; a[i - 1] \u0026#43; max(0, a[i] - (i - 1)));\\n  }\\n\\n  cout \\u003c\\u003c d[n] \\u003c\\u003c \u0026#39;\\\\n\u0026#39;;\\n}\u0026#34;\"\u003e\n\u003cmeta itemprop=\"programmingLanguage\" content=\"cpp\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\n\u003ccode class=\"language-cpp\" data-lang=\"cpp\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#cf222e\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003esolve\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e()\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  VI a\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003en \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003efor\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e i \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e i \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;=\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e i\u003cspan style=\"color:#0550ae\"\u003e++\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e];\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  VL d\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003en \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e INFL\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  d\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#0550ae\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  d\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e];\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  For1\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e2\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    d\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e d\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ckmin\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ed\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e],\u003c/span\u003e d\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e2\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e max\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#0550ae\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e)));\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e d\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003en\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39;\\n\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\n\u003c/pre\u003e\n\u003c/div\u003e\n"},{"title":"Codeforces Round 1045 (Div. 2) ABC","date_published":"2025-11-17T21:02:23+08:00","date_modified":"2025-11-17T21:02:23+08:00","id":"https://4hh.github.io/codeforces/codeforces-round-1045/","url":"https://4hh.github.io/codeforces/codeforces-round-1045/","content_html":"\u003cp\u003e比赛🔗 \u003ca href=\"https://codeforces.com/contest/2134\"\u003eCodeforces Round 1045 (Div. 2)\u003c/a\u003e\u003c/p\u003e\n\u003ch1 id=\"a-painting-with-two-colors\"\u003eA. Painting With Two Colors\u003c/h1\u003e\n\u003cp\u003e容易想到根据奇偶性进行讨论。特殊情况是，如果 $b \u0026gt; a$ ，那么 $a$ 的奇偶性不需要考虑，因为它会被 $b$ 覆盖。\u003c/p\u003e\n\u003cdiv data-codeblock itemscope itemtype=\"https://schema.org/SoftwareSourceCode\" \u003e\n\u003cbutton data-codebutton class=\"codebutton\" title=\"Copy code\"\u003e\u003cspan\u003e⧉\u003c/span\u003e\u003c/button\u003e\n\u003cmeta itemprop=\"codeSampleType\" content=\"snippet\"\u003e\n\u003cmeta data-codetext itemprop=\"text\" content=\"\u0026#34;void solve() {\\n  int n, a, b;\\n  cin \\u003e\\u003e n \\u003e\\u003e a \\u003e\\u003e b;\\n\\n  if (n \\u0026 1) {\\n    if ((b \\u0026 1) \\u0026\\u0026 ((a \\u0026 1) || (a \\u003c b)))\\n      YES();\\n    else\\n      NO();\\n  } else {\\n    if ((b % 2 == 0) \\u0026\\u0026 (a % 2 == 0 || (a \\u003c b)))\\n      YES();\\n    else\\n      NO();\\n  }\\n}\u0026#34;\"\u003e\n\u003cmeta itemprop=\"programmingLanguage\" content=\"cpp\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\n\u003ccode class=\"language-cpp\" data-lang=\"cpp\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#cf222e\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003esolve\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e()\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e b\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e n \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e a \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e b\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003en \u003cspan style=\"color:#0550ae\"\u003e\u0026amp;\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e((\u003c/span\u003eb \u003cspan style=\"color:#0550ae\"\u003e\u0026amp;\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e((\u003c/span\u003ea \u003cspan style=\"color:#0550ae\"\u003e\u0026amp;\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e||\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ea \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u003c/span\u003e b\u003cspan style=\"color:#1f2328\"\u003e)))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      YES\u003cspan style=\"color:#1f2328\"\u003e();\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eelse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      NO\u003cspan style=\"color:#1f2328\"\u003e();\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#cf222e\"\u003eelse\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e((\u003c/span\u003eb \u003cspan style=\"color:#0550ae\"\u003e%\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e2\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e==\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ea \u003cspan style=\"color:#0550ae\"\u003e%\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e2\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e==\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e0\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e||\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ea \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u003c/span\u003e b\u003cspan style=\"color:#1f2328\"\u003e)))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      YES\u003cspan style=\"color:#1f2328\"\u003e();\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eelse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      NO\u003cspan style=\"color:#1f2328\"\u003e();\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch1 id=\"b-add-0-or-k\"\u003eB. Add 0 or K\u003c/h1\u003e\n\u003cp\u003e神奇的构造题。\u003c/p\u003e\n\u003cp\u003e我们要让 $a_i + kc_i \\equiv 0 \\pmod {g}$ ，也就是 $k c_i \\equiv -a_i \\pmod g$\u003c/p\u003e\n\u003cp\u003e要让这个方程比较好处理，我们可以让 $k \\equiv -1 \\pmod {g}$ ，带入上式得到 $c_i \\equiv a_i \\pmod {g}$ 。此时有 $k + 1 \\equiv 0 \\pmod {g}$ ，我们可以直接取 $g = k + 1$\u003c/p\u003e\n\u003cp\u003e因此可以这么构造，取 $g = k + 1$ , $c_i = a_i \\bmod g$ ， $b_i = a_i + k c_i$ 。数组 $b$ 就是答案。\u003c/p\u003e\n\u003cdiv data-codeblock itemscope itemtype=\"https://schema.org/SoftwareSourceCode\" \u003e\n\u003cbutton data-codebutton class=\"codebutton\" title=\"Copy code\"\u003e\u003cspan\u003e⧉\u003c/span\u003e\u003c/button\u003e\n\u003cmeta itemprop=\"codeSampleType\" content=\"snippet\"\u003e\n\u003cmeta data-codetext itemprop=\"text\" content=\"\u0026#34;void solve() {\\n  int n, k;\\n  cin \\u003e\\u003e n \\u003e\\u003e k;\\n\\n  VL a(n \u0026#43; 1);\\n  For1(i, 1, n) cin \\u003e\\u003e a[i];\\n\\n  int g = k \u0026#43; 1;\\n  VL c(n \u0026#43; 1);\\n  For1(i, 1, n) {\\n    c[i] = a[i] % g;\\n    a[i] \u0026#43;= k * c[i];\\n    cout \\u003c\\u003c a[i] \\u003c\\u003c \u0026#39; \u0026#39;;\\n  }\\n  cout \\u003c\\u003c \u0026#39;\\\\n\u0026#39;;\\n}\u0026#34;\"\u003e\n\u003cmeta itemprop=\"programmingLanguage\" content=\"cpp\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\n\u003ccode class=\"language-cpp\" data-lang=\"cpp\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#cf222e\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003esolve\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e()\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e k\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e n \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e k\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  VL a\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003en \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  For1\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e];\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e g \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e k \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  VL c\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003en \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  For1\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    c\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e%\u003c/span\u003e g\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e+=\u003c/span\u003e k \u003cspan style=\"color:#0550ae\"\u003e*\u003c/span\u003e c\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e];\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39; \u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39;\\n\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch1 id=\"c-even-larger\"\u003eC. Even Larger\u003c/h1\u003e\n\u003cp\u003e这道题目比 B 题简单多了。\u003c/p\u003e\n\u003cp\u003e容易想到我们需要让所有的偶数位置大于等于左右位置的奇数位置的和。\u003c/p\u003e\n\u003cdiv data-codeblock itemscope itemtype=\"https://schema.org/SoftwareSourceCode\" \u003e\n\u003cbutton data-codebutton class=\"codebutton\" title=\"Copy code\"\u003e\u003cspan\u003e⧉\u003c/span\u003e\u003c/button\u003e\n\u003cmeta itemprop=\"codeSampleType\" content=\"snippet\"\u003e\n\u003cmeta data-codetext itemprop=\"text\" content=\"\u0026#34;void solve() {\\n  int n;\\n  cin \\u003e\\u003e n;\\n\\n  VI a(n \u0026#43; 10);\\n  For1(i, 1, n) { cin \\u003e\\u003e a[i]; }\\n\\n  ll ans{};\\n  for (int i = 2; i \\u003c= n; i \u0026#43;= 2) {\\n    int sum = a[i - 1] \u0026#43; a[i \u0026#43; 1];\\n    if (a[i] \\u003e= sum)\\n      continue;\\n    int g = sum - a[i];\\n    ans \u0026#43;= g;\\n    a[i \u0026#43; 1] -= min(g, a[i \u0026#43; 1]);\\n  }\\n  cout \\u003c\\u003c ans \\u003c\\u003c \u0026#39;\\\\n\u0026#39;;\\n}\u0026#34;\"\u003e\n\u003cmeta itemprop=\"programmingLanguage\" content=\"cpp\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\n\u003ccode class=\"language-cpp\" data-lang=\"cpp\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#cf222e\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003esolve\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e()\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  VI a\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003en \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e10\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  For1\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e];\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ll ans\u003cspan style=\"color:#1f2328\"\u003e{};\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003efor\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e i \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e2\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e i \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;=\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e i \u003cspan style=\"color:#0550ae\"\u003e+=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e2\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e sum \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e];\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ea\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;=\u003c/span\u003e sum\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#cf222e\"\u003econtinue\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e g \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e sum \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e];\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ans \u003cspan style=\"color:#0550ae\"\u003e+=\u003c/span\u003e g\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e-=\u003c/span\u003e min\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003eg\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e]);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e ans \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39;\\n\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\n\u003c/pre\u003e\n\u003c/div\u003e\n"},{"title":"Codeforces Round 1046 (Div. 2) ABCD","date_published":"2025-11-17T15:16:28+08:00","date_modified":"2025-11-17T15:16:28+08:00","id":"https://4hh.github.io/codeforces/codeforces-round-1046/","url":"https://4hh.github.io/codeforces/codeforces-round-1046/","content_html":"\u003cp\u003e比赛🔗 \u003ca href=\"https://codeforces.com/contest/2136\"\u003eCodeforces Round 1046 (Div. 2)\u003c/a\u003e\u003c/p\u003e\n\u003ch1 id=\"a-in-the-dream\"\u003eA. In the Dream\u003c/h1\u003e\n\u003cp\u003e在一个半场中，最坏情况下胜负情况是 $AABAABAA$ 这种形式。设分数较小的是 $x$ ，那么另外一个人的得分满足 $y \\le 2x + 2$\u003c/p\u003e\n\u003cdiv data-codeblock itemscope itemtype=\"https://schema.org/SoftwareSourceCode\" \u003e\n\u003cbutton data-codebutton class=\"codebutton\" title=\"Copy code\"\u003e\u003cspan\u003e⧉\u003c/span\u003e\u003c/button\u003e\n\u003cmeta itemprop=\"codeSampleType\" content=\"snippet\"\u003e\n\u003cmeta data-codetext itemprop=\"text\" content=\"\u0026#34;void solve() {\\n  int a, b, c, d;\\n\\n  cin \\u003e\\u003e a \\u003e\\u003e b \\u003e\\u003e c \\u003e\\u003e d;\\n\\n  auto check = [\\u0026](int a, int b) -\\u003e bool {\\n    if (a \\u003e b)\\n      swap(a, b);\\n    return 2 * a \u0026#43; 2 \\u003e= b;\\n  };\\n\\n  if (check(a, b) \\u0026\\u0026 check(c - a, d - b))\\n    YES();\\n  else\\n    NO();\\n}\u0026#34;\"\u003e\n\u003cmeta itemprop=\"programmingLanguage\" content=\"cpp\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\n\u003ccode class=\"language-cpp\" data-lang=\"cpp\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#cf222e\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003esolve\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e()\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e b\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e c\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e d\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e a \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e b \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e c \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e d\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eauto\u003c/span\u003e check \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#0550ae\"\u003e\u0026amp;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e](\u003c/span\u003e\u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e b\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan style=\"color:#cf222e\"\u003ebool\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ea \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u003c/span\u003e b\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      swap\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ea\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e b\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003ereturn\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e2\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e*\u003c/span\u003e a \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e2\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;=\u003c/span\u003e b\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e};\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003echeck\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ea\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e b\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e check\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ec \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e d \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e b\u003cspan style=\"color:#1f2328\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    YES\u003cspan style=\"color:#1f2328\"\u003e();\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eelse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    NO\u003cspan style=\"color:#1f2328\"\u003e();\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch1 id=\"b-like-the-bitset\"\u003eB. Like the Bitset\u003c/h1\u003e\n\u003cp\u003e要求不能有连续的 $k$ 个 1. 构造的时候，先填 0 的位置，尽可能填比较大的数字，剩下的数字填在 1 的位置。\u003c/p\u003e\n\u003cdiv data-codeblock itemscope itemtype=\"https://schema.org/SoftwareSourceCode\" \u003e\n\u003cbutton data-codebutton class=\"codebutton\" title=\"Copy code\"\u003e\u003cspan\u003e⧉\u003c/span\u003e\u003c/button\u003e\n\u003cmeta itemprop=\"codeSampleType\" content=\"snippet\"\u003e\n\u003cmeta data-codetext itemprop=\"text\" content=\"\u0026#34;void solve() {\\n  int n, k;\\n  cin \\u003e\\u003e n \\u003e\\u003e k;\\n\\n  string s;\\n  cin \\u003e\\u003e s;\\n  s = \\\u0026#34; \\\u0026#34; \u0026#43; s;\\n\\n  int cur = 0, cnt = 0;\\n  bool ok = true;\\n  VI zeros, ones;\\n\\n  For1(i, 1, n) {\\n    if (s[i] == \u0026#39;1\u0026#39;) {\\n      cur\u0026#43;\u0026#43;;\\n      ones.pb(i);\\n    } else {\\n      cur = 0;\\n      zeros.pb(i);\\n    }\\n\\n    ckmax(cnt, cur);\\n    if (cnt \\u003e= k) {\\n      ok = false;\\n      break;\\n    }\\n  }\\n\\n  if (!ok) {\\n    NO();\\n    return;\\n  }\\n\\n  int idx = n;\\n  VI ans(n \u0026#43; 1);\\n  for (auto x : zeros) {\\n    ans[x] = idx--;\\n  }\\n  for (auto x : ones) {\\n    ans[x] = idx--;\\n  }\\n  YES();\\n  For1(i, 1, n) { cout \\u003c\\u003c ans[i] \\u003c\\u003c \u0026#39; \u0026#39;; }\\n  cout \\u003c\\u003c \u0026#39;\\\\n\u0026#39;;\\n}\u0026#34;\"\u003e\n\u003cmeta itemprop=\"programmingLanguage\" content=\"cpp\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\n\u003ccode class=\"language-cpp\" data-lang=\"cpp\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#cf222e\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003esolve\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e()\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e k\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e n \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e k\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  string s\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e s\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  s \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#34; \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e s\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e cur \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e cnt \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003ebool\u003c/span\u003e ok \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003etrue\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  VI zeros\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e ones\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  For1\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003es\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e==\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39;1\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      cur\u003cspan style=\"color:#0550ae\"\u003e++\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      ones\u003cspan style=\"color:#1f2328\"\u003e.\u003c/span\u003epb\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#cf222e\"\u003eelse\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      cur \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      zeros\u003cspan style=\"color:#1f2328\"\u003e.\u003c/span\u003epb\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ckmax\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ecnt\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e cur\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ecnt \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;=\u003c/span\u003e k\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      ok \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003efalse\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#cf222e\"\u003ebreak\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#0550ae\"\u003e!\u003c/span\u003eok\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    NO\u003cspan style=\"color:#1f2328\"\u003e();\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003ereturn\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e idx \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  VI ans\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003en \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003efor\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#cf222e\"\u003eauto\u003c/span\u003e \u003cspan style=\"color:#900;font-weight:bold\"\u003ex\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e:\u003c/span\u003e zeros\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ans\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ex\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e idx\u003cspan style=\"color:#0550ae\"\u003e--\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003efor\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#cf222e\"\u003eauto\u003c/span\u003e \u003cspan style=\"color:#900;font-weight:bold\"\u003ex\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e:\u003c/span\u003e ones\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ans\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ex\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e idx\u003cspan style=\"color:#0550ae\"\u003e--\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  YES\u003cspan style=\"color:#1f2328\"\u003e();\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  For1\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e ans\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39; \u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39;\\n\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch1 id=\"c-against-the-difference\"\u003eC. Against the Difference\u003c/h1\u003e\n\u003cp\u003e设状态 $d_i$ 表示前 $i$ 个位置，最长合法子序列的长度。我们记录每个数字的位置到数组 $b$ 中， $b[x]$ 是 $x$ 出现过的位置的数组。对于位置 $i$ ，如果 $b_{a_i}$ 的长度不小于 $a_i$ ，那么状态转移到 $d_{pre - 1}$ 其中 $pre = b[x][len - a_i]$\u003c/p\u003e\n\u003cdiv data-codeblock itemscope itemtype=\"https://schema.org/SoftwareSourceCode\" \u003e\n\u003cbutton data-codebutton class=\"codebutton\" title=\"Copy code\"\u003e\u003cspan\u003e⧉\u003c/span\u003e\u003c/button\u003e\n\u003cmeta itemprop=\"codeSampleType\" content=\"snippet\"\u003e\n\u003cmeta data-codetext itemprop=\"text\" content=\"\u0026#34;void solve() {\\n  int n;\\n  cin \\u003e\\u003e n;\\n\\n  VI a(n \u0026#43; 1);\\n  For1(i, 1, n) cin \\u003e\\u003e a[i];\\n\\n  VI d(n \u0026#43; 1);\\n  VVI b(n \u0026#43; 1);\\n  int ans = 0;\\n\\n  For1(i, 1, n) {\\n    int x = a[i];\\n    b[x].pb(i);\\n\\n    int len = SZ(b[x]);\\n    if (len \\u003e= x) {\\n      int pre = b[x][len - x];\\n      ckmax(d[i], d[pre - 1] \u0026#43; x);\\n    }\\n\\n    ckmax(d[i], d[i - 1]);\\n    ckmax(ans, d[i]);\\n  }\\n\\n  cout \\u003c\\u003c ans \\u003c\\u003c \u0026#39;\\\\n\u0026#39;;\\n}\u0026#34;\"\u003e\n\u003cmeta itemprop=\"programmingLanguage\" content=\"cpp\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\n\u003ccode class=\"language-cpp\" data-lang=\"cpp\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#cf222e\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003esolve\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e()\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  VI a\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003en \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  For1\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e];\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  VI d\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003en \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  VVI b\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003en \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e ans \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  For1\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e x \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e];\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    b\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ex\u003cspan style=\"color:#1f2328\"\u003e].\u003c/span\u003epb\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e len \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e SZ\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003eb\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ex\u003cspan style=\"color:#1f2328\"\u003e]);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003elen \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;=\u003c/span\u003e x\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e pre \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e b\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ex\u003cspan style=\"color:#1f2328\"\u003e][\u003c/span\u003elen \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e x\u003cspan style=\"color:#1f2328\"\u003e];\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      ckmax\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ed\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e],\u003c/span\u003e d\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003epre \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e x\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ckmax\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ed\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e],\u003c/span\u003e d\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e]);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ckmax\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003eans\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e d\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e ans \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39;\\n\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch1 id=\"d-for-the-champion\"\u003eD. For the Champion\u003c/h1\u003e\n\u003cp\u003e给定的式子 $min(|x_i - c| + |y_i - d|)$ 中的绝对值不好处理。考虑如何去掉绝对值。\u003c/p\u003e\n\u003cp\u003e从起始位置移动到右下角到 $c_1 = c + 2U, d_1 = d - 2U$ , 其中 $U = 10^9$ . 这样可以保证 $(c_1, d_1)$ 一定在所有点的右下方。\u003c/p\u003e\n\u003cp\u003e同理，从起始位置移动到右上角 $c_2 = c + 2U, d_2 = d + 2U$ , 其中 $U = 10^9$ . 这样可以保证 $(c_2, d_2)$ 一定在所有点的右上方。\u003c/p\u003e\n\u003cp\u003e然后可以根据对 $(c_1, d_1)$ 和 $(c_2, d_2)$ 的询问，得到不带绝对值的式子对应的答案。得到二元一次方程组。\u003c/p\u003e\n\u003cdiv data-codeblock itemscope itemtype=\"https://schema.org/SoftwareSourceCode\" \u003e\n\u003cbutton data-codebutton class=\"codebutton\" title=\"Copy code\"\u003e\u003cspan\u003e⧉\u003c/span\u003e\u003c/button\u003e\n\u003cmeta itemprop=\"codeSampleType\" content=\"snippet\"\u003e\n\u003cmeta data-codetext itemprop=\"text\" content=\"\u0026#34;void solve() {\\n  int n;\\n  cin \\u003e\\u003e n;\\n\\n  vector\\u003cPII\\u003e a(n \u0026#43; 1);\\n  int sub = 2e9 \u0026#43; 10, add = -2e9 - 10;\\n\\n  For1(i, 1, n) {\\n    cin \\u003e\\u003e a[i].first \\u003e\\u003e a[i].second;\\n    ckmin(sub, a[i].second - a[i].first);\\n    ckmax(add, a[i].first \u0026#43; a[i].second);\\n  }\\n\\n  auto query = [\\u0026](char ch, int k) -\\u003e ll {\\n    cout \\u003c\\u003c \\\u0026#34;? \\\u0026#34; \\u003c\\u003c ch \\u003c\\u003c \u0026#39; \u0026#39; \\u003c\\u003c k \\u003c\\u003c endl;\\n    ll dis;\\n    cin \\u003e\\u003e dis;\\n    return dis;\\n  };\\n\\n  int U = 1e9;\\n  query(\u0026#39;R\u0026#39;, U);\\n  query(\u0026#39;R\u0026#39;, U);\\n  query(\u0026#39;D\u0026#39;, U);\\n  ll val1 = query(\u0026#39;D\u0026#39;, U);\\n\\n  query(\u0026#39;U\u0026#39;, U);\\n  query(\u0026#39;U\u0026#39;, U);\\n  query(\u0026#39;U\u0026#39;, U);\\n  ll val2 = query(\u0026#39;U\u0026#39;, U);\\n\\n  ll t = 1LL * val2 \u0026#43; add - 4LL * U, s = 1LL * val1 - sub - 4LL * U;\\n  ll x = (t \u0026#43; s) / 2, y = t - x;\\n  cout \\u003c\\u003c \\\u0026#34;! \\\u0026#34; \\u003c\\u003c x \\u003c\\u003c \u0026#39; \u0026#39; \\u003c\\u003c y \\u003c\\u003c endl;\\n}\u0026#34;\"\u003e\n\u003cmeta itemprop=\"programmingLanguage\" content=\"cpp\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\n\u003ccode class=\"language-cpp\" data-lang=\"cpp\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#cf222e\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003esolve\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e()\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  vector\u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u003c/span\u003ePII\u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003en \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e sub \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e2e9\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e10\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e add \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e\u003cspan style=\"color:#0550ae\"\u003e2e9\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e10\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  For1\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e].\u003c/span\u003efirst \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e].\u003c/span\u003esecond\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ckmin\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003esub\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e].\u003c/span\u003esecond \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e].\u003c/span\u003efirst\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ckmax\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003eadd\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e].\u003c/span\u003efirst \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e].\u003c/span\u003esecond\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eauto\u003c/span\u003e query \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#0550ae\"\u003e\u0026amp;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e](\u003c/span\u003e\u003cspan style=\"color:#cf222e\"\u003echar\u003c/span\u003e ch\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e k\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e-\u0026gt;\u003c/span\u003e ll \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#34;? \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e ch \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39; \u0026#39;\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e k \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e endl\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ll dis\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e dis\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003ereturn\u003c/span\u003e dis\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e};\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e U \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1e9\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  query\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#0a3069\"\u003e\u0026#39;R\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e U\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  query\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#0a3069\"\u003e\u0026#39;R\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e U\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  query\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#0a3069\"\u003e\u0026#39;D\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e U\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ll val1 \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e query\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#0a3069\"\u003e\u0026#39;D\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e U\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  query\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#0a3069\"\u003e\u0026#39;U\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e U\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  query\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#0a3069\"\u003e\u0026#39;U\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e U\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  query\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#0a3069\"\u003e\u0026#39;U\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e U\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ll val2 \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e query\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#0a3069\"\u003e\u0026#39;U\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e U\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ll t \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1LL\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e*\u003c/span\u003e val2 \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e add \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e4LL\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e*\u003c/span\u003e U\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e s \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1LL\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e*\u003c/span\u003e val1 \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e sub \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e4LL\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e*\u003c/span\u003e U\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ll x \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003et \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e s\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e/\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e2\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e y \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e t \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e x\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#34;! \u0026#34;\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e x \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39; \u0026#39;\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e y \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e endl\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\n\u003c/pre\u003e\n\u003c/div\u003e\n"},{"title":"Educational Codeforces Round 184 ABCD1","date_published":"2025-11-15T11:27:20+08:00","date_modified":"2025-11-15T11:27:20+08:00","id":"https://4hh.github.io/codeforces/codeforces-edu-184/","url":"https://4hh.github.io/codeforces/codeforces-edu-184/","content_html":"\u003ch1 id=\"a-alice-and-bob\"\u003eA. Alice and Bob\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e取每个点只得 1 分，也就是让 Bob 能够取得的值最多。\u003c/li\u003e\n\u003cli\u003e我们发现我们总是可以让 Bob 取 $a + 1$ 或者 $a - 1$ . 我们只需要求出在这两种情况下，Bob 能够取得的数量是多少。这可以使用二分。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv data-codeblock itemscope itemtype=\"https://schema.org/SoftwareSourceCode\" \u003e\n\u003cbutton data-codebutton class=\"codebutton\" title=\"Copy code\"\u003e\u003cspan\u003e⧉\u003c/span\u003e\u003c/button\u003e\n\u003cmeta itemprop=\"codeSampleType\" content=\"snippet\"\u003e\n\u003cmeta data-codetext itemprop=\"text\" content=\"\u0026#34;void solve() {\\n  int n, x;\\n  cin \\u003e\\u003e n \\u003e\\u003e x;\\n\\n  VI a(n);\\n  For(i, 0, n) cin \\u003e\\u003e a[i];\\n\\n  int bscore = -1, ans = -1;\\n  int tmp = n - (upper_bound(a.begin(), a.end(), x) - a.begin());\\n  if (ckmax(bscore, tmp))\\n    ans = x \u0026#43; 1;\\n\\n  tmp = n - (a.end() - lower_bound(a.begin(), a.end(), x));\\n  if (ckmax(bscore, tmp))\\n    ans = x - 1;\\n  cout \\u003c\\u003c ans \\u003c\\u003c \u0026#39;\\\\n\u0026#39;;\\n}\u0026#34;\"\u003e\n\u003cmeta itemprop=\"programmingLanguage\" content=\"cpp\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\n\u003ccode class=\"language-cpp\" data-lang=\"cpp\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#cf222e\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003esolve\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e()\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e x\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e n \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e x\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  VI a\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003en\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  For\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e];\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e bscore \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e\u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e ans \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e\u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e tmp \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e n \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003eupper_bound\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ea\u003cspan style=\"color:#1f2328\"\u003e.\u003c/span\u003ebegin\u003cspan style=\"color:#1f2328\"\u003e(),\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e.\u003c/span\u003eend\u003cspan style=\"color:#1f2328\"\u003e(),\u003c/span\u003e x\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e.\u003c/span\u003ebegin\u003cspan style=\"color:#1f2328\"\u003e());\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003eckmax\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ebscore\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e tmp\u003cspan style=\"color:#1f2328\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ans \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e x \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  tmp \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e n \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ea\u003cspan style=\"color:#1f2328\"\u003e.\u003c/span\u003eend\u003cspan style=\"color:#1f2328\"\u003e()\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e lower_bound\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ea\u003cspan style=\"color:#1f2328\"\u003e.\u003c/span\u003ebegin\u003cspan style=\"color:#1f2328\"\u003e(),\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e.\u003c/span\u003eend\u003cspan style=\"color:#1f2328\"\u003e(),\u003c/span\u003e x\u003cspan style=\"color:#1f2328\"\u003e));\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003eckmax\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ebscore\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e tmp\u003cspan style=\"color:#1f2328\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ans \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e x \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e ans \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39;\\n\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch1 id=\"b-drifting-away\"\u003eB. Drifting Away\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e如果出现了以下几种情况，那么可以无限循环：\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e**\u003c/code\u003e, \u003ccode\u003e\u0026gt;\u0026lt;\u003c/code\u003e, \u003ccode\u003e\u0026gt;*\u003c/code\u003e, \u003ccode\u003e*\u0026lt;\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e通过观察和模拟，我们发现如果没有无限循环，那么字符串中最多只有一个 \u003ccode\u003e*\u003c/code\u003e。如果出现了一次 \u003ccode\u003e\u0026gt;\u003c/code\u003e，那么它的右侧只能出现 \u003ccode\u003e\u0026gt;\u003c/code\u003e，不能再出现其他字符。如果出现了一次 \u003ccode\u003e\u0026lt;\u003c/code\u003e，那么它的左侧只能出现 \u003ccode\u003e\u0026lt;\u003c/code\u003e，不能出现其他字符。\u003c/li\u003e\n\u003cli\u003e总结一下，其实就是求字符串中，最长连续相同的子字符串的长度。\u003c/li\u003e\n\u003cli\u003e特殊判断一下字符串中只含有一个 \u003ccode\u003e*\u003c/code\u003e 的情况，这种情况在样例中已经给出了。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv data-codeblock itemscope itemtype=\"https://schema.org/SoftwareSourceCode\" \u003e\n\u003cbutton data-codebutton class=\"codebutton\" title=\"Copy code\"\u003e\u003cspan\u003e⧉\u003c/span\u003e\u003c/button\u003e\n\u003cmeta itemprop=\"codeSampleType\" content=\"snippet\"\u003e\n\u003cmeta data-codetext itemprop=\"text\" content=\"\u0026#34;void solve() {\\n  string s;\\n  cin \\u003e\\u003e s;\\n\\n  int n = SZ(s);\\n  bool ok = false;\\n\\n  For(i, 0, n - 1) {\\n    if ((s[i] == \u0026#39;\\u003e\u0026#39; \\u0026\\u0026 s[i \u0026#43; 1] == \u0026#39;\\u003c\u0026#39;) || (s[i] == \u0026#39;\\u003e\u0026#39; \\u0026\\u0026 s[i \u0026#43; 1] == \u0026#39;*\u0026#39;) ||\\n        (s[i] == \u0026#39;*\u0026#39; \\u0026\\u0026 s[i \u0026#43; 1] == \u0026#39;\\u003c\u0026#39;) || (s[i] == \u0026#39;*\u0026#39; \\u0026\\u0026 s[i \u0026#43; 1] == \u0026#39;*\u0026#39;)) {\\n      ok = true;\\n      break;\\n    }\\n  }\\n\\n  if (ok) {\\n    cout \\u003c\\u003c \\\u0026#34;-1\\\\n\\\u0026#34;;\\n    return;\\n  }\\n\\n  int cnt = 0;\\n  For(i, 0, n) {\\n    if (s[i] == \u0026#39;*\u0026#39;)\\n      cnt\u0026#43;\u0026#43;;\\n  }\\n\\n  int cur = 1, ans = 1;\\n  char ch = s[0];\\n\\n  For(i, 1, n) {\\n    if (s[i] == s[i - 1]) {\\n      cur\u0026#43;\u0026#43;;\\n    } else {\\n      if (ckmax(ans, cur)) {\\n        ch = s[i - 1];\\n      }\\n      cur = 1;\\n    }\\n  }\\n  ckmax(ans, cur);\\n\\n  if (n \\u003e 1)\\n    ans \u0026#43;= cnt;\\n  cout \\u003c\\u003c ans \\u003c\\u003c \u0026#39;\\\\n\u0026#39;;\\n}\u0026#34;\"\u003e\n\u003cmeta itemprop=\"programmingLanguage\" content=\"cpp\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\n\u003ccode class=\"language-cpp\" data-lang=\"cpp\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#cf222e\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003esolve\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e()\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  string s\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e s\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e n \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e SZ\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003es\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003ebool\u003c/span\u003e ok \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003efalse\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  For\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e n \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e((\u003c/span\u003es\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e==\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39;\u0026gt;\u0026#39;\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e s\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e==\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39;\u0026lt;\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e||\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003es\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e==\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39;\u0026gt;\u0026#39;\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e s\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e==\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39;*\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e||\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003es\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e==\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39;*\u0026#39;\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e s\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e==\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39;\u0026lt;\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e||\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003es\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e==\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39;*\u0026#39;\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e s\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e==\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39;*\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e))\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      ok \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003etrue\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#cf222e\"\u003ebreak\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003eok\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#34;-1\u003c/span\u003e\u003cspan style=\"color:#0a3069\"\u003e\\n\u003c/span\u003e\u003cspan style=\"color:#0a3069\"\u003e\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003ereturn\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e cnt \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  For\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003es\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e==\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39;*\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      cnt\u003cspan style=\"color:#0550ae\"\u003e++\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e cur \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e ans \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003echar\u003c/span\u003e ch \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e s\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#0550ae\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e];\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  For\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003es\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e==\u003c/span\u003e s\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e])\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      cur\u003cspan style=\"color:#0550ae\"\u003e++\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e \u003cspan style=\"color:#cf222e\"\u003eelse\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003eckmax\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003eans\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e cur\u003cspan style=\"color:#1f2328\"\u003e))\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        ch \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e s\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e];\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      cur \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ckmax\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003eans\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e cur\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003en \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ans \u003cspan style=\"color:#0550ae\"\u003e+=\u003c/span\u003e cnt\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e ans \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39;\\n\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch1 id=\"c-range-operation\"\u003eC. Range Operation\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e很有意思的一道题目。\u003c/li\u003e\n\u003cli\u003e当区间 $[l, r]$ 变化的时候， $l + r$ 也会变化，很难找到单调性，也就是找不到贪心的性质。不妨从增量的角度考虑。\u003c/li\u003e\n\u003cli\u003e如果选择的区间是 $[l, r]$ ，数组和的增量是 $\\Delta_{1} = (l + r) len - sum(l, r)$ ，其中 $len = r - l + 1$ .\u003c/li\u003e\n\u003cli\u003e如果把区间往右扩展一个位置变成 $[l, r + 1]$ , 数组和的增量是 $\\Delta_2 = (l + r + 1)(len + 1) - sum(l, r + 1) = \\Delta_1 + 2(r + 1) - a_{r + 1}$\u003c/li\u003e\n\u003cli\u003e我们发现一个很整齐的形式： $2(r + 1) - a_{r + 1}$\u003c/li\u003e\n\u003cli\u003e也就是说，把区间往右扩展一位，它的增量恰好就是 $2(r + 1) - a_{r + 1}$ 。也就是说每一个位置的贡献是 $2i - a_i$ 。\u003c/li\u003e\n\u003cli\u003e设数组 $b_i = 2i - a_i$ ，因为我们只能进行最多一次操作，也就是我们只需要取一段区间，使得这个区间的贡献最大，也就是取一段连续的 $b_i$ ，使得区间和最大。这是线性 DP 的例题：“求最大子数组和”。\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv data-codeblock itemscope itemtype=\"https://schema.org/SoftwareSourceCode\" \u003e\n\u003cbutton data-codebutton class=\"codebutton\" title=\"Copy code\"\u003e\u003cspan\u003e⧉\u003c/span\u003e\u003c/button\u003e\n\u003cmeta itemprop=\"codeSampleType\" content=\"snippet\"\u003e\n\u003cmeta data-codetext itemprop=\"text\" content=\"\u0026#34;void solve() {\\n  int n;\\n  cin \\u003e\\u003e n;\\n\\n  VL a(n \u0026#43; 1), b(n \u0026#43; 1);\\n  ll sum{};\\n  For1(i, 1, n) {\\n    cin \\u003e\\u003e a[i];\\n    sum \u0026#43;= a[i];\\n    b[i] = 2 * i - a[i];\\n  }\\n\\n  VL d(n \u0026#43; 1);\\n  ll ans = 0;\\n  For1(i, 1, n) {\\n    d[i] = max(b[i], d[i - 1] \u0026#43; b[i]);\\n    ckmax(ans, d[i]);\\n  }\\n\\n  ans = ans \u0026#43; sum;\\n  cout \\u003c\\u003c ans \\u003c\\u003c \u0026#39;\\\\n\u0026#39;;\\n}\u0026#34;\"\u003e\n\u003cmeta itemprop=\"programmingLanguage\" content=\"cpp\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\n\u003ccode class=\"language-cpp\" data-lang=\"cpp\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#cf222e\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003esolve\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e()\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eint\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  VL a\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003en \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e),\u003c/span\u003e b\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003en \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ll sum\u003cspan style=\"color:#1f2328\"\u003e{};\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  For1\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e];\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    sum \u003cspan style=\"color:#0550ae\"\u003e+=\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e];\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    b\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e2\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e*\u003c/span\u003e i \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e a\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e];\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  VL d\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003en \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ll ans \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  For1\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e n\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    d\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e max\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003eb\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e],\u003c/span\u003e d\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei \u003cspan style=\"color:#0550ae\"\u003e-\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e]\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e b\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ckmax\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003eans\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e d\u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e]);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ans \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e ans \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e sum\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e ans \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39;\\n\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch1 id=\"d1-removal-of-a-sequence-easy-version\"\u003eD1. Removal of a Sequence (Easy Version)\u003c/h1\u003e\n\u003cp\u003e很有意思的一道题目。\u003c/p\u003e\n\u003cp\u003e如果要从删除掉了哪些数字的角度考虑，可能就有点复杂了。\u003c/p\u003e\n\u003cp\u003e这道题目的操作次数比较少，我们可以从全部操作完之后，剩下了多少个数字的角度考虑。对于给定的范围 $[1, n]$ ，操作完之后，剩下多少个数字是比较容易求出来的。\u003c/p\u003e\n\u003cp\u003e我们对 $n$ 进行二分，如果操作完之后，剩下的数字个数 $\\ge k$ ，说明 $n$ 是合法的。我们找到最小的 $n$ ，此时 $n$ 就是答案。\u003c/p\u003e\n\u003cdiv data-codeblock itemscope itemtype=\"https://schema.org/SoftwareSourceCode\" \u003e\n\u003cbutton data-codebutton class=\"codebutton\" title=\"Copy code\"\u003e\u003cspan\u003e⧉\u003c/span\u003e\u003c/button\u003e\n\u003cmeta itemprop=\"codeSampleType\" content=\"snippet\"\u003e\n\u003cmeta data-codetext itemprop=\"text\" content=\"\u0026#34;void solve() {\\n  ll x, y, k;\\n  cin \\u003e\\u003e x \\u003e\\u003e y \\u003e\\u003e k;\\n\\n  auto check = [\\u0026](ll p) -\\u003e bool {\\n    For(i, 0, x) { p -= p / y; }\\n    return p \\u003e= k;\\n  };\\n\\n  ll l = 1, r = 1e12, mid;\\n  while (l \\u003c r) {\\n    mid = (l \u0026#43; r) / 2;\\n    if (check(mid))\\n      r = mid;\\n    else\\n      l = mid \u0026#43; 1;\\n  }\\n  if (check(r))\\n    cout \\u003c\\u003c r \\u003c\\u003c \u0026#39;\\\\n\u0026#39;;\\n  else\\n    cout \\u003c\\u003c \\\u0026#34;-1\\\\n\\\u0026#34;;\\n}\u0026#34;\"\u003e\n\u003cmeta itemprop=\"programmingLanguage\" content=\"cpp\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\n\u003ccode class=\"language-cpp\" data-lang=\"cpp\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#cf222e\"\u003evoid\u003c/span\u003e \u003cspan style=\"color:#6639ba\"\u003esolve\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e()\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ll x\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e y\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e k\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  cin \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e x \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e y \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;\u0026gt;\u003c/span\u003e k\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eauto\u003c/span\u003e check \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e[\u003c/span\u003e\u003cspan style=\"color:#0550ae\"\u003e\u0026amp;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e](\u003c/span\u003ell p\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan style=\"color:#cf222e\"\u003ebool\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    For\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003ei\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e x\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e p \u003cspan style=\"color:#0550ae\"\u003e-=\u003c/span\u003e p \u003cspan style=\"color:#0550ae\"\u003e/\u003c/span\u003e y\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003ereturn\u003c/span\u003e p \u003cspan style=\"color:#0550ae\"\u003e\u0026gt;=\u003c/span\u003e k\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e};\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  ll l \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e r \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1e12\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e,\u003c/span\u003e mid\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003ewhile\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003el \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u003c/span\u003e r\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    mid \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003el \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e r\u003cspan style=\"color:#1f2328\"\u003e)\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e/\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e2\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003echeck\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003emid\u003cspan style=\"color:#1f2328\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      r \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e mid\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#cf222e\"\u003eelse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      l \u003cspan style=\"color:#0550ae\"\u003e=\u003c/span\u003e mid \u003cspan style=\"color:#0550ae\"\u003e+\u003c/span\u003e \u003cspan style=\"color:#0550ae\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eif\u003c/span\u003e \u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003echeck\u003cspan style=\"color:#1f2328\"\u003e(\u003c/span\u003er\u003cspan style=\"color:#1f2328\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e r \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#39;\\n\u0026#39;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#cf222e\"\u003eelse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    cout \u003cspan style=\"color:#0550ae\"\u003e\u0026lt;\u0026lt;\u003c/span\u003e \u003cspan style=\"color:#0a3069\"\u003e\u0026#34;-1\u003c/span\u003e\u003cspan style=\"color:#0a3069\"\u003e\\n\u003c/span\u003e\u003cspan style=\"color:#0a3069\"\u003e\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#1f2328\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#1f2328\"\u003e}\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\n\u003c/pre\u003e\n\u003c/div\u003e\n"}]}