4 条题解

  • 3
    @ 2021-8-20 10:40:36

    按照题意,每次选取一个最小的位置,然后左右递归建树即可,每次选择的根的子树大小就是当前序列的长度。

    void dfs(int l, int r)
    {
        int minPos = l;
        for (int i = l + 1; i <= r; i++)
            if (a[i] < a[minPos])
                minPos = i;
        siz[a[minPos]] = r - l + 1;
        if (minPos > l)
            dfs(l, minPos - 1);
        if (minPos < r)
            dfs(minPos + 1, r);
    }
    int main()
    {
        ios::sync_with_stdio(false);
        cin.tie(0);
        cin >> n;
        for (int i = 1; i <= n; i++)
            cin >> a[i];
        dfs(1, n);
        for (int i = 1; i <= n; i++)
            cout << siz[i] << " ";
        return 0
    }
    
  • 0
    @ 2023-10-15 21:05:48

    100分题解

    判断每一个数周围有多少个连续的比它大的数,如:

    数列3,1,5,2,4, 1周围有5个大于等于1的数:3,1,5,2,4 2周围有3个大于等于1的数:5,2,4 3周围有1个大于等于1的数:3

    时间复杂度:O(n²)
    #include
    using namespace std;
    int n,a[1001],b[1001],sum;
    int main()
    {
    	cin >> n;
    	for (int i = 1;i <= n;i++)
    	{
    		cin >> a[i];
    		b[a[i]] = i;
    	}
    	for (int i = 1;i <= n;i++)
    	{
    		sum = -1;
    		for (int j = b[i];j >= 1;j--)
    		{
    			if (a[j] < i)
    			{
    				break;
    			}
    			sum++;
    		}
    		for (int j = b[i];j <= n;j++)
    		{
    			if (a[j] < i)
    			{
    				break;
    			}
    			sum++;
    		}
    		cout << sum << " ";
    	}
    	return 0;
    }
    
    • -6
      @ 2023-10-18 19:34:25

      //

      • -22
        @ 2022-4-24 16:56:44

        写题解请注意

        鼓励大家写题解,但注意题解格式。

        题解一定要有思路解析或代码注释,能否让别人理解你的思路

        也是你的能力的检验,不要只放无意义的代码给大家复制,那就失去了做题的初心。

        给代码两端加上这个会舒服一些

        ```cpp

        你的代码

        ```

        </span>

        这个点在键盘的左上角tab上面那个键,注意切换输入法

        #include<iostream>
        using namespace std;
        int main()
        {
            int n;
            cin>>n;//这是一个注释
            return 0;
        } 
        

        请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。

        抄袭题解一经发现直接取消成绩。

        题解被删除的可能

        1. 代码不符合格式规范
        2. 没有思路讲解或者没有注释,
        3. 无意义的题解

        大家携手共同维护一个良好的编程环境,如果一经发现,多次作乱。可能会被管理员拉黑,请注意,一旦拉黑即失去登陆资格。

        • 1

        信息

        ID
        1216
        时间
        1000ms
        内存
        256MiB
        难度
        5
        标签
        递交数
        299
        已通过
        113
        上传者