NOJ1184 迷失的邮票 散列表
2015-06-10 09:27
417 查看
题意
一共收集了N张邮票,现在丢了2张,剩下N-2张…..原先收集的邮票全部是成对收集的,所以找到哪两种邮票是成单的,输出它们。(确定丢失的邮票不是同一种)思路
因为编号比较大,可以用hash表压缩成数组可以开的下的大小。压缩直接取模就好。如果冲突就往下一个找。代码
[code]#include <cstdio> #include <cstring> #define MOD 1000007 const int maxn = 1000010; struct node { int cnt; int num; }; node s[maxn]; int main() { int n; scanf("%d",&n); for(int i = 0 ; i < n-2 ; i ++) { int a; scanf("%d",&a);//???? int ahash = a%MOD; while(s[ahash].num != a && s[ahash].num != 0) { ahash ++; ahash = ahash%maxn; } s[ahash].num = a; s[ahash].cnt ++; } bool first = true; for(int i = 0 ; i < maxn ; i ++) { if(s[i].cnt%2) { if(first) { first = false; printf("%d",s[i].num); }else printf(" %d\n",s[i].num); } } return 0; }
相关文章推荐
- lightoj 1422Halloween Costumes(区间dp)
- android SharedPreferences类存储路径、本地数据库路径
- nc 数据访问接口
- 用c#开发微信 (15) 微活动 1 大转盘
- 02 Linux 下安装JDK并测试开发“Hello World!”
- Javascript中实现String.startsWith和endsWith方法
- 第13周项目OOP版电子词典
- Android API文档_AudioFormat
- 大数据究竟是什么?一篇文章让你认识并读懂大数据
- 人事面试100问,助你从容面对
- EditPlus配置Java语法自动补全功能
- 无限级联下拉菜单
- 单例模式_装饰模式_模板模式
- Bluetooth---Android蓝牙4.0的数据通讯
- getopt 模块:命令行选项和参数的函数
- Linux上mysql数据库端口3306没对外开放的情况下,用navicat连接数据库
- Linux 命令less 技巧 从文件底部往上看
- 【ContestHunter】【弱省胡策】【Round4】
- 循环队列,4阶斐波那契数列
- OpenStack之tempest