2 条题解

  • 0
    @ 2025-7-2 16:14:05

    标记当前还有没有 1,以及连续输出了几个 1

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        freopen("three.in", "r", stdin);
        freopen("three.out", "w", stdout);
        int n, m;
        cin >> n >> m;
        int now = 0; // 当前已经连续输出了几个 1
        for (int i = 1; i <= n; i++)
            if (m != 0 && now != 2)
            {
                cout << 1;
                m--;
                now++;
            }
            else
            {
                cout << 0;
                now = 0;
            }
        return 0;
    }
    

    发现 1 的位置就是非 3 的倍数位置

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        freopen("three.in", "r", stdin);
        freopen("three.out", "w", stdout);
        int n, m;
        cin >> n >> m;
        for (int i = 1; i <= n; i++)
            if (m != 0 && i % 3 != 0)
            {
                cout << 1;
                m--;
            }
            else
            {
                cout << 0;
            }
        return 0;
    }
    
    • 0
      @ 2025-6-28 16:55:22

      A. 不要三个一

      显然要尽可能把 11 往高位放,如果放了两个 11 就来一个 00 来避免非法,所以 11 应该放在从左往右第 1,2,4,5,7,8,1,2,4,5,7,8,\dots 个,这些除以 331,21,2 的位置中。所以可以根据是否还有 11 来决定怎么输出。

      • 子任务 1:只有一个 11,那直接输出 1111n1n-100 即可。
      • 子任务 2:显然这个子任务的输出是 11,11011,11011011,11,11011,11011011,\dots 这样的格式。
      • 子任务 3:凑数给愿意写 66if 打表的同学送的分数。

      满分参考代码

      #include <bits/stdc++.h>
      using namespace std;
      int n, m;
      int main()
      {
          freopen("three.in", "r", stdin);
          freopen("three.out", "w", stdout);
          cin >> n >> m;
          for (int i = 1; i <= n; i++)
          {
              if (m > 0)
              {
                  if (i % 3 == 1 || i % 3 == 2)
                  {
                      cout << 1;
                      m--;
                  }
                  else
                      cout << 0;
              }
              else
                  cout << 0;
          }
          return 0;
      }
      
      • 1

      信息

      ID
      1596
      时间
      1000ms
      内存
      512MiB
      难度
      5
      标签
      递交数
      44
      已通过
      17
      上传者