PAT 09-散列3. Hashing - Hard Version (30)
来源:互联网 发布:thinkphp分销商城源码 编辑:程序博客网 时间:2024/05/21 20:28
题目链接:
Hashing-Hard Version
解题思路:
暴力,首先根据题目要求将所有给出节点按字典序(从小到大)排列
循环S(节点总数)次,每次通过遍历数组找到一个未出现过的,且满足条件:只能出现在现有位置上(本可出现在之前位置,但被其他节点占据)的节点
输出节点的值 并标记为出现过即可得到答案
代码:
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#define M 1005using namespace std;struct node{ int d; int pos; int value; int used;} Node[M];int vis[M];int n;int cmp(node a,node b){ return a.value<b.value;}int OK(int loc){ int mod=Node[loc].value%n; if(Node[loc].d==0&&vis[mod]==0) { vis[mod]=1; return 1; } else { for(int i=mod; i!=Node[loc].pos; i=(i+1)%n) { if(!vis[i]) return 0; } vis[Node[loc].pos]=1; return 1; }}int main(){ int s; scanf("%d",&n); s=0; int a,mod; for(int i=0; i<n; i++) { vis[i]=0; scanf("%d",&a); if(a!=-1) { mod=a%n; if(mod<i) Node[s].d=i-mod; else //注意mod>i的情况 Node[s].d=i+n-mod; Node[s].pos=i; Node[s].used=0; Node[s++].value=a; } } sort(Node,Node+s,cmp); for(int i=0; i<s; i++) { for(int j=0; j<s; j++) if(!Node[j].used&&OK(j)) { Node[j].used=1; if(i==0) cout<<Node[j].value; else cout<<' '<<Node[j].value; break; } } cout<<endl; return 0;}
0 0
- PAT 09-散列3. Hashing - Hard Version (30)
- PAT 数据结构 09-散列3. Hashing - Hard Version (30) 拓扑排序
- 09-散列3. Hashing - Hard Version (30)
- 09-散列3. Hashing - Hard Version (30)
- PAT--Hashing - Hard Version (30)
- 11-散列4 Hashing - Hard Version
- 09-3. Hashing - Hard Version
- [DS][Hash][PAT][Hashing Hard Version]
- PTA—11-散列4 Hashing - Hard Version (30分)
- 散列-PAT.A1078 Hashing
- PAT 数据结构 09-散列1. Hashing (25)
- hashing(hard)
- 09-散列1. Hashing (25)
- 散列 (Hashing)
- 散列(hashing)
- 散列2 Hashing
- PAT--Saving James Bond - Hard Version
- PAT 数据结构 06-图4. Saving James Bond - Hard Version (30)
- 2015/04/30CSS学习记录 CSS文本&字体
- Android系统触屏事件传递派发浅析
- J2EE学习路线图
- jdbc基础 (一) MySQL的简单使用
- OCA、OCP、OCM的了解
- PAT 09-散列3. Hashing - Hard Version (30)
- 学习笔记-bloom filter
- 标准的HTML头部写法
- 使用LevelListDrawable实现Html.fromHtml多张图片显示
- mac系统Command键几个小用法
- bootstrap 登录页面
- iOS 设置UIActionSheet 按钮颜色
- 2.1.16 Plus One
- 从 NSURLConnection 到 NSURLSession