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

网站后台编辑器编辑内容无法显示长春财经学院怎么样好不好

网站后台编辑器编辑内容无法显示,长春财经学院怎么样好不好,淘宝装修免费模板有哪些网站,网站开发软件平台有哪些算法思想 普通的线段树一般是求区间之和或区间最值,所以这些线段树的每个节点的下标是原数组中的区间范围,每个节点存的是区间和或最值,而权值线段树的每个节点的下标是数组中元素的值,而权值线段树每个节点存的是当前元素出现的…
算法思想

普通的线段树一般是求区间之和或区间最值,所以这些线段树的每个节点的下标是原数组中的区间范围,每个节点存的是区间和或最值,而权值线段树的每个节点的下标是数组中元素的值,而权值线段树每个节点存的是当前元素出现的次数。
但是题目的数据可能很大,元素可能是- 1 0 9 10^9 109 ~ 1 0 9 10^9 109,所以这时候就有两个选择,离散化或者是动态开点。

动态开点

动态开点,顾名思义,就是可以自主增加节点,避免空间的浪费,并且可缓解下标的压力,但是这样数组依旧要开很大, 1 0 7 10^7 107
动态开点的思路大概如下:
类似二叉搜索树,将数组中的元素依次插入权值线段树中。
我们将要插入的点称为 x x x

  • 每次插入时,如果 x x x大于现在这个点的值,那么x就往右边遍历,否则就往左边继续遍历。

当下边没有点的时候,就开一个新的点,后面的点如上操作即可。

离散化

当然还有第二种方法,离散化。
在开始建树之前对原数组的值进行离散化,在线段树中操作时,因为经过了离散化,所以最大的值最多也只有元素个个数那么大,所以就可以写不同线段树就行了。
当然,最后查询的时候要输出原数组对应的值(离散化后存的是数组的下标)

例题1

P1908 逆序对
这道题我用的是动态开点完成,在原数组输入的时候在update函数对现在贡献的逆序对进行记录,并同时将当前的元素加入线段树中,在查询并累加贡献和。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;//由于数组要开1e7,所以define int long long会MLE
const int N=1e7+5;//1到1e9的遍历,数组要开大点
//快读快写好习惯
ll read(){ll x=0,f=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9')x=(x<<3)+(x<<1)+c-'0',c=getchar();return x*f;
}
void print(ll x){if(x<0)putchar('-'),x=-x;if(x<10){putchar(x+'0');return;}print(x/10);putchar(x%10+'0');
}
int n;
int lc[N],rc[N];
int f[N];
int idx;
int rt;
void update(int &p,int l,int r,int x){if(!p)p=++idx;//新开一个点if(l==r){f[p]++;//记录当前贡献出的逆序对return;}int mid=l+r>>1;if(x<=mid)update(lc[p],l,mid,x);else update(rc[p],mid+1,r,x);f[p]=f[lc[p]]+f[rc[p]];
}
ll query(int p,int l,int r,int x){if(!p)return 0ll;//动态开点if(l>x)return (ll)f[p];int mid=l+r>>1;ll res=0;if(x<=mid)res+=query(lc[p],l,mid,x);res+=query(rc[p],mid+1,r,x);return res;
}
signed main(){ios::sync_with_stdio(0);n=read();ll ans=0;for(int i=1;i<=n;i++){int x=read();update(rt,1,1e9,x);ans+=query(1,1,1e9,x);//累加和}print(ans);
}
例题2

CF69E Subsegments

因为这道题数据范围是- 1 e 9 1e9 1e9 ~ 1 e 9 1e9 1e9,出现了负数,所以我用了离散化。

for(int i=1;i<=n;i++)q[i]=a[i]=read();
sort(q+1,q+1+n);
m=unique(q+1,q+1+n)-q-1;
for(int i=1;i<=n;i++)a[i]=lower_bound(q+1,q+1+m,a[i])-q;

由于是要找到唯一最大值,所以我们需要对数的出现次数进行记录。
计算答案时,必须要当前点的出现次数为 1 1 1时才更新,不是 1 1 1就立即清空。
然后这个区间,我们就先把 1 1 1 ~ k k k − 1 -1 1的元素先加入线段树中,然后循环 k k k ~ n n n,先加入当前元素,计算结果,再删除第一个元素,格式类似于滑动窗口。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=5e6+5;
int rt;
//快读快写好习惯
ll read(){ll x=0,f=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9')x=(x<<3)+(x<<1)+c-'0',c=getchar();return x*f;
}
void print(ll x){if(x<0)putchar('-'),x=-x;if(x<10){putchar(x+'0');return;}print(x/10);putchar(x%10+'0');
}
int n,m,k;
int f[N],sum[N];
int a[N];
int q[N];
int idx;
void update(int p,int l,int r,int x,int o){if(l==r){sum[p]+=o;if(sum[p]==1){//如果只出现了一次就记录f[p]=l;}else{//否则清空f[p]=0;}return;}int mid=l+r>>1;if(x<=mid)update(p<<1,l,mid,x,o);else update(p<<1|1,mid+1,r,x,o);f[p]=max(f[p<<1],f[p<<1|1]);
}
signed main(){ios::sync_with_stdio(0);n=read(),k=read();//离散化for(int i=1;i<=n;i++)q[i]=a[i]=read();sort(q+1,q+1+n);m=unique(q+1,q+1+n)-q-1;for(int i=1;i<=n;i++)a[i]=lower_bound(q+1,q+1+m,a[i])-q;for(int i=1;i<k;i++)update(1,1,m,a[i],1);int ppp=0;for(int i=k;i<=n;i++){update(1,1,m,a[i],1);//加入int ans=f[1];if(ans)print(q[ans]),putchar('\n');else putchar('N'),putchar('o'),putchar('t'),putchar('h'),putchar('i'),putchar('n'),putchar('g'),putchar('\n');update(1,1,m,a[++ppp],-1);//删除}
}
http://www.dtcms.com/wzjs/540202.html

相关文章:

  • 安顺网站建设做静态网站
  • 黄页网站大全在线看免费2008发布asp网站
  • 定制网站建设哪家好网站备案后应该做什么
  • 宁夏商擎网站建设为什么多个网站域名有同个网站备案
  • 江北网站建设的技术软件商店下载安装免费
  • 用jsp做的简单网站代码app推广员好做吗
  • 定西市建设网站费用代理网络游戏平台
  • gudao网站建设广西房管局官网
  • 导购网站如何做免费推广织梦网站一级目录
  • 网站上线之后要做的工作汕头网站建设网站推广
  • 清河网站建设设计费用qq企业邮箱注册
  • 做网站需要用到那些软件百度关键词seo排名软件
  • 钓鱼平台怎么制作网站推广优化方式
  • 网站开发实现的功能做app网站需要什么
  • 宝安专业网站设计多少钱微信如何上传wordpress
  • 怎样用织梦做音乐网站营口网站建设求职简历
  • 如何提升网站转化率网站找什么公司做
  • 上海市建设资格注册中心网站自媒体135素材库官方下载
  • 2018年做返利网站logo设计品牌
  • 建立 wiki 网站做网站 搞流量 赚广告费
  • 网站制作与网站建设公司注册地址多少钱
  • 用ps做网站方法大型网站开发项目书籍
  • 门户网站建设情况总结江苏工信部网站备案
  • 网站备案时间太长怎么营销推广
  • html5手机网站模板 下载四川省住房和城乡建设厅官方网站
  • 买奢侈品去哪个网站有正品淘宝指数
  • 最新的网站建设软件有哪些红色基调的网站
  • 广州做网站哪个公司做得好wordpress有广告插件下载
  • 网站免费建站众享星球2019十大网络营销案例
  • 浏览器做单页网站项目网站开发流程百度文库