展示型网站的特点浦东网站开发培训班
展示型网站的特点,浦东网站开发培训班,桂林市建设局网站,网站在哪里找A. Strange Splitting
思路
贪心
将题目中的红色元素范围不等于蓝色元素范围改成红色元素范围小于蓝色范围其实是一样的
那么红色元素范围最小是0#xff0c;要占据一个元素。然后我们只要从数组中找到两个不同的元素就能够使得蓝色元素范围大于0#xff0c;满足题意。
…A. Strange Splitting
思路
贪心
将题目中的红色元素范围不等于蓝色元素范围改成红色元素范围小于蓝色范围其实是一样的
那么红色元素范围最小是0要占据一个元素。然后我们只要从数组中找到两个不同的元素就能够使得蓝色元素范围大于0满足题意。
题目中的 n 是大于等于3的并且数组是单增的。说明只要数组不是全都是一样的就可以满足上述要求。
code
inline void solve() {int n; cin n;vectorint a(n);for (auto x : a) cin x;if (a[0] ! a[n - 1]) {cout YES\n;string s string(n, B);s[1] R;cout s endl;}else cout NO\n;return;
}
B. Large Addition
思路
模拟
题目要求数位是大数并且两个数的位数相同。
很简单的两个数相加的时候必然每次都进位。
但是[5,9]范围里的两个数相加肯定不会出现个数上是9的还有开头元素一定是1。
注意判断 代码模拟相加即可。
code
inline void solve() {ll x; cin x;while (x) {if (x 0 x 10 || x % 10 9) return cout NO\n, void();x / 10;x - 1;}cout YES\n;return;
}
C1. Magnitude (Easy Version)
思路
dp
我们定义 dp[i][2]。其中dp[i][0]维护到i个构成的最小值dp[i][1]维护到i个构成的最大值。
对于 dp[i][0] 我们是不会使用option2的这只会使得它变大只会用option1 转移为 dp[i][0] dp[i - 1][0] a[i]
而对于 dp[i][1] 我们还要考虑 option2 的情况即最小值加个绝对值的情况 使用option1的话a[i] 肯定是跟dp[i - 1][1]的option2 肯定是跟 dp[i - 1][0]的 所以转移方程为
dp[i][1] max({dp[i][1], dp[i - 1][1] a[i] , abs(dp[i - 1][0] a[i])})
所以得到了 dp[n][1] 作为最终答案
code
const int N 2e5 9;
ll dp[N][2]; // 前i个的维护的最大和最小值
inline void solve() {int n; cin n;vectorll a(n 1);for (int i 1; i n; i ) cin a[i], dp[i][1] 0;for (int i 1; i n; i ) {dp[i][0] dp[i - 1][0] a[i];dp[i][1] max({dp[i][1], abs(dp[i - 1][0] a[i]), dp[i - 1][1] a[i]});}cout dp[n][1] endl;return;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/88938.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!