5185. 【NOIP2017提高组模拟6.30】tty's sequence (Standard IO)

本文介绍了如何通过遍历数组快速计算最大二进制或值,并利用线段树优化计算最大二进制与值,整个过程时间复杂度为O(nlogn)。
Description
 
Input
 
Output
 
Solution

显然:

最大的二进制或值是选n个,因为不会变小;

最大的二进制与值是选k个,因为不会变大。

所以或值可以很容易的得到,for一遍即可,O(n)

而与值,则需开线段树维护区间,查询只需O(logn),总得需O(nlogn)

 

代码

 1 type
 2   arr=record
 3     l,r,w:longint;
 4   end;
 5 var
 6   n,k,ans1,ans2,num:longint;
 7   a:array [0..1000001] of longint;
 8   tree:array [0..4000001] of arr;
 9 function max(o,p:longint):longint;
10 begin
11   if o>p then exit(o);
12   exit(p);
13 end;
14 
15 procedure init;
16 var
17   i:longint;
18 begin
19   readln(n,k);
20   ans1:=0;
21   for i:=1 to n do
22     begin
23       read(a[i]);
24       ans1:=ans1 or a[i];
25     end;
26 end;
27 
28 procedure build(p,l,r:longint);
29 var
30   mid:longint;
31 begin
32   if l=r then
33     begin
34       tree[p].w:=a[l];
35       exit;
36     end;
37   mid:=(l+r) div 2;
38   build(p*2,l,mid);
39   build(p*2+1,mid+1,r);
40   tree[p].w:=tree[p*2].w and tree[p*2+1].w;
41 end;
42 
43 procedure find(p,l,r,x,y:longint);
44 var
45   mid:longint;
46 begin
47   if (l=x) and (r=y) then
48     begin
49       num:=num and tree[p].w;
50       exit;
51     end;
52   mid:=(l+r) div 2;
53   if y<=mid then find(p*2,l,mid,x,y) else
54     if x>mid then find(p*2+1,mid+1,r,x,y) else
55       begin
56         find(p*2,l,mid,x,mid);
57         find(p*2+1,mid+1,r,mid+1,y);
58       end;
59 end;
60 
61 procedure main;
62 var
63   i,m:longint;
64 begin
65   ans2:=0; m:=n-k+1;
66   for i:=1 to m do
67     begin
68       num:=maxlongint;
69       find(1,1,n,i,i+k-1);
70       ans2:=max(ans2,num);
71     end;
72 end;
73 
74 begin
75   init;
76   build(1,1,n);
77   main;
78   writeln(ans1,' ',ans2);
79 end.

 

MATLAB主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性内容概要:本文主要介绍了一种在MATLAB环境下实现的主动噪声和振动控制算法,该算法针对较大的次级路径变化具有较强的鲁棒性。文中详细阐述了算法的设计原理与实现方法,重点解决了传统控制系统中因次级路径动态变化导致性能下降的问题。通过引入自适应机制和鲁棒控制策略,提升了系统在复杂环境下的稳定性和控制精度,适用于需要高精度噪声与振动抑制的实际工程场景。此外,文档还列举了多个MATLAB仿真实例及相关科研技术服务内容,涵盖信号处理、智能优化、机器学习等多个交叉领域。; 适合人群:具备一定MATLAB编程基础和控制系统理论知识的科研人员及工程技术人员,尤其适合从事噪声与振动控制、信号处理、自动化等相关领域的研究生和工程师。; 使用场景及目标:①应用于汽车、航空航天、精密仪器等对噪声和振动敏感的工业领域;②用于提升现有主动控制系统对参数变化的适应能力;③为相关科研项目提供算法验证与仿真平台支持; 阅读建议:建议读者结合提供的MATLAB代码进行仿真实验,深入理解算法在不同次级路径条件下的响应特性,并可通过调整控制参数进一步探究其鲁棒性边界。同时可参考文档中列出的相关技术案例拓展应用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值