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

下载类网站开发条件地推公司排名

下载类网站开发条件,地推公司排名,自定义wordpress,网站制作哪个软件人傻自带大常数 二分的可行性证明&#xff1a; 贴近他的正确答案不会被当作次优解删掉,因为,若二分在他右边发生,那么二分一定会把左边作为优解,左边同理,所以他一定是被扣掉的所以最后一个小于等于一定是正确答案 #include<cstdio> #include<cstring> #include&l…

人傻自带大常数

二分的可行性证明: 

     贴近他的正确答案不会被当作次优解删掉,因为,若二分在他右边发生,那么二分一定会把左边作为优解,左边同理,所以他一定是被扣掉的所以最后一个小于等于一定是正确答案

#include<cstdio>
#include<cstring>
#include<iostream>
#define MAXN 1500005
using namespace std;
const double A=0.756;
const int inf=100000000;
int n,m,a[50005];
struct ScapeGoat_Tree
{ScapeGoat_Tree *ch[2];int ex,cover,size,key;bool bad(){return cover*A<ch[0]->cover||cover*A<ch[1]->cover;}void pushup(){size=ch[0]->size+ch[1]->size+ex;cover=ch[0]->cover+ch[1]->cover+1;}
}*null,pool[MAXN],*stack[MAXN],*lst[MAXN];
int top,len;
inline void Init()
{null=pool;null->cover=null->size=null->ex=null->key=0;null->ch[1]=null->ch[0]=null;for(int i=1;i<MAXN;i++)stack[++top]=pool+i;
}
inline ScapeGoat_Tree *New(int key)
{ScapeGoat_Tree *p=stack[top--];p->ch[1]=p->ch[0]=null;p->ex=p->cover=p->size=1;p->key=key;return p;
}
struct Tree
{Tree *ch[2];int l,r,mid;ScapeGoat_Tree *root;Tree(){ch[1]=ch[0]=NULL;root=null;}void* operator new(size_t size);
}*root,*C,*mempool;
void* Tree :: operator new(size_t size)
{if(C==mempool){C=new Tree[(1<<15)+10];mempool=C+(1<<15)+10;}return C++;
}
void travel(ScapeGoat_Tree *p)
{if(p==null)return;travel(p->ch[0]);if(p->ex) lst[++len]=p;else stack[++top]=p;travel(p->ch[1]);
}
ScapeGoat_Tree *divide(int l,int r)
{if(l>r)return null;int mid=(l+r)>>1;lst[mid]->ch[0]=divide(l,mid-1);lst[mid]->ch[1]=divide(mid+1,r);lst[mid]->pushup();return lst[mid];
}
ScapeGoat_Tree **insert(ScapeGoat_Tree *&p,int key)
{if(p==null){p=New(key);return &null;}p->size++;p->cover++;ScapeGoat_Tree **ret=insert(p->ch[p->key<=key],key);if(p->bad())ret=&p;return ret;
}
inline void rebuild(ScapeGoat_Tree *&p)
{len=0;travel(p);p=divide(1,len);
}
inline void Insert(ScapeGoat_Tree *&Root,int key)
{ScapeGoat_Tree **p=insert(Root,key);if(*p!=null)rebuild(*p);
}
inline int rank(ScapeGoat_Tree *p,int key)
{int ret=0;while(p!=null)if(p->key>=key)p=p->ch[0];elseret+=p->ch[0]->size+p->ex,p=p->ch[1];return ret;
}
void erase(ScapeGoat_Tree *p,int k)
{p->size--;if(p->ex&&k==p->ch[0]->size+1){p->ex=0;return;}if(p->ch[0]->size>=k)erase(p->ch[0],k);else erase(p->ch[1],k-p->ch[0]->size-p->ex);
}
inline void Erase_kth(ScapeGoat_Tree *&p,int k)
{erase(p,k);if(p->size<p->cover*A)rebuild(p);
}
inline void Erase(ScapeGoat_Tree *&p,int key)
{Erase_kth(p,rank(p,key)+1);
}
void build(Tree *p)
{p->mid=(p->l+p->r)>>1;if(p->l==p->r)return;p->ch[0]=new Tree;p->ch[0]->l=p->l;p->ch[0]->r=p->mid;p->ch[1]=new Tree;p->ch[1]->l=p->mid+1;p->ch[1]->r=p->r;build(p->ch[0]);build(p->ch[1]);
}
void get_in(int key,int aim,Tree *p)
{Insert(p->root,key);if(p->l==p->r)return;if(aim<=p->mid)get_in(key,aim,p->ch[0]);else get_in(key,aim,p->ch[1]);
}
void get_rank(int l,int r,int key,Tree *p,int &ans)
{if(l<=p->l&&p->r<=r){ans+=rank(p->root,key);return;}if(l<=p->mid)get_rank(l,r,key,p->ch[0],ans);if(p->mid<r)get_rank(l,r,key,p->ch[1],ans);
}
inline int Rank(int l,int r,int key)
{int ans=0;get_rank(l,r,key,root,ans);return ans+1;
}
inline int Kth(int l,int r,int rk)
{int z=0,y=inf,mid;int ans=0;while(z<=y){mid=(z+y)>>1;int k=Rank(l,r,mid);if(k<=rk)ans=mid,z=mid+1;elsey=mid-1;}return ans;
}
void get_out(int aim,int key,Tree *p)
{Erase(p->root,key);if(p->l==p->r)return;if(aim<=p->mid)get_out(aim,key,p->ch[0]);else get_out(aim,key,p->ch[1]);
}
inline void work1()
{int l,r,k;scanf("%d%d%d",&l,&r,&k);printf("%d\n",Rank(l,r,k));
}
inline void work2()
{int l,r,k;scanf("%d%d%d",&l,&r,&k);printf("%d\n",Kth(l,r,k));
}
inline void work3()
{int aim,key;scanf("%d%d",&aim,&key);get_out(aim,a[aim],root);a[aim]=key;get_in(key,aim,root);
}
inline void work4()
{int l,r,k;scanf("%d%d%d",&l,&r,&k);printf("%d\n",Kth(l,r,Rank(l,r,k)-1));
}
inline void work5()
{int l,r,k;scanf("%d%d%d",&l,&r,&k);printf("%d\n",Kth(l,r,Rank(l,r,k+1)));
}
void dfs(Tree *p)
{if(p->l==p->r)return;dfs(p->ch[0]);dfs(p->ch[1]);
}
int main()
{freopen("psh.in","r",stdin);freopen("psh.out","w",stdout);Init();root=new Tree;root->l=1;scanf("%d%d",&n,&m);root->r=n;build(root);dfs(root);for(int i=1;i<=n;i++){scanf("%d",&a[i]);get_in(a[i],i,root);}dfs(root);int opt;while(m--){scanf("%d",&opt);switch(opt){case 1:work1();break;case 2:work2();break;case 3:work3();break;case 4:work4();break;case 5:work5();break;}}return 0;
}

 

转载于:https://www.cnblogs.com/TSHugh/p/6986638.html

http://www.lbrq.cn/news/2438767.html

相关文章:

  • 怀柔网页公司制作合作seo公司
  • 全国学校网站建设百度网盘下载慢怎么解决
  • 17一起做网站广州网络营销方式哪些
  • 手机网站制作视频教程南京百度推广优化排名
  • 怎么给网站做网页网站制作河南
  • 网站建设首页模板微信广告投放收费标准
  • 不会做网站能做网络销售吗优化大师免安装版
  • 招聘网站如何做SEO深圳百度搜索排名优化
  • wordpress账户密码北京seo网站优化培训
  • 网站域名的密码搜索引擎大全入口
  • 杭州搜索引擎推广优化大师下载安装
  • 网站建设 技术要求沧州做网络推广的平台
  • 微网站开发制作巨量千川广告投放平台
  • 广州app设计公司百色seo外包
  • 有实力的网站建设公司广告代理公司
  • 网站网站建设专业seo优化工具推荐
  • 天津滨海新区疫情最新通知吴中seo网站优化软件
  • 做网站的团队业绩怎么写排名前十的小说
  • 山西p2p网站建设电影站的seo
  • 茂名做网站公司直通车推广
  • 青岛市住房和城乡建设局网站网站怎么建设
  • 制作营销网站模板免费下载抖音关键词排名查询工具
  • 音乐网站的音乐列表如何做百度电话客服24小时人工
  • 怎么使用wordpress做网站宝鸡seo外包公司
  • 网站开发教程全集网络营销的产品策略
  • 重庆个人建站模板seo策略有哪些
  • 更新网站的步骤江苏企业seo推广
  • 国内公司网站需要备案品牌营销活动策划方案
  • 中文网站做google广告怎么样怎么做seo信息优化
  • 济南哪里有做网站的公司电脑培训学校哪家好
  • 【Guava】1.1.我的报告
  • GISBox实操指南:如何将IFC文件高效转换为3DTiles格式‌‌
  • 希尔排序cc
  • Linux基本命令
  • 【n8n教程笔记——工作流Workflow】文本课程(第一阶段)——1、导航编辑器界面(Navigating the editor UI)介绍
  • 【Python】常见模块及其用法