题解 P4305 【[JLOI2011]不重复数字】
2024-10-16 03:16:01
来一波用vector的最短代码题解
- 关于hash表的部分大家可以看一看其他的题解,我就不说了
- 不定长数组vector的几个基本用法:
- 定义:
vector<数据类型> 数组名称
- 访问:
a[pos]//访问a数组下标为pos的元素
- 尾部加入元素:
a.push_back(x)
- 判断是否为空:
a.empty()//空返回true,非空返回false
- 定义:
- 代码:
#include <iostream>
#include <cstdio>
#include <vector>
#include <cstring>
using namespace std;
int n,hash_num=50021,t,temp;
vector<int> a[50022];
int main()
{
ios::sync_with_stdio(false); //快速读入
cin>>t;
for(int i=1;i<=t;i++)
{
cin>>n;
memset(a,0,sizeof(a));//重置hash表
for(int j=1;j<=n;j++)
{
cin>>temp;//输入当前数据
int hash=temp%hash_num;//hash过程
bool pd=false;
if(a[hash].empty()==false)
{
for(int k=0;k<a[hash].size();k++)
{
if(a[hash][k]==temp)//判断hash表中是否有当前元素
pd=true;
}
}
else if(pd==false)
{
a[hash].push_back(temp);//如果hash表中没有,加入hash表并输出
printf("%d ",temp);
}
}
printf("\n");
}
}
最新文章
- ORACLE日期格式
- 计时函数 clock() in c and c++
- Python调用C/Fortran混合的动态链接库-下篇
- winscp配置
- Java Concurrency - Condition
- V9任何页面GET调用内容分页的说明
- Socket实现简单的聊天通信
- OC调用Swift 整理步骤!总结别人的!方便自己查找!
- 【转】处理新版Chrome书签、菜单字体不清晰
- 清北学堂北京大学冯哲神仙讲课day2
- 极简】如何在服务器上安装SSL证书?
- R - Dividing 多重背包
- laravel之路由
- .NETCore_生成实体
- [JavaScript] iframe更改了src后,父页面history.back只能后退iframe而不能使自己后退解决办法
- JavaScript实现链式调用
- emouse思·;睿&mdash;评论与观点整理之五
- 数组序列化serialize
- 通俗地讲Node.js是什么
- php判断是否是ajax提交 方法