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

学校网站怎么建设网站建设公司石家庄

学校网站怎么建设,网站建设公司石家庄,建设集团招聘,阿里云wordpress搭建作者#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/26401.html

相关文章:

  • 华为公司网站建设案例分析建设一站式服务网站
  • 建设多语言网站小程序页面设计报价
  • 获取网页 代码 做网站asp.net做电商网站页面
  • 深圳市门户网站建设品牌asp国外网站
  • 电视台做网站还是APP设计坞网站怎么样
  • 个人网站用什么域名张家口网站建设价格
  • 论坛申请网站备案前置审批WordPress分离
  • 建设部勘察设计网站微信公众号登录失败
  • 家装网站模板下载国际交流网站建设方案
  • 石家庄网站建设策略百度下载安装到手机
  • 网站开发感想中国纪检监察报
  • 哈尔滨做平台网站平台公司哪家好徐汇网站开发培训
  • 泰安网站设计公司惠州宣传片制作公司
  • 义乌网站建设制作商国家高新技术企业查询网站
  • 网站是否正常安阳网络公司
  • c2c电子商务网站用到的技术网络公关什么意思
  • 网站开发系统需求说明书怎么做婚恋网站
  • 网站正在建设中 htmlamh wordpress 伪静态
  • 东莞网站建设外贸哪里有html5网站建设
  • 廊坊网站建设公司哪家好网站改标题降权
  • 宁晋seo网站优化排名wordpress 自定义面板
  • 上海金山网站建设公司电子网站商业策划书
  • 做网站制作大概多少钱厦门网站建设合同
  • 正规的南昌网站建设网站pc端建设
  • 旅游网站内容规划网站调用微信js视频
  • python做电子商务网站lovephoto wordpress
  • 网站做seo有什么作用广告策划公司
  • 珠海市官网网站建设价格网站建设合同英文
  • 网站建设发言材料为什么要建立企业网站
  • 网站地链接结构杭州广告公司网站建设