1032 Sharing
Posted CSU迦叶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1032 Sharing相关的知识,希望对你有一定的参考价值。
思路很简单,不要想多了,就是找第一个出现的共同字母,即使后面不一样了也没关系。
经验收获如下:
1. 5位整数算小整数,用静态链表,本质上是哈希。
2. 读入字符型的时候千万注意空格。
AC代码
#include<cstdio>
#include<map>
#include<set>
#include<string>
#include<cstring>
#include<iostream>
#include<vector>
#include<stack>
#include<queue>
#include<algorithm>
using namespace std;
const int maxn = 100010;
struct Node{
char data;
int add,next;
bool inWordOne = false;
}node[maxn];
int main(){
int begin1,begin2,n;
scanf("%d%d%d",&begin1,&begin2,&n);
int add;
while(n--){
scanf("%d",&add);
scanf(" %c ",&node[add].data);
scanf("%d",&node[add].next);
}
//将所有链1上面的结点的inWordOne标注为true
int L1 = begin1;
while(L1!=-1){
node[L1].inWordOne = true;
L1 = node[L1].next;
}
//在链L2中寻找inWordOne标注为true的结点,即为两个单词的第一个共同字母
int L2 = begin2;
while(L2!=-1){
if(node[L2].inWordOne)break;
L2 = node[L2].next;
}
if(L2!=-1)printf("%05d\\n",L2);
else printf("-1\\n");
return 0;
}
以上是关于1032 Sharing的主要内容,如果未能解决你的问题,请参考以下文章