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

开县网站制作网站推广怎么做

开县网站制作,网站推广怎么做,用记事本做网站缺少body,国内做医疗耗材的网站这道题主要在于思路&#xff0c;感觉像个模拟题&#xff0c;用到了线性探测的算法 机翻 1、条件准备 visit数组看这个位置有没有放进来数&#xff0c;num存非负整数&#xff0c;s存未到放入时机的数。 answer存答案。n为总共数量。 #include <iostream> #include<…

这道题主要在于思路,感觉像个模拟题,用到了线性探测的算法
机翻
在这里插入图片描述

1、条件准备

visit数组看这个位置有没有放进来数,num存非负整数,s存未到放入时机的数。
answer存答案。n为总共数量。

#include <iostream>
#include<set>
#include<vector>
#include<algorithm>
#include<climits>
using namespace std;
#define endl '\n'int visit[1005];
vector<int> num;
set<int> s;
vector<int> answer;
int n;

2、主函数

先输入存入Hash,也就是放原始哈希表,然后调用init函数,再建立answer数组,最后输出。

int main()
{std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>n;vector<int> Hash(n);init(Hash,num);insertanswer(Hash);for(int i=0;i<answer.size()-1;i++)cout<<answer[i]<<' ';cout<<answer[answer.size()-1];return 0;
}

3、init函数

初始化Hash数组,把非负整数放进num数组中,然后排序,因为我们要数尽可能小的优先输出,所以要从小到大进行判断

void init(vector<int>&Hash,vector<int>&num)
{for(int i=0;i<n;i++){cin>>Hash[i];if(Hash[i]>=0)num.push_back(Hash[i]);}sort(num.begin(),num.end());
}

4、initanswer函数

遍历num数组,看能不能直接放入哈希表,即调用inserthash函数,如果不能就把数放进set中备用。
当我们遍历到后面某个数时,看看set中的数能不能插入哈希表,因为输出是多种可能数小的先输出,所以遍历set数组直到里面的数都不能放入哈希表,因为set里面的数比当前数大,再来判断当前数能否放入

void insertanswer(vector<int>& Hash)
{for(int i=0;i<num.size();i++){while(setinsert(Hash,num[i]));if(inserthash(Hash,num[i]))answer.push_back(num[i]);elses.insert(num[i]);}while(s.size())setinsert(Hash,INT_MAX);}

5、inserthash函数

先算出应该放入的下标,若这个下标对应的数不为当前数,则下标加1再取模。如果该位置的数还没放进来,说明当前数此时放早了,还不能放进来,返回0.
如果当前数与哈希表当前位置一样,则return 1,否则0.

bool inserthash(vector<int> &Hash,int elem)
{int idx=elem%n;while(Hash[idx]!=elem){if(visit[idx]==0)return 0;idx=(idx+1)%n;}if(elem==Hash[idx]){visit[idx]=1; return 1;}return 0;
}

6、setinsert函数

先把数都放进数组里,然后循环判断,如果不能放就继续,能放就放,并删除该元素,返回1.
都不能放返回0

bool setinsert(vector<int>& Hash,int up)
{vector<int> t(s.begin(),s.end());for(int i=0;i<t.size();i++){int elem=t[i];if(inserthash(Hash,elem)==0||elem>up)continue;s.erase(elem);answer.push_back(elem);return 1;}return 0;
}

7、总结

感觉像个模拟题,算法方面性不强,偏思维题+推导
完整代码如下

#include <iostream>
#include<set>
#include<vector>
#include<algorithm>
#include<climits>
using namespace std;
#define endl '\n'int visit[1005];
vector<int> num;
set<int> s;
vector<int> answer;
int n;bool inserthash(vector<int> &Hash,int elem)
{int idx=elem%n;while(Hash[idx]!=elem){if(visit[idx]==0)return 0;idx=(idx+1)%n;}if(elem==Hash[idx]){visit[idx]=1; return 1;}return 0;
}
bool setinsert(vector<int>& Hash,int up)
{vector<int> t(s.begin(),s.end());for(int i=0;i<t.size();i++){int elem=t[i];if(inserthash(Hash,elem)==0||elem>up)continue;s.erase(elem);answer.push_back(elem);return 1;}return 0;
}void init(vector<int>&Hash,vector<int>&num)
{for(int i=0;i<n;i++){cin>>Hash[i];if(Hash[i]>=0)num.push_back(Hash[i]);}sort(num.begin(),num.end());
}
void insertanswer(vector<int>& Hash)
{for(int i=0;i<num.size();i++){while(setinsert(Hash,num[i]));if(inserthash(Hash,num[i]))answer.push_back(num[i]);elses.insert(num[i]);}while(s.size())setinsert(Hash,INT_MAX);}
int main()
{std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>n;vector<int> Hash(n);init(Hash,num);insertanswer(Hash);for(int i=0;i<answer.size()-1;i++)cout<<answer[i]<<' ';cout<<answer[answer.size()-1];return 0;
}
http://www.sczhlp.com/news/36039/

相关文章:

  • 二手书网站开发的必要性百度网站站长工具
  • 微信 SDK + Senparc.AI + MCP 打造微信 AI 开发助手(二):在 Cursor、VS Code 等 IDE 中自动编写
  • CCF CSP-S(NOIP提高组)历年真题集
  • 上海小程序开发公司排名优化推广网站怎么做
  • 20250824
  • 纯Qt实现的物联网平台/多线程采集/modbus和mqtt协议/报警记录/云端存储/数据转发/支持网页运行
  • 做库房推广哪个网站好中国搜索网站排名
  • xampp安装wordpress说明福州百度首页优化
  • TP5.1做的网站首页被挂马原因网站建设外包
  • 宝丰县精神文明建设的门户网站关键词搜索排行榜
  • 云南网站建设优选平台推广赚钱
  • 网站开发 百度网盘怎么做网页
  • 绍兴网站建设国外引流推广软件
  • 建设厅电工证seoul怎么读
  • 站酷网素材网站关键词如何快速上首页
  • 龙岗建站费用抖音关键词搜索指数
  • 手机笑话网站模板成crm软件
  • WordPress缩略图标签网站seo诊断工具
  • 学做烘培的网站青岛网站制作
  • 便宜购 网站建设经典广告
  • 广州网站建设粤icp营销模式有几种
  • 用云主机做网站企业培训权威机构
  • 温州网站公司哪家好阿里巴巴官网首页
  • 晋城市 制作网站今日国际新闻头条15条简短
  • 盗号网站怎么做360站长平台
  • 做心悦腾龙光环的网站是什么企业培训考试app
  • 设计视频网站网站设计的毕业论文
  • Java 与消息队列在分布式系统中的应用
  • 怎么才能百度做网站天津企业seo
  • 随州北京网站建设电商网站公司