手机站和微网站的区别我为什么卸载不了wordpress
web/
2025/10/8 9:22:54/
文章来源:
手机站和微网站的区别,我为什么卸载不了wordpress,注册公司需要的网站建设,wordpress菜单小图标不显示题目
原题 题目背景 语文考试结束了#xff0c;成绩还是一如既往地有问题。 题目描述 语文老师总是写错成绩#xff0c;所以当她修改成绩的时候#xff0c;总是累得不行。她总是要一遍遍地给某些同学增加分数#xff0c;又要注意最低分是多少。你能帮帮她吗#xff1f; 输…题目
原题 题目背景 语文考试结束了成绩还是一如既往地有问题。 题目描述 语文老师总是写错成绩所以当她修改成绩的时候总是累得不行。她总是要一遍遍地给某些同学增加分数又要注意最低分是多少。你能帮帮她吗 输入格式 第一行有两个整数 n n n p p p代表学生数与增加分数的次数。 第二行有 n n n 个数 a 1 ∼ a n a_1 \sim a_n a1∼an代表各个学生的初始成绩。 接下来 p p p 行每行有三个数 x x x y y y z z z代表给第 x x x 个到第 y y y 个学生每人增加 z z z 分。 输出格式 输出仅一行代表更改分数后全班的最低分。 样例 #1 样例输入 #1
3 2 1 1 1 1 2 1 2 3 1样例输出 #1 2 提示 对于 40 % 40\% 40% 的数据有 n ≤ 1 0 3 n \le 10^3 n≤103。 对于 60 % 60\% 60% 的数据有 n ≤ 1 0 4 n \le 10^4 n≤104。 对于 80 % 80\% 80% 的数据有 n ≤ 1 0 5 n \le 10^5 n≤105。 对于 100 % 100\% 100% 的数据有 n ≤ 5 × 1 0 6 n \le 5\times 10^6 n≤5×106 p ≤ n p \le n p≤n学生初始成绩 $ \le 100 z \le 100$。 思路
这里的思路是差分。因为直接模拟的话时间会爆。 离散化操作就是生成一个新的数组。每个元素都是由原数组当前位置减去元素组上一个位置得到 b [ i ] a [ i ] − a [ i − 1 ] b[i]a[i]-a[i-1] b[i]a[i]−a[i−1]。特别的新的数组第一个元素就是其本身因为第一个元素前面没有元素。新的数组的前缀和得到的就是原数组。 例如新数组第一个元素和第二个元素相加第二个元素是第二个和第一个元素的差值这个差值加上第一个元素原数组第一个元素很明显就是等于第二元素本身而新数组里第一个元素和原数组第一个元素恰好相等。同理新数组第三个元素是原数组第三个和第二个元素差值。而新数组第一个和第二个元素相加等于原第二元素这样第一二三个元素相加就是等于原数组第三个元素。这就是前缀和等于原数组。 这里的新数组有什么好处呢。好处在于在新数组上任意位置加上某个数该位置后面元素全会加上这个数。在上面例子中如果在第二个位置减去1那么根据前缀和计算出来的第二个元素会比原数组小1而第三个元素也需要加上第二个元素也就是说第三个元素也会比原数组第三个元素小于1.如果后面还有元素又会继续小1。 那如果希望某个区间加上某个值这里只需要在右界减去同一个值。这样右边超过区域的位置原本加上的值就会被这个减去的值抵消。这样可以大大减少时间消耗。因为改一个区域只需要改元素两个位置。如果是直接模拟区间一旦变大就会消耗大量时间。
代码
#includeiostream
using namespace std;
int d[5000001];
int de[5000001];
int main(){int m,n;cinnm;for(int i1;in;i){cind[i];de[i]d[i]-d[i-1];}int x,y,z;for(int j1;jm;j){cinxyz;de[x]z; //左边界加zde[y1]-z; //右边界减z}int mins9999999;for(int i1;in;i){ //前缀和还原数组d[i]de[i]d[i-1];if(d[i]mins)minsd[i];}coutmins;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/88975.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!