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

上海企业做网站企业营销案例

上海企业做网站,企业营销案例,网站建设哪家合适,天津最好的网站建设题意#xff1a; 有长度为 n 的数组 a #xff0c;全为 0#xff0c;接下来循环 n 次#xff0c;每次选出一段最长的连续区间 [l, r]#xff08;全为 0 #xff0c;如果一样长#xff0c;就选最左边的)。 如果 r−l1 是奇数#xff0c;那么 a[lr2]ia[\frac{lr}{2}]ia…题意 有长度为 n 的数组 a 全为 0接下来循环 n 次每次选出一段最长的连续区间 [l, r]全为 0 如果一样长就选最左边的)。 如果 r−l1 是奇数那么 a[lr2]ia[\frac{lr}{2}]ia[2lr​]i; 否则a[lr−12]ia[\frac{lr-1}{2}]ia[2lr−1​]i;i 是第几轮循环。 输出最终的数组 a。 题目 You are given an array a of length n consisting of zeros. You perform n actions with this array: during the i-th action, the following sequence of operations appears: Choose the maximum by length subarray (continuous subsegment) consisting only of zeros, among all such segments choose the leftmost one; Let this segment be [l;r]. If r−l1 is odd (not divisible by 2) then assign (set) a[lr2]ia[\frac{lr}{2}]ia[2lr​]i(where i is the number of the current action), otherwise (if r−l1 is even) assign (set) a[lr−12]ia[\frac{lr-1}{2}]ia[2lr−1​]i. Consider the array a of length 5 (initially a[0,0,0,0,0]). Then it changes as follows: Firstly, we choose the segment [1;5] and assign a[3]:1, so a becomes [0,0,1,0,0]; then we choose the segment [1;2] and assign a[1]:2, so a becomes [2,0,1,0,0]; then we choose the segment [4;5] and assign a[4]:3, so a becomes [2,0,1,3,0]; then we choose the segment [2;2] and assign a[2]:4, so a becomes [2,4,1,3,0]; and at last we choose the segment [5;5] and assign a[5]:5, so a becomes [2,4,1,3,5]. Your task is to find the array a of length n after performing all n actions. Note that the answer exists and unique. You have to answer t independent test cases. Input The first line of the input contains one integer t (1≤t≤104) — the number of test cases. Then t test cases follow. The only line of the test case contains one integer n (1≤n≤2⋅105) — the length of a. It is guaranteed that the sum of n over all test cases does not exceed 2⋅105 (∑n≤2⋅105). Output For each test case, print the answer — the array a of length n after performing n actions described in the problem statement. Note that the answer exists and unique. Example Input 6 1 2 3 4 5 6 Output 1 1 2 2 1 3 3 1 2 4 2 4 1 3 5 3 4 1 5 2 6 分析 我们可以直接暴力去做。即我们每次选出符合条件的 [l, r]然后对应的给 a[i] 赋值又得到了两个新的更小的区间我们需要存储下来并按照上述的规则对所有的区间排序。显然优先队列可以完美的满足我们的要求。优先队列的BFS。每次处理完一段区间后就把这段区间拆分丢进优先队列里就好。注意priority_queue本身是一个大根二叉堆所以重载运算符时符号要反一下 或者按照蓝书讲的 把len换成相反数。 #AC代码 #includebits/stdc.h using namespace std; typedef long long ll; const int M2e510; int s[M]; int t,n,tot; struct node {int l,r,d; }; bool operator(const node a,const node b) {if(a.db.d)return 1;else if(a.db.d)if(a.lb.l)return 1;return 0; } int main() {scanf(%d,t);while(t--){tot0;memset(s,0,sizeof(s));scanf(%d,n);priority_queuenodeq;node u,v;u.l1,u.rn,u.du.r-u.l1;q.push(u);while(!q.empty()){uq.top();q.pop();int xu.l;int yu.r;int mid(xy)1;s[mid]tot;//printf(%d****\n,s[mid]);v.lx,v.rmid-1,v.dv.r-v.l1;if(v.lv.r)q.push(v);v.lmid1,v.ry,v.dv.r-v.l1;if(v.lv.r)q.push(v);}for(int i1;in;i)printf(%d ,s[i]);printf(\n);}return 0; }
http://wiki.neutronadmin.com/news/26165/

相关文章:

  • 联盟营销网站有哪些佛山网站建设网站建设收费
  • 网站开发用C网站打不开dns修改
  • 门户网站排行榜免费照片的网站模板
  • 网站建设外包公司怎么样合肥网站建设托管
  • 汕头市做网站青岛seo网站排名优化
  • 临沂自助建站软件网站建设措施
  • 网页设计网站建设扁平式网站建设
  • 专业网站制作公司咨询wordpress 图片浏览
  • 上街区做网站电影网站开发api
  • 南昌做公司网站互联网官方网站
  • 房产类网站建设企业培训考试系统
  • 网站改版业务云南高端网站建设公司
  • 东阳网站建设有哪些wordpress地图生成
  • 网站首页有哪些内容企业手机网站建设定制
  • 高港网站建设肥城网站建设哪家好
  • 怎么做淘客网站极简风格 网站
  • 请人做网站需要多少钱网站登录怎么保存用户名密码
  • 服装网站建设策划书3000字永康公司网站建设
  • 网站改了关键词关于做网站流程
  • 推荐昆明做网站建设番禺建网站价格
  • 长沙网站seo收费标准wordpress怎么弄中文
  • 做牛津纺衬衫的网站免费企业网站php源码
  • 地方门户网站模版网站开发方案怎么写
  • 设计网站汇总wordpress与typecho
  • 承德网站建设报价小程序微盟
  • 优美网站源码前端做网站都要做哪些
  • 深圳线运营是网站建设推网怎么制作
  • 常州个人做网站河南工程学院网站建设
  • 网站不想被百度抓取asp网站开发 pdf
  • 唐山乾正建设工程材料检测公司网站哈尔滨网站建设费用