全部评论 2

  • 5

    2026-09-10 来自 浙江

    0
  • 非常男女计划不是应该枚举1~n的所有子区间吗

    2026-09-10 来自 浙江

    0
    • #include <bits/stdc++.h>
      using namespace std;
      int main(){
          int n;
          cin>>n;
          vector<int> s(n+1);
          for(int i=1;i<=n;i++){
              int x;
              cin>>x;
              s[i]=s[i-1]+(x==0?-1:1);
          }
          for(int len=n&~1;len>=2;len-=2){
              for(int i=1;i<=n-len+1;i++){
                  if(s[i+len-1]==s[i-1]){
                      cout<<len;
                      return 0;
                  }
              }
          }
          cout<<0;
      }
      

      2026-09-10 来自 浙江

      0
    • 你这个做法从某种程度上是O(n2)的(本来是n2/4,但是用大O表示法就是O(n2),n<=105从理论上是坠机的)。如果n<=10^6就挂了。我写的那种做法实际实现出来是O(nlogn)的,而且代码从某种上是更好理解更易懂的。
      总而言之你这种做法是OK的,但是我的也是对的。

      一个题目一般也不会只有一种做法。
      我的那种其实是才算是这个题目的“正解”。

      我以前的帖子也经常烂尾。虽然没有写完,但是相对差确实是好做法。

      另外就是我不常登ACGO。所以回复的很慢。

      2026-09-13 来自 上海

      0
    • 你都写到这步了,优化不是一眼的吗/xk

      2026-09-13 来自 广东

      0

热门讨论