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

如何通过c语言来做网站做配音任务的网站

如何通过c语言来做网站,做配音任务的网站,免费申请个人网站申请,asp.net课程网站模板下载这里是题目地址 其实就是带修改的区间第K大。 写了一下BIT套主席树#xff0c;内存飞起#xff0c;似乎需要特别的优化技巧 所以还是写了一下线段树套平衡树#xff0c;跑了1s左右。 其实线段树套平衡树就是归并树的自然扩展而已。 归并树是把归并排序的过程建成一颗线段树…这里是题目地址   其实就是带修改的区间第K大。 写了一下BIT套主席树内存飞起似乎需要特别的优化技巧  所以还是写了一下线段树套平衡树跑了1s左右。 其实线段树套平衡树就是归并树的自然扩展而已。 归并树是把归并排序的过程建成一颗线段树每个节点是一个数组存的是这个节点对应区间的元素的正序 空间复杂度O( n log n ) 。 每次查询的时候二分答案 问题转化成询问区间中有多少个数比k小。外层查询和一般的线段树一样只是在线段树的节点处需要再次二分得到节点区间中比k小的数的个数。这样二分答案有一个log 线段树中询问也需要一个log 线段树节点处二分需要一个log 每次询问的复杂度为O( log^3 n ) 。   加入修改操作的时候只需要把线段树节点的数组改为平衡树实现就好了。这是很自然的线段树节点维护对应节点的顺序又要支持修改显然平衡树符合要求。 平衡树用splay实现了一下跑了1080ms 然后用Treap实现了一下RE得浑身难受。。。实在是码力不行啊Orz 1 #include iostream2 #include cstring3 #include cstdio4 using namespace std ;5 const int N 50000 10 ,INF ~1u1;6 int M ,num[N] ;7 struct node{8 node *ch[2] ,*p ;9 int size ,val ;10 bool d() ;11 void setc( node * ,bool ) ,rol() ,pushup() ;12 }pool[N*19] ,*cur ,NU ,*null NU ;13 bool node::d(){14 return p-ch[1] this ;15 }16 void node::setc( node *c ,bool d ){17 ch[d] c ,c-p this ;18 }19 void node::rol(){20 node *s p ;21 int dd d() ;22 s-p-setc( this ,p-d() ) ;23 s-setc( ch[!dd] ,dd ) ;24 setc( s ,!dd ) ;25 s-pushup() ;26 }27 void node::pushup(){28 size ch[0]-size ch[1]-size 1 ;29 }30 struct Splay{31 node *root ;32 void splay( node * ,node * ) ,insert( node * ) ;33 void change( int ,int ) ,find( int ) ,init() ;34 node *get( int ) ;35 int rank( int ) ;36 }tree[N2] ;37 38 node *newnode( int val ){39 cur-val val ;40 cur-size 1 ;41 cur-ch[0] cur-ch[1] cur-p null ;42 return cur ;43 }44 void Splay::init(){45 root newnode(-INF) ;46 }47 void Splay::splay( node *x ,node *p null ){48 while( x-p ! p ){49 if( x-p-p ! p )50 x-d() x-p-d() ? x-p-rol() : x-rol() ;51 x-rol() ;52 }53 x-pushup() ;54 if( p null ) root x ;55 }56 void Splay::insert( node *x ){57 if( root null ) root x ,root-p null ;58 else for( node *t root ;; ){59 t-size ;60 node *s t-ch[ x-val t-val ] ;61 if( s null ){62 s x ,s-p t ;63 splay( x ) ;64 break ;65 }66 t s ;67 }68 }69 void Splay::find( int x ){70 for( node *t root ;; ){71 if( x t-val ){72 splay( t ) ;73 return ;74 }75 t t-ch[ x t-val ] ;76 }77 }78 void Splay::change( int x ,int val ){79 find( x ) ;80 node *p root ;81 node *t get( root-ch[0]-size ) ;82 splay( t ,root ) ;83 t-setc( root-ch[1] ,1 ) ;84 t-pushup() ,root t ,t-p null ;85 p-val val ,p-size 1 ;86 p-ch[0] p-ch[1] null ;87 insert( p ) ;88 return ;89 }90 node *Splay::get( int s ){91 for( node *t root ;; ){92 int k t-ch[0]-size ;93 if( s k 1 ) return t ;94 if( s k 1 ) s - k 1 ,t t-ch[1] ;95 else t t-ch[0] ;96 }97 }98 int Splay::rank( int x ){99 int res 0 ; 100 for( node *t root ;; ){ 101 node *s t-ch[ x t-val ] ; 102 if( t-val x ) res t-ch[0]-size 1 ; 103 if( s null ){ 104 splay(t) ; 105 return res - 1 ; 106 } 107 t s ; 108 } 109 } 110 void setIt( int p ,int k ,int s M ,int x 1 ){ 111 tree[x].insert( newnode(k) ) ; 112 if( s 1 ) return ; 113 if( p s/2 ) setIt( p ,k ,s/2 ,x1 ) ; 114 else setIt( p - s/2 ,k ,s - s/2 ,x1|1 ) ; 115 } 116 void change( int p ,int u ,int v ,int s M ,int x 1 ){ 117 tree[x].change( u ,v ) ; 118 if( s 1 ) return ; 119 if( p s/2 ) change( p ,u ,v ,s/2 ,x1 ) ; 120 else change( p-s/2 ,u ,v ,s-s/2 ,x1|1 ) ; 121 } 122 int Q ; 123 void query( int l ,int r ,int ans ,int s M ,int x 1 ){ 124 if( l 1 r s ){ 125 Q tree[x].rank(ans) ; 126 return ; 127 } 128 if( l s/2 ) query( l ,r ,ans ,s/2 ,x1 ) ; 129 if( r s/2 ) query( l-s/2 ,r-s/2 ,ans ,s-s/2 ,x1|1 ) ; 130 } 131 bool judge( int l ,int r ,int ans ,int kth ){ 132 Q 0 ; 133 query( l ,r ,ans ) ; 134 if( Q kth - 1 ) return 1; 135 return 0 ; 136 } 137 void init(){ 138 cur pool ; 139 } 140 void build( int x 1 ,int s M ){ 141 tree[x].init() ; 142 if( s 1 ) return ; 143 build( x1 ,s/2 ) ; 144 build( x1|1 ,s-s/2 ) ; 145 } 146 int main(){ 147 int n ,m ,x ,s ,t ,u ; 148 int T ; 149 scanf( %d ,T ) ; 150 while( T -- ){ 151 scanf(%d %d ,n ,m ) ; 152 M n ; 153 init() ; 154 int minn 0 ,maxn 0 ; 155 build(); 156 for( int i 1 ;i n ;i ){ 157 scanf( %d ,x ) ; 158 num[i] x ; 159 setIt( i ,x ) ; 160 minn min ( minn ,x ) ; 161 maxn max ( maxn ,x ) ; 162 } 163 char o[2]; 164 while( m -- ){ 165 scanf( %s ,o ) ; 166 if( o[0] C ){ 167 scanf( %d %d ,s ,t ) ; 168 minn min( minn ,t ) ; 169 maxn max( maxn ,t ) ; 170 change( s ,num[s] ,t ) ; 171 num[s] t ; 172 continue ; 173 } 174 scanf( %d %d %d ,s ,t ,u ) ; 175 int l minn ,r maxn ; 176 while( l r ){ 177 int mid ( l r 1 ) 1 ; 178 if( judge( s ,t ,mid ,u ) ) l mid ; 179 else r mid - 1 ; 180 } 181 printf( %d\n ,l ) ; 182 } 183 } 184 } CODE  转载于:https://www.cnblogs.com/MyWither/p/3563779.html
http://www.zqtcl.cn/news/621297/

相关文章:

  • 重庆交通网站建设wordpress08模板
  • 网站搭建响应式wordpress访客切换主题
  • 标准网站建设推荐帮别人做网站开票开什么税目
  • 温州网站优化衡阳县专业做淘宝网站
  • 门户网站建设存在的问题和差距无锡做智能网站
  • 受欢迎的常州做网站网站制作ppt
  • 物流网站建设实例 天堂资源帝
  • 太原建设厅官方网站wordpress 导入工具
  • 做网站树立品牌形象建设了网站后怎么用谷歌引流
  • 专业公司网站建设建设人才库网站
  • 怎么自己做直播网站吗手机免费建站app
  • 惠州规划建设局网站seo网站关键词排名优化公司
  • 关键词检测百度seo一本通
  • 做效果图的外包网站徐州低价seo
  • xp系统中做网站服务器吗网站设计版权
  • 化妆品网站建设经济可行性分析怎么做好网站
  • 软件企业网站建设栏目结构图服务公司有哪些
  • 郑州专业做淘宝网站推广哪些公司需要网站开发工程师
  • 如何为企业做网站单页网站推广
  • 做公众号封面图的网站凡客精选app
  • 张家界做旅游网站网业小说畅读服务
  • 短租网站那家做的好网络设计工作好找吗
  • 企业建网站哪家好网络书签 wordpress
  • 网站策划的工作职责有关网站开发的创意
  • 上国外网站dns如何免费做网站推广
  • wordpress导航站的源码网页设计与制作微课教程第4版李敏
  • 建站的好公司wordpress 小工具 调用
  • 郑州高考网站建设wordpress调用多个底部
  • 在线做爰直播网站dw制作网页步骤
  • 视频网站 php源码深圳高端网站建设招聘