求助 最多用30把钥匙 这块不是很理解
查看原帖
求助 最多用30把钥匙 这块不是很理解
757864
ruye楼主2024/1/19 19:31

    int ans = 0;
	for (int i = 1; i <= n; i ++ )
		for (int j = 0; j <= min(i,(int)30); j ++ ) {
			dp[i][j] = dp[i - 1][j] + (a[i] >> j) - k;
			if(j >= 1)    dp[i][j] = max(dp[i][j], dp[i - 1][j - 1] + (a[i] >> j));
			ans = max(ans, dp[i][j]);
		}

如果是放在dp方程里的话我能理解 就是 当j >= 30时 a[i] >> j = 0 那么就不用遍历j > 30的情况了 反正都一样

2024/1/19 19:31
加载中...