2 条题解

  • 0
    @ 2025-10-8 17:02:55

    60分代码:

    #include <bits/stdc++.h>
    using namespace std;
    constexpr int N = 1e5 + 5;
    int a[N], f[N];
    int main()
    {
        int n;
        scanf("%d", &n);
        for (int i = 1; i <= n; i++)
            scanf("%d", &a[i]);
        memset(f, 0, sizeof(f));
        for (int i = 1; i <= n; i++)
        {
            f[0] = f[0] + (a[i] == 0 ? 1 : 0);
            for (int j = i; j >= 1; j--)
                f[j] = max(f[j] + (a[i] == i - j ? 1 : 0), f[j - 1]);
        }
        int ans = 0;
        for (int i = 1; i <= n; i++)
            ans = max(ans, f[i]);
        printf("%d\n", ans);
        return 0;
    }
    
    • 0
      @ 2025-10-8 17:02:48

      60分代码:

      #include <bits/stdc++.h>
      using namespace std;
      constexpr int N = 1e5 + 5;
      int a[N], f[N];
      int main()
      {
      	int n;
      	scanf("%d", &n);
      	for (int i = 1; i <= n; i++)
      		scanf("%d", &a[i]);
      	memset(f, 0, sizeof(f));
      	for (int i = 1; i <= n; i++)
      	{
      		f[0]=f[0] + (a[i] == 0 ? 1 : 0);
      		for (int j = i; j >= 1; j--)
      			f[j] = max(f[j] + (a[i] == i - j ? 1 : 0), f[j - 1]);
      	}
      	int ans=0;for(int i=1;i<=n;i++) ans=max(ans,f[i]);
      	printf("%d\n", ans);
      	return 0;
      }
      • 1

      「POI2007 R3」堆积木 Building Blocks

      信息

      ID
      2762
      时间
      500ms
      内存
      256MiB
      难度
      7
      标签
      递交数
      22
      已通过
      7
      上传者