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

百度推广方案怎么写政务网站优化

百度推广方案怎么写,政务网站优化,深圳制作app,网站制作 php在知乎内查看 题目 思路来源 题解 首先特判n1的情况,其实也不用问 分治,假设当前解决到[l,r],要递归的vector是x, 维护两个vector L、R,代表下一步要在[l,mid]和[mid1,r]分治的vector 每次将x random_shuffle后&a…

在知乎内查看

题目

img

思路来源

img

题解

首先特判n=1的情况,其实也不用问

分治,假设当前解决到[l,r],要递归的vector是x,

维护两个vector L、R,代表下一步要在[l,mid]和[mid+1,r]分治的vector

每次将x random_shuffle后,取出vector尾部的两个u、v,

计分界点为mid,<=mid的全填u,>mid的全填v,看询问出的答案:

  1. 如果为0,说明都询问错了,则交换u、v所在位置,放进对应vector
  2. 如果为2,说明都询问对了,直接放入对应vector
  3. 否则为1,说明u和v位于一边,此时将v塞进del这个vector里,将u和v在并查集上合并,并把u塞回x

重复这个过程,直至x为空或只剩一个元素,

只剩一个元素时,L或R一定已经有元素,

和已经被询问出来的元素再一起询问一次,就能确定出这个元素该放进L还是R

代码中用to数组记录了是放进左边还是放进右边,

这样del里的元素,在并查集上找到其祖先时,可以用to数组确定其应该被放进L还是R

期望次数是6000的,实际跑得飞快,也没被卡掉

代码

#include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<vector>
#include<queue>
#include<map>
#include<set>
using namespace std;
#define rep(i,a,b) for(int i=(a);i<=(b);++i)
#define per(i,a,b) for(int i=(a);i>=(b);--i)
typedef long long ll;
typedef double db;
typedef pair<ll,ll> P;
#define fi first
#define se second
#define pb push_back
#define dbg(x) cerr<<(#x)<<":"<<x<<" ";
#define dbg2(x) cerr<<(#x)<<":"<<x<<endl;
#define SZ(a) (int)(a.size())
#define sci(a) scanf("%d",&(a))
#define pt(a) printf("%d",a);
#define pte(a) printf("%d\n",a)
#define ptlle(a) printf("%lld\n",a)
#define debug(...) fprintf(stderr, __VA_ARGS__)
const int N=1e3+10;
int n,ans[N],q[N],par[N],to[N];
int find(int x){return par[x]==x?x:par[x]=find(par[x]);
}
int ask(){printf("0");rep(i,1,n){printf(" %d",q[i]);}printf("\n");fflush(stdout);int v;sci(v);return v;
}
void out(){printf("1");rep(i,1,n){printf(" %d",ans[i]);}printf("\n");fflush(stdout);
}
void sol(int l,int r,vector<int>x){//printf("l:%d r:%d ",l,r);//for(auto &v:x)printf("%d ",v);puts("");if(l==r){ans[l]=x[0];return;}for(auto &v:x)par[v]=v;int mid=(l+r)/2;vector<int>L,R,del;while(SZ(x)>1){random_shuffle(x.begin(),x.end());int u=x.back();x.pop_back();int v=x.back();x.pop_back();rep(i,1,n){if(i<=mid)q[i]=u;else q[i]=v;}int w=ask();if(!w)L.pb(v),R.pb(u),to[v]=0,to[u]=1;else if(w==2)L.pb(u),R.pb(v),to[u]=0,to[v]=1;else del.pb(v),x.pb(u),par[v]=u;}//printf("x:%d L:%d R:%d\n",SZ(x),SZ(L),SZ(R));if(SZ(x)==1){int u=x[0];if(SZ(L)){rep(i,1,n){if(i<=mid)q[i]=u;else q[i]=L[0];}int w=ask();if(!w)R.pb(u),to[u]=1;else L.pb(u),to[u]=0;}else if(SZ(R)){rep(i,1,n){if(i<=mid)q[i]=R[0];else q[i]=u;}int w=ask();if(!w)L.pb(u),to[u]=0;else R.pb(u),to[u]=1;}else{assert(false);}}for(auto &v:del){int fa=find(v);if(!to[fa])L.pb(v);else R.pb(v);}if(SZ(L))sol(l,mid,L);if(SZ(R))sol(mid+1,r,R);
}
void sol(){if(n==1){ans[1]=1;out();return;}vector<int>now;rep(i,1,n)now.pb(i);sol(1,n,now);out();
}
int main(){srand(time(NULL));sci(n);sol();return 0;
}
//2 3 4 1 5
http://www.yayakq.cn/news/515631/

相关文章:

  • 网站建设 amp 金手指排名效果好旅游开发 网站建设
  • flash网站好做seo不上海市建设工程 安全质量网站
  • 防蜘蛛抓取网站代码160加工网
  • 怎么做企业网站图片 套网站模板下载 迅雷下载 迅雷下载地址
  • 网站建设 推广就选网沃科技怎样学做网站
  • 企业网站建设word深圳家装公司十大排名
  • 建设酒类产品网站的好处wordpress 后台底部修改
  • 方法数码做的网站怎么样国家职业建设中心网站
  • 免费制作二维码的网站湖北田源建设工程有限公司网站
  • ps手机网站制作代驾app软件开发公司
  • 论坛网站怎么做最新的新闻内容
  • 海外网站seo三亚网站设计公司
  • 梅县区住房和城乡规划建设局网站揭阳模板网站建站
  • 一诺千金 网站建设手机怎么做网站教程
  • 广西公司做网站国内最新新闻事件
  • 哪个云服务器便宜又好佛山seo优化电话
  • 南昌做网站优化网页前端模板网站
  • wordpress精美网站html怎么设置网站吗
  • 西安网站建设和推广公司做网站建设公司起名
  • 清河做网站广东省住房和城乡建设厅网站
  • 做设计一般在那个网站找图网站logo如何修改
  • 怎么做徐州市环保局网站备案表自然志 wordpress主题
  • 毕业设计做网站 服务器怎么弄用软件什么做网站
  • 青海网站建设系统湖南企业竞价优化首选
  • 漆包线 东莞网站建设网站建设哪家好就推 鹏博资讯
  • 朝阳网站建设是什么意思Wordpress如何加联盟广告
  • 网站建设学那些课网站开发会计科目
  • WordPress全站广告订阅号做微网站
  • 申请网站到哪里乐清网站优化
  • 北京东城区 网站建设线上营销怎么推广