当前位置: 首页 > news >正文

麓谷网站建设php网站开发招聘

麓谷网站建设,php网站开发招聘,青海电商网站建设公司,制作游戏需要什么软件作者#xff1a;指针不指南吗 专栏#xff1a;Acwing 蓝桥集训每日一题 #x1f43e;做题过程中首先应该注意时间复杂度问题#x1f43e; 文章目录1.改变数组元素2.差分3.差分矩阵1.改变数组元素 给定一个空数组 V 和一个整数数组 a1,a2,…,an。 现在要对数组 V 进行 n 次操… 作者指针不指南吗 专栏Acwing 蓝桥集训每日一题 做题过程中首先应该注意时间复杂度问题 文章目录1.改变数组元素2.差分3.差分矩阵1.改变数组元素 给定一个空数组 V 和一个整数数组 a1,a2,…,an。 现在要对数组 V 进行 n 次操作。 第 i 次操作的具体流程如下 从数组 V 尾部插入整数 0。将位于数组 V 末尾的 ai 个元素都变为 1已经是 1 的不予理会。 注意 ai 可能为 0即不做任何改变。ai 可能大于目前数组 V 所包含的元素个数此时视为将数组内所有元素变为 1。 请你输出所有操作完成后的数组 V。 输入格式 第一行包含整数 T表示共有 T 组测试数据。 每组数据第一行包含整数 n。 第二行包含 n 个整数 a1,a2,…,an。 输出格式 每组数据输出一行结果表示所有操作完成后的数组 V数组内元素之间用空格隔开。 数据范围 1≤T≤20000, 1≤n≤2×10510^5105 , 0≤ai≤n, 保证一个测试点内所有 n 的和不超过 2×10510^5105 。 输入样例 3 6 0 3 0 0 1 3 10 0 0 0 1 0 5 0 0 0 2 3 0 0 0输出样例 1 1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 0 0 0思路 对V进行 n 次操作每次操作加个 0 即V一共有 n 个元素 第 i 次 把 V 末尾的 ai 个元素都变为 1即 V 是由 01 组成 只要被操作过就是 1 首先根据数据范围来分析时间复杂度200010应该是 n log2nlog_2^nlog2n​ 或者 n 比较合适用个一个数组来存某个元素操作的次数超过 1 的输出 10就输出 0对 区间 [ n - ai , n ] 统一加上 1这里可以用差分注意每一组数据之后要进行置零 代码实现 #includebits/stdc.h using namespace std;const int N2*1e510; int a[N];int main() {int T;cinT; // T 组测试数据while(T--){int n; // n 个元素cinn;memset(a,0,(n1)*4); //置零操作memset 或者是 for(快些)sizeof b 会比(n1)*4 慢很多 for(int i1;in;i){ //输入数据int x;cinx; int lmax(1,i-x1),ri; a[l],a[r1]--; //记录V中元素被操作多少次 差分} for(int i1;in;i){a[i]a[i-1]; // 为什么求前缀和数组算的差分数组不是记录的 V 中元素操作的次数吗cout!!a[i] ; // !! 运算如果是0则为0如果是非0则为1也可以写特判}coutendl;}return 0; }2.差分 输入一个长度为 n 的整数序列。 接下来输入 m 个操作每个操作包含三个整数 l,r,c表示将序列中 [l, r ]之间的每个数加上 。 请你输出进行完所有操作后的序列。 输入格式 第一行包含两个整数 n 和 m。 第二行包含 n 个整数表示整数序列。 接下来 m 行每行包含三个整数 lrc表示一个操作。 输出格式 共一行包含 n 个整数表示最终序列。 数据范围 1≤n,m≤100000, 1≤l≤r≤n, −1000≤c≤1000, −1000≤整数序列中元素的值≤1000, 输入样例 6 3 1 2 2 1 2 1 1 3 1 3 5 1 1 6 1输出样例: 3 4 5 3 4 2代码实现 #includeiostream using namespace std;const int N100010; int a[N],b[N];int n,m; //n 数组元素个数m 表示操作次数void insert(int l,int r,int c){b[l]c; //对差分cb[r1]-c; //补丁 }int main(){cinnm;for(int i1;in;i){cina[i];insert(i,i,a[i]); //差分b 数组}while(m--){int l,r,c; //对差分 b 操作cinlrc; insert(l,r,c); //对区间进行元素进行操作}for(int i1;in;i){ //求出原数组即前缀和aa[i]a[i-1]b[i];couta[i] ;}return 0; } 3.差分矩阵 输入一个 n 行 m 列的整数矩阵再输入 q个操作每个操作包含五个整数 x1,y1,x2,y2,c 其中 (x1,y1)和 (x2,y2) 表示一个子矩阵的左上角坐标和右下角坐标。 每个操作都要将选中的子矩阵中的每个元素的值加上 c。 请你将进行完所有操作后的矩阵输出。 输入格式 第一行包含整数 n,m,q。 接下来 n 行每行包含 m 个整数表示整数矩阵。 接下来 q 行每行包含 55 个整数 x1,y1,x2,y2,c表示一个操作。 输出格式 共 n 行每行 m 个整数表示所有操作进行完毕后的最终矩阵。 数据范围 1≤n,m≤1000, 1≤q≤100000, 1≤x1≤x2≤n, 1≤y1≤y2≤m, −1000≤c≤1000, −1000≤矩阵内元素的值≤1000. 输入样例 3 4 3 1 2 2 1 3 2 2 1 1 1 1 1 1 1 2 2 1 1 3 2 3 2 3 1 3 4 1输出样例 2 3 4 1 4 3 4 1 2 2 2 2代码实现 #include iostreamusing namespace std;const int N 1010;int n, m, q; int a[N][N], b[N][N];void insert(int x1, int y1, int x2, int y2, int c) {b[x1][y1] c;b[x2 1][y1] - c;b[x1][y2 1] - c;b[x2 1][y2 1] c; }int main() {scanf(%d%d%d, n, m, q);for (int i 1; i n; i )for (int j 1; j m; j ){scanf(%d, a[i][j]);insert(i, j, i, j, a[i][j]);}while (q -- ){int x1, y1, x2, y2, c;cin x1 y1 x2 y2 c;insert(x1, y1, x2, y2, c);}for (int i 1; i n; i ){for (int j 1; j m; j ){b[i][j] b[i - 1][j] b[i][j - 1] - b[i - 1][j - 1];printf(%d , b[i][j]);}puts( );}return 0; }
http://www.dnsts.com.cn/news/234459.html

相关文章:

  • 天津做网站建设广西壮族自治区简称
  • 电子商务网站设计原理知识点龙采哈尔滨建站公司
  • 网站诊断网站seo诊断wordpress更新机制
  • 黄山网站建设电话网页链接的视频怎么下载
  • 做网站的前期准备网站模板免费
  • 建立网站时要采用一定的链接结构可采用的基本方式有wordpress pv
  • 网站设计和美工一样吗网站设计经典案例欣赏
  • 网站推广系统可以做英语阅读理解的网站
  • 设计班级网站建设深圳凌 网站开发
  • 朋友要给我做网站大都会app官网最新
  • 深圳网站建设龙华新科定制制作网站价格
  • gif表情包在线制作网站抚州网站开发机构
  • 网站后台不能上传图片淮北刚刚发生的事
  • 泉州网站建设怎么收费企业邮箱注册需要多少钱
  • 网站付费推广渠道广州天华建筑设计有限公司
  • 如何推广网站话术wordpress添加文章目录
  • 盗版视频网站怎么做的建设网站报告
  • 石家庄建设厅网站四川网站开发制作
  • 城阳建设局网站福田区网络建设
  • 网站程序风格调用wordpress分类名称
  • 合肥专业做网站公司哪家好厦门企业自助建站
  • 营销网站案例什么意思校园微网站建设方案ppt模板
  • ps网站logo制作教程做网站需要用什么语言
  • 虚拟币网站建设仿新浪首页网站模板
  • 手机怎么安装网站程序外贸企业网站源码
  • 阿里巴巴怎么做网站优化方案数学2023版电子版
  • 东莞网站设计找哪里韩国最新新闻事件
  • 专业建站推广服务网站建设海淀区
  • 深圳专业做网站菜鸟网络属于哪个公司
  • 虚拟主机wordpress多站点站长之家查询域名