1 条题解

  • 0
    @ 2025-7-8 9:19:50

    x+y=n------(1)

    x-y=k------(2)

    (1)+(2)===>x=(n+k)/2

    所以能继续分群的条件是 n>k 且 (n+k) 为偶数

    当然,也可以 (1)-(2)===>y=(n-k)/2 ===> (n-k) 为偶数

    #include <iostream>
    using namespace  std;
    
    int n, k, ans;
    
    void dfs(int n)
    {
    	if(n <= k || (n + k) & 1)
    	{
    		ans ++;
    		return ;
    	}
    	int t = (n + k) / 2;
    	dfs(t);
    	dfs(n - t);
    }
    int main()
    {
    	cin >> n >> k;
    	dfs(n);
    	cout << ans;
    	return 0;
    } 
    
    • 1

    信息

    ID
    320
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    (无)
    递交数
    28
    已通过
    9
    上传者