3-26 备赛

2024-03-27 04:12
文章标签 26 备赛

本文主要是介绍3-26 备赛,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天复习了 树状数组、RMQ区间最大值问题、01背包问题
天梯赛补题目 、校赛补题

树状数组
https://blog.csdn.net/weixin_44777363/article/details/107254870
讲的比较清楚的csdn博客。
在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
using ll = long long;
ll a[N], b[N];
int n, q;
// 计算lowbit的
int lowbit(int x)
{return x & (-x);
}
void add(int p, int x)
{while (p <= n){b[p] += x;p += lowbit(p);}
}
ll count(int p)
{ll result = 0;while (p){result += b[p];p -= lowbit(p);}return result;
}
int main()
{cin >> n >> q;for (int i = 1; i <= n; i++){cin >> a[i];}for (int i = 1; i <= n; i++){add(i, a[i]);}while (q--){int k, l, r;cin >> k >> l >> r;if (k == 0){ll res = count(r) - count(l - 1);cout << res << endl;}else{add(l, r);}}
}

树状数组的题目:
https://www.acwing.com/problem/content/1217/
蓝桥杯真题:

交换小朋友的位置,对应的区间需要加上一个数字
最后是需要查询所有的数字。

n是1e5次方,如何解决呢?

#include<bits/stdc++.h>
using namespace std;
const int N = 1000010;
int n;
long long a[N],tr[N],b[N]={0};int lowbit(int x){return x&-x;
}void add(int x,int y){for(int i=x;i<N;i+=lowbit(i)) tr[i]+=y;
}int query(int x){int ans=0;for(int i=x;i;i-=lowbit(i)) ans+=tr[i];return ans;
}
int main(){cin>>n;for(int i=1;i<=n;i++){cin>>a[i];a[i]++; //避免0}for(int i=1;i<=n;i++){add(a[i],1);b[i]=(i)-query(a[i]); //比这个数大的个数}// cout<<endl;memset(tr,0,sizeof tr); //该逆序算了,所以维护树状数组不一样,所以算完大的要清0.for(int i=n;i>=1;i--){add(a[i],1);b[i]+=query(a[i]-1);  //比这个数小}long long res=0;// for(int i=1;i<=n;i++){//     cout<<b[i]<<endl;// }for(int i=1;i<=n;i++){res+=(1+b[i])*b[i]/2;}cout<<res<<endl;return 0;
}

RMQ问题

#include <bits/stdc++.h>
using namespace std;
int n, t, q;
const int N = 2e5 + 10;
const int M = 25;
int a[N], Log[N];
int f[N][M];
void GetLog()
{int i;Log[1] = 0;for (i = 2; i <= n + 1; ++i)Log[i] = Log[i / 2] + 1;
}
void RMQ()
{int i, j;for (i = 1; i <= n; ++i)f[i][0] = a[i];for (j = 1; (1 << j) <= n; ++j)for (i = 1; i + (1 << (j - 1)) <= n; ++i)f[i][j] = max(f[i][j - 1], f[i + (1 << (j - 1))][j - 1]);
}
int main()
{cin >> n >> t >> q;for (int i = 1; i <= n; ++i)cin >> a[i];GetLog();RMQ();for (int i = 1; i <= t; ++i){int l, r;scanf("%d%d", &l, &r);int k = Log[r - l + 1];int ans = max(f[l][k], f[r - (1 << k) + 1][k]);if (ans >= q){cout << ans << ' ' << "YES" << endl;}else{cout << ans << ' ' << "NO" << endl;}}return 0;
}

这篇关于3-26 备赛的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/850905

相关文章

每日一题~cf 970 div3 (A思维,B小模拟,C二分,D排列数建图成环,E 26个字母暴力+前缀和,F 逆元,G 数论gcd )

A 题意: 有 a 个1 ,b 个2.问是否能将这些数划分为两个数值相等的集合。 输出 YES 或者 NO —————— 问题等价于 将数组 分成两个数值相同的数组。所以sum 应该是偶数。也就是说 1 的个数是偶数。在i1的个数是偶数的情况下,将 2 分成两份,如果2 的个数是偶数,OK。如果是奇数那么需要1来补齐,如果1 的个数大于等于2那么可以补齐。(1 的个数是偶数,需要2个1来补齐,剩下

26 页高清大数据开发代码速查表,提升效率必备!【可下载】

各大互联网公司高价抢夺数据人才,为谋求长期发展、获得高薪,很多人转行到了大数据领域。这条路人才虽缺,但要成为优秀大数据工程师并不轻松:别的不说,光学习新技术,巩固旧知识,就需要耗费大量时间精力,实属不易。 为帮助大家提高学习效率,方便日后查找和使用,这里整理了一份大数据开发代码速查表资料,内容包括 Spark、Hadoop 及 Hive 等大数据开发主要知识点。 由于篇幅原因,下面只展示了速查表

26 页高清分布式集群代码速查表,提升效率必备!【可下载】

各大互联网公司高价抢夺海量数据处理、分布式系统开发人才,为谋求长期发展、获得高薪,很多人转行到了大数据、分布式、集群运维领域。这条路人才虽缺,但并不轻松:别的不说,光学习新技术,巩固旧知识,就需要耗费大量时间精力,实属不易。 为帮助大家提高学习和工作效率,方便日后查找和使用其中涉及的知识点,这里整理了一份分布式/集群开发、运维的代码速查表资料,内容包括 Spark、Hadoop 及 Hive 等

(176)时序收敛--->(26)时序收敛二六

1 目录 (a)FPGA简介 (b)Verilog简介 (c)时钟简介 (d)时序收敛二六 (e)结束 1 FPGA简介 (a)FPGA(Field Programmable Gate Array)是在PAL (可编程阵列逻辑)、GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了

『功能项目』DOTween动态文字【26】

打开上一篇25协程生成怪物模型的项目, 本章要做的事情是用DOTween插件做一个动态文字效果 首先在资源商店中免费下载一个DOTween插件 新建脚本:DowteenFlicker.cs 编写脚本: using DG.Tweening;using UnityEngine;using UnityEngine.UI;public class DowteenFli

振动分析-26-频域分析之深入理解功率谱和功率谱密度的计算过程

1 什么是PSD(功率谱密度) 功率谱密度(Power Spectral Density),以及其与Autopower(自功率谱)的区别。 1.1 PSD的定义 PSD——Power Spectral Density是表征信号的功率能量与频率的关系的物理量。 PSD经常用来研究随机振动信号。 PSD通常根据频率分辨率做归一化。 对于振动数据,PSD的单位通常是g^2/Hz。这个单位看起来不

基于Python的机器学习系列(26):PyTorch中的梯度计算

在本篇中,我们将探讨PyTorch的autograd功能,它为张量操作提供自动微分。我们将学习如何使用torch.autograd工具计算梯度并进行反向传播。 自动微分(Autograd)         PyTorch的autograd包自动计算张量的梯度。当一个张量的.requires_grad属性被设置为True时,PyTorch会追踪该张量的所有操作。在计算完成后,您可

2024国赛数学建模备赛|30种常用的算法模型之最优算法-非线性规划

1.1   非线性规划的实例与定义 如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问题。一般说来,解非线性规划要比解线性规划问题困难得多。而且,也不象线性规划有 单纯形法这一通用方法,非线性规划目前还没有适于各种问题的一般算法,各个方法都 有自己特定的适用范围。 下面通过实例归纳出非线性规划数学模型的一般形式,介绍有关非线性规划的基本 概念。 最佳投资方案应是投资

2015年1月26日 格力PK小米

黑格尔的名言:世界上最悲剧的冲突,双方不存在对与错,只是两个都有充分理由的片面 郎教授说: 小米的雷军和格力的董明珠打赌10年后谁的销售额大,输了陪10亿 2013年小米销售额为格力的1/4,而2014年小米则是格力的1/2 2014年智能手机占有率小米14% 小米占全世界份额5.3% 雷军的三板斧 1.硬件组装都是最好的,高通的硬件,HP的屏