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

微网站开发视频/最新国际新闻事件今天

微网站开发视频,最新国际新闻事件今天,记事本做的网站链接怎么装饰,苏州做商城网站题目:http://poj.org/problem?id1442 简单的插入、查询第k大数的题。这本来应该算一道经典的堆的应用题,结果我用SBT水过去了。。。算了,有机会要用堆实现一下。 SBT 版: 顺便说下,用cin一次TLE一次1000MS惊现过去&am…

题目:http://poj.org/problem?id=1442

简单的插入、查询第k大数的题。这本来应该算一道经典的堆的应用题,结果我用SBT水过去了。。。算了,有机会要用堆实现一下。

 

SBT 版:

顺便说下,用cin一次TLE一次1000MS惊现过去,换成scanf 400MS无压力。。。(跟其他人比还是太慢了。。。)

POJ 1442 SBT
#include <fstream>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <iomanip>
#include <iomanip>
#include <climits>
#include <vector>
#include <stack>
#include <queue>
#include <list>
#include <set>
#include <map>
#include <algorithm>
#include <string>
#include <cstring>using namespace std;const int maxn= 100010;class SBT{
public:void Clear(){memset(K,0,sizeof(K));memset(L,0,sizeof(L));memset(R,0,sizeof(R));memset(S,0,sizeof(S));RT= SZ= 0;}void Insert(int key)    {Insert(RT,key);}int Delete(int key)     {return Delete(RT,key);}int Succ(int key)       {return Succ(RT,key);}int Pred(int key)       {return Pred(RT,key);}int Rank(int key)       {return Rank(RT,key);}int Search(int key)     {return Search(RT,key);}int Select(int key)     {return Select(RT,key);}private:int K[maxn];int L[maxn];int R[maxn];int S[maxn];int RT, SZ;void LeftRotate(int &x){int k= R[x];R[x]= L[k];L[k]=  x;S[k]= S[x];S[x]= S[L[x]]+S[R[x]]+1;x= k;}void RightRotate(int &x){int k= L[x];L[x]= R[k];R[k]= x;S[k]= S[x];S[x]= S[L[x]]+S[R[x]]+1;x= k;}void MaintainFat(int &t){if (S[L[L[t]]]>S[R[t]]){RightRotate(t);MaintainFat(R[t]);MaintainFat(t);return;}if (S[R[L[t]]]>S[R[t]]){LeftRotate(L[t]);RightRotate(t);MaintainFat(L[t]);MaintainFat(R[t]);MaintainFat(t);return;}if (S[R[R[t]]]>S[L[t]]){LeftRotate(t);MaintainFat(L[t]);MaintainFat(t);return;}if (S[L[R[t]]]>S[L[t]]){RightRotate(R[t]);LeftRotate(t);MaintainFat(L[t]);MaintainFat(R[t]);MaintainFat(t);return;}}void Maintain(int &t, int flag){if (!flag){if (S[L[L[t]]] >S[R[t]])RightRotate(t);else if (S[R[L[t]]] >S[R[t]]){LeftRotate(L[t]);RightRotate(t);}elsereturn;}else{if (S[R[R[t]]] >S[L[t]])LeftRotate(t);else if (S[L[R[t]]] >S[L[t]]){RightRotate(R[t]);LeftRotate(t);}elsereturn;}Maintain(L[t], false);Maintain(R[t], true);Maintain(t, true);Maintain(t, false);}void Insert(int &t, int key){if (t==0){t= ++SZ;K[t]= key;S[t]= 1;return;}S[t]++;if (key<K[t])Insert(L[t],key);elseInsert(R[t],key);Maintain(t,key>K[t]);}int Delete(int &t, int key){S[t]--;if ((key==K[t])||(key<K[t]&&L[t]==0)||(key>K[t]&&R[t]==0)){int ret= K[t];if (L[t]==0 || R[t]==0)t= L[t]+R[t];       // T change to his Leftson or RightsonelseK[t]= Delete(L[t], K[t]+1); // Not find then delete the last find Pointreturn ret;}else{if (key<K[t])return Delete(L[t],key);elsereturn Delete(R[t],key);}}int Search(int t, int key){     //return root pointif (t==0 || key==K[t])return t;if (key<K[t])return Search(L[t],key);elsereturn Search(R[t],key);}int Select(int t, int k){       // return K-th int treeint num= S[L[t]]+1;if (k==num)return K[t];else if (k<num)return Select(L[t],k);elsereturn Select(R[t],k-num);}int Succ(int t, int key){if (t==0)return key;if (key>=K[t])                 //
            return Succ(R[t], key);else{int r= Succ(L[t], key);if (r==key)return K[t];elsereturn r;}}int Pred(int t, int key){if (t==0)return key;if (key<=K[t])                 //
            return Pred(L[t], key);else {int r= Pred(R[t], key);if (r==key)return K[t];elsereturn r;}}int Rank(int t, int key){if (t==0)return 1;if (key<=K[t])           //
            return Rank(L[t], key);else if (key>K[t])return S[L[t]]+1+Rank(R[t],key);}
};int main()
{int a[30005];int com[30005];memset(com,0,sizeof(com));SBT sbt;int sbtnum=0;int n,m;scanf("%d%d",&m,&n);for (int i=0;i<m;i++)scanf("%d",&a[i]);for (int i=0;i<n;i++){int k;scanf("%d",&k);com[k]++;}int k=0;for (int i=0;i<m;i++){sbt.Insert(a[i]);sbtnum++;while(com[sbtnum]){com[sbtnum]--;k++;printf("%d\n",sbt.Select(k));}}return 0;
}

 

STL priority_queue堆版:

先占个位^_^~~~

 

线段树版:

先占个位^_^~~~

转载于:https://www.cnblogs.com/AbandonZHANG/archive/2012/08/06/2625181.html

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

相关文章:

  • 怎么样做贷款网站/下载百度语音导航地图安装
  • 鄞州区住房和城乡建设委员网站/网络营销师是干什么的
  • 威海外贸网站建设电话/如何检测网站是否安全
  • 网站关键词数量多少好/优秀网站设计
  • mvc做网站前台代码/成都营销推广公司
  • 离石做网站的公司/2345网址导航 中国最
  • wordpress调用图片路径/北京seo优化费用
  • 腾讯 网站建设/公司的网站制作
  • 保定电子商务网站建设/网络营销做得好的品牌
  • 怎么把网站做的靠前/天津放心站内优化seo
  • php做自己的网站/网站百度不收录的原因
  • 化工网站模板下载/如何自己开发软件app
  • 网站域名所有人/南宁seo计费管理
  • 企业单页网站模板/网络营销的概念
  • 黑帽seo易下拉霸屏/win10优化大师好用吗
  • 网站在建设中 英语/深圳百度推广开户
  • 无锡网站建设技术外包/电商营销策划方案
  • 万全网站建设/cilimao磁力猫最新版地址
  • 网站怎做百度代码统计/推广运营公司哪家好
  • 东莞东城做网站公司/打开百度一下
  • 做网站一万/上海培训机构
  • 广州澄网站建设公司/石家庄网站优化
  • 网站建设国内外研究现状模板/seo二级目录
  • 保定网站建设冀icp/镇江网站制作公司
  • 网络系统管理与维护形考任务1/seo的关键词无需
  • 江门整站优化/网络营销案例分析报告
  • wordpress 404自定义/商品关键词怎么优化
  • 深圳市手机网站建设/昭通网站seo
  • 做企业网站首页尺寸/营销神器
  • 政务微网站建设方案/网站数据统计工具
  • Linux Shell 常用操作与脚本示例详解
  • 实现自己的AI视频监控系统-第一章-视频拉流与解码2
  • day31 SQLITE
  • 云电脑 vs 传统PC:全面对比3A游戏与AI训练的成本与性能
  • RocketMq消费者动态订阅topic
  • python的社区互助养老系统