What Kind of Friends Are You?(字符串匹配)
2017-04-24 14:44
405 查看
链接:http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5579
题意:给出一些字符串被回答的序列,要求在接下来的序列中,是否能够唯一确定字符串。
思路:用字符串匹配,用字符串来存储它的回答情况,回答了的直接加到相对应的字符串后面,没有回答到的,全部在字符串尾加‘0’,接下来给出的每一种情况,直接进行匹配即可。
代码:
题意:给出一些字符串被回答的序列,要求在接下来的序列中,是否能够唯一确定字符串。
思路:用字符串匹配,用字符串来存储它的回答情况,回答了的直接加到相对应的字符串后面,没有回答到的,全部在字符串尾加‘0’,接下来给出的每一种情况,直接进行匹配即可。
代码:
#include <iostream> #include <cstring> #include <cstdio> #include <string> #include <map> #include <algorithm> using namespace std; char name[220][30]; int vis[200]; int main() { int t; cin >> t; while(t--) { string value[200]; int n,q; cin >> n >> q; int c; cin >> c; for(int i=0; i<c; i++) scanf("%s",name[i]); for(int i=0; i<q; i++) { int m; cin >> m; memset(vis, 0 ,sizeof vis); for(int j=0; j<m; j++) { char s[30]; scanf("%s",s); for(int k=0; k<c; k++) { if(!strcmp(s,name[k])) { value[k]+='1'; vis[k] = 1; } } } for(int j=0; j < c; j++) { if(!vis[j]) value[j] += '0'; } } for(int i=0; i<n; i++) { string a; for(int j=0; j<q; j++) { char x; cin >> x; a += x; } int cnt = 0, k=0; for(int j=0; j<c; j++) { if(a == value[j]) { cnt++; k = j; } } if(cnt == 1) printf("%s\n",name[k]); else printf("Let's go to the library!!\n"); } } return 0; }
相关文章推荐
- 浙江省赛C题 What Kind of Friends Are You?
- ZOJ 3960 What Kind of Friends Are You?(读题+思维)
- zoj 3960 What Kind of Friends Are You?
- ZOJ3960-What Kind of Friends Are You?
- What Kind of Friends Are You?
- ZOJ 3960 What Kind of Friends Are You? 【状态标记】
- ZOJ - 3960 What Kind of Friends Are You
- ZOJ 3960 What Kind of Friends Are You?【】
- What Kind of Friends Are You?
- zoj 3960 What Kind of Friends Are You?(哈希)
- zoj 3960 What Kind of Friends Are You?
- 17年浙江省省赛C-What Kind of Friends Are You?
- zoj 3960 What Kind of Friends Are You?(map+哈希)
- What Kind of Friends Are You? ZOJ - 3960 (STL)
- 浙江省赛 C What Kind of Friends Are You?
- What Kind of Friends Are You?
- 2017 浙江省赛 C What Kind of Friends Are You + D Let's Chat
- ZOJ 3960 What Kind of Friends Are You?(STL map,状态压缩)
- What Kind of Friends Are You?
- ZOJ 3960 What Kind of Friends Are You? 题解