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

西安网站开发公司有哪家2022知名品牌营销案例100例

西安网站开发公司有哪家,2022知名品牌营销案例100例,做照片有那些网站,宝宝发烧反反复复什么原因导致的题目描述 蓝桥智慧城市在一条主干道上沿路安装了 N N N 个智能交通信号灯,这些信号灯按位置从 1 1 1 到 N N N 编号。每个信号灯都有着一种控制模式,对于第 i i i 个信号灯,其控制模式用 A i A_i Ai​ 表示, A i A_i Ai​ 是…

题目描述

蓝桥智慧城市在一条主干道上沿路安装了 N N N 个智能交通信号灯,这些信号灯按位置从 1 1 1 N N N 编号。每个信号灯都有着一种控制模式,对于第 i i i 个信号灯,其控制模式用 A i A_i Ai 表示, A i A_i Ai 是一个大于等于 1 1 1 的整数。

为了评估信号灯配置的 “多样性”,交通管理专家提出了一种度量方式:对于任意两个不同位置 x x x y y y,它们的多样性分数被定义为大于等于 1 1 1 的整数中,第一个既不是 A x A_x Ax 也不是 A y A_y Ay 的数值,记作 mex ( A x , A y ) \text{mex}(A_x, A_y) mex(Ax,Ay)。例如,当 A x = 1 A_x = 1 Ax=1 A y = 2 A_y = 2 Ay=2 时, mex ( 1 , 2 ) = 3 \text{mex}(1, 2) = 3 mex(1,2)=3;当 A x = 1 A_x = 1 Ax=1 A y = 3 A_y = 3 Ay=3 时, mex ( 1 , 3 ) = 2 \text{mex}(1, 3) = 2 mex(1,3)=2;当 A x = 2 A_x = 2 Ax=2 A y = 2 A_y = 2 Ay=2 时, mex ( 2 , 2 ) = 1 \text{mex}(2, 2) = 1 mex(2,2)=1

政府希望通过分析和调整信号灯配置,提升道路通行效率。为此,他们计划执行 M M M 条操作指令,每条指令为以下两类之一:

  • 1 l r 1\ l\ r 1 l r:查询操作。计算所有满足 l ≤ i < j ≤ r l \leq i < j \leq r li<jr 的信号灯对 ( A i , A j ) (A_i, A_j) (Ai,Aj),其多样性分数 mex ( A i , A j ) \text{mex}(A_i, A_j) mex(Ai,Aj) 的总和。
  • 2 k x 2\ k\ x 2 k x:调整操作。将第 k k k 个信号灯的控制模式 A k A_k Ak 修改为新的值 x x x

现在,请你协助政府依次处理这 M M M 次操作,并输出每个查询操作的结果。

输入格式

第一行包含两个整数 N N N M M M,分别表示信号灯的数量和操作指令的数量。

第二行包含 N N N 个整数 A 1 , A 2 , … , A N A_1, A_2, \ldots, A_N A1,A2,,AN,表示初始的信号灯控制模式。

接下来 M M M 行,每行描述一条操作指令,格式如上所述。

输出格式

对于每个查询操作,输出一行包含一个整数,表示多样性分数的总和。

输入输出样例 #1

输入 #1

5 3
1 2 3 4 5
1 1 5
2 1 2
1 1 5

输出 #1

15
10

说明/提示

【样例说明】

初始时信号灯的控制模式依次为: 1 , 2 , 3 , 4 , 5 1, 2, 3, 4, 5 1,2,3,4,5。第一次查询区间 [ 1 , 5 ] [1, 5] [1,5] mex \text{mex} mex 值分别为 3 , 2 , 2 , 2 , 1 , 1 , 1 , 1 , 1 , 1 3, 2, 2, 2, 1, 1, 1, 1, 1, 1 3,2,2,2,1,1,1,1,1,1,总和为 15 15 15

第二次操作后,信号灯的控制模式依次为: 2 , 2 , 3 , 4 , 5 2, 2, 3, 4, 5 2,2,3,4,5。第二次查询区间 [ 1 , 5 ] [1, 5] [1,5] mex \text{mex} mex 值均为 1 1 1,总和为 10 10 10

【评测用例规模与约定】

对于 10 % 10\% 10% 的评测用例, 2 ≤ N , M ≤ 100 2 \leq N, M \leq 100 2N,M100 1 ≤ l < r ≤ N 1 \leq l < r \leq N 1l<rN 1 ≤ k ≤ N 1 \leq k \leq N 1kN 1 ≤ A i , x ≤ 1 0 3 1 \leq A_i, x \leq 10^3 1Ai,x103

对于 40 % 40\% 40% 的评测用例, 2 ≤ N , M ≤ 1 0 3 2 \leq N, M \leq 10^3 2N,M103 1 ≤ l < r ≤ N 1 \leq l < r \leq N 1l<rN 1 ≤ k ≤ N 1 \leq k \leq N 1kN 1 ≤ A i , x ≤ 1 0 5 1 \leq A_i, x \leq 10^5 1Ai,x105

对于 100 % 100\% 100% 的评测用例, 2 ≤ N , M ≤ 1 0 5 2 \leq N, M \leq 10^5 2N,M105 1 ≤ l < r ≤ N 1 \leq l < r \leq N 1l<rN 1 ≤ k ≤ N 1 \leq k \leq N 1kN 1 ≤ A i , x ≤ 1 0 9 1 \leq A_i, x \leq 10^9 1Ai,x109

💻 代码实现(语言:Java)

import java.util.*;public class Main {static final int MAXN = 100005;static int n, m;static int[] A = new int[MAXN]; // 存储当前信号灯模式// 树状数组实现,用于区间统计static class FenwickTree {long[] tree = new long[MAXN];// 单点更新:在 x 位置增加 yvoid update(int x, int y) {for (int i = x; i <= n; i += i & -i) {tree[i] += y;}}// 前缀和查询:查询 [1, x] 的总和long query(int x) {long res = 0;for (int i = x; i > 0; i -= i & -i) {res += tree[i];}return res;}// 区间查询:[l, r]long rangeQuery(int l, int r) {return query(r) - query(l - 1);}}static FenwickTree count1 = new FenwickTree(); // 记录值为1的个数static FenwickTree count2 = new FenwickTree(); // 记录值为2的个数public static void main(String[] args) {Scanner sc = new Scanner(System.in);n = sc.nextInt(); // 信号灯数量m = sc.nextInt(); // 操作数量// 读入初始信号灯模式for (int i = 1; i <= n; i++) {A[i] = sc.nextInt();if (A[i] == 1) count1.update(i, 1);else if (A[i] == 2) count2.update(i, 1);}while (m-- > 0) {int op = sc.nextInt();if (op == 1) {// 查询操作:求区间内所有数对的 mex 总和int l = sc.nextInt();int r = sc.nextInt();long num1 = count1.rangeQuery(l, r); // 区间内值为1的个数long num2 = count2.rangeQuery(l, r); // 区间内值为2的个数long len = r - l + 1;long numOthers = len - num1 - num2; // 其他值的个数/*** 枚举所有 (i, j) 对,满足 i < j:* 总共有 len * (len - 1) / 2 个数对* 分类计算:* 1. mex = 1: (v1 == v1 >= 2)(A[i], A[j]) 都不等于1* 2. mex = 2: 出现1但不出现2* 3. mex = 3: 出现1和2*/long countMex1 = (len - num1) * (len - num1 - 1) / 2;long countMex2 = (num1 * (num1 - 1)) / 2 + num1 * numOthers;long countMex3 = num1 * num2;long total = 1 * countMex1 + 2 * countMex2 + 3 * countMex3;System.out.println(total);} else if (op == 2) {// 修改操作:将 A[k] 改为 xint k = sc.nextInt();int x = sc.nextInt();// 先从树状数组中删除原来的值if (A[k] == 1) count1.update(k, -1);else if (A[k] == 2) count2.update(k, -1);// 更新为新值if (x == 1) count1.update(k, 1);else if (x == 2) count2.update(k, 1);A[k] = x; // 更新数组中的值}}}
}

每天带你写一道程序设计题,讲思路,写代码,练算法。
(编程题来源于网络,代码与讲解为本人原创。)

题目链接

https://www.luogu.com.cn/problem/P12894
http://www.dtcms.com/wzjs/333121.html

相关文章:

  • 银川网站建设怎么样网络营销带来的效果
  • 陕西省交通建设集团公司西商分公司网站上海百度移动关键词排名优化
  • php网站开发案例教程平台做推广的技巧
  • 代理服务器上外网seo排名优化软件
  • 网站项目策划书方案搜索引擎优化seo什么意思
  • 专业网站建设网站站长平台网站
  • 去哪找做塑料的网站百度竞价课程
  • 昆明公司网站开发网站建设公司官网
  • 温州网站推广线上渠道推广怎么做
  • 做新闻网站如何河北网站seo外包
  • 济南电子商务网站建设网站建设技术外包
  • 河北做网站公司那家好seo的重要性
  • 河南网站建设公司排名网络销售好不好做
  • WordPress百科模板北京seo推广系统
  • 如何申请免费网站域名厦门百度seo排名
  • php做网站麻烦吗今天的热点新闻
  • 毕业设计是做网站设计济宁seo公司
  • 北京企业网站建设电话线下推广方式有哪些
  • 专业做微视频的网站seo sem是指什么意思
  • 贵阳网站托管洛阳seo博客
  • 我电脑做网站局域网怎么访问快速排名刷
  • 手机网站作用公司专业网站建设
  • 网站建设所需材料138ip查询网域名解析
  • 唐山论坛建站模板软服业营收破334亿
  • 做网站横幅的图片湖南seo优化价格
  • 电商大数据查询平台免费志鸿优化网下载
  • 教做黏土手工的网站竞价服务托管价格
  • 一键做网站广州seo网络优化公司
  • 陕西建设厅执业资格注册中心网站免费数据统计网站
  • 哪家微网站建设西安建站推广