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

饭店餐厅网站建设百度识图搜索

饭店餐厅网站建设,百度识图搜索,专注赣州网站建设,全国建筑四库一平台查询个人信息当时没想到可以用队列来做&#xff0c;就傻傻的模拟了&#xff0c;用cur存当前轮的id&#xff0c;这个id对应的是order的下标&#xff0c;这里有个求rank的技巧就是当前轮没有晋级的rank为&#xff08;当前轮的组数1&#xff09; 模拟&#xff1a; #include<bits/stdc.h&g…

当时没想到可以用队列来做,就傻傻的模拟了,用cur存当前轮的id,这个id对应的是order的下标,这里有个求rank的技巧就是当前轮没有晋级的rank为(当前轮的组数+1)

模拟:

#include<bits/stdc++.h>
using namespace std;
struct node{int id,w,rk=0;
};
vector<node> vec;
vector<int> order,cur; //cur用来记录当前晋级的组里面的id,对应order数组的下标
int np,ng;
bool cmp(node&a, node& b){return a.rk>b.rk;
}
int main(){scanf("%d%d",&np,&ng);vec.resize(np);order.resize(np);cur.resize(np);for(int i=0;i<np;i++){scanf("%d",&vec[i].w);vec[i].id=i;cur[i]=i;}for(int i=0;i<np;i++)scanf("%d",&order[i]);if(cur.size()==1){printf("1");return 0;}while(cur.size()>1){int start=0;vector<int> temp;int numg; //当前分组数if(cur.size()%ng!=0) numg=cur.size()/ng+1;else numg=cur.size()/ng;while(start<cur.size()){int max=-1,maxi=0;for(int i=start;i<start+ng&&i<cur.size();i++){vec[order[cur[i]]].rk=numg+1;if(max<vec[order[cur[i]]].w){max=vec[order[cur[i]]].w;maxi=i;}}vec[order[cur[maxi]]].rk=numg==1?1:numg+1;temp.push_back(cur[maxi]);start+=ng;}cur=temp;}sort(vec.begin(),vec.end(),[](node& a,node& b){return a.id<b.id;});for(int i=0;i<vec.size();i++)printf(i==0?"%d":" %d",vec[i].rk);return 0;
}

柳神的队列做法:

#include <iostream>
#include <queue>
#include <vector>
#include <algorithm>
using namespace std;
struct node {int weight, index, rank, index0;
};
bool cmp1(node a, node b) {return a.index0 < b.index0;
}
int main() {int n, g, num;scanf("%d%d", &n, &g);vector<int> v(n);vector<node> w(n);for(int i = 0; i < n; i++)scanf("%d", &v[i]);for(int i = 0; i < n; i++) {scanf("%d", &num);w[i].weight = v[num];w[i].index = i;w[i].index0 = num;}queue<node> q;for(int i = 0; i < n; i++)q.push(w[i]);while(!q.empty()) {int size = q.size();if(size == 1) {node temp = q.front();w[temp.index].rank = 1;break;}int group = size / g;if(size % g != 0)group += 1;node maxnode;int maxn = -1, cnt = 0;for(int i = 0; i < size; i++) {node temp = q.front();w[temp.index].rank = group + 1;q.pop();cnt++;if(temp.weight > maxn) {maxn = temp.weight;maxnode = temp;}if(cnt == g || i == size - 1) {cnt = 0;maxn = -1;q.push(maxnode);}}}sort(w.begin(), w.end(), cmp1);for(int i = 0; i < n; i++) {if(i != 0) printf(" ");printf("%d", w[i].rank);}return 0;
}

http://www.yidumall.com/news/49058.html

相关文章:

  • 做网站可能存在的问题seo教学
  • 顺德大良哪家做网站好教育培训机构排名前十
  • 培训的网站建设国内时事新闻
  • 如何用威客做网站推广 方案新乡百度网站优化排名
  • 浩博建设集团网站英文外链seo兼职
  • wordpress首页搭建seo资料站
  • 郑州网站制作的公司哪家好b站推广网站入口mmm
  • 带m开头的网站怎么做百度搜索引擎排名规则
  • 手机网站 开发者模式无锡百度竞价公司
  • 网站开发论文参考文献长春网站建设路
  • 办公室装修设计方案seo优化软件哪个好
  • 如何给网站建设提意见网络推广营销方式
  • 推荐手机网站建设网络软文案例
  • 广州市技师学院百度网站快速优化
  • 怎么导出wordpress 整个网站app下载免费安装
  • 2015手机版网站制作深圳百度关键字优化
  • 医院网站建设标书免费引流微信推广
  • 假发外贸网站模板网络营销与网站推广的区别
  • 城市网站建设意义网站维护需要学什么
  • 教育网站制作软件vi设计
  • 比较有创意的广告百度app关键词优化
  • 制作网页时创建超链接关键词优化seo优化
  • 福州网站seo优就业seo
  • 莱阳网站开发北京网站优化seo
  • 太平阳建设集团网站关键词搜索趋势
  • 盱眙网站建设公司南宁seo收费
  • 开网站建设公司论坛推广的步骤
  • 网站开发前后端技术sem和seo有什么区别
  • 做外贸自己的公司网站深圳营销推广公司
  • 网站怎么做推广和宣传语网页模板设计