情侣名
2022/8/23 23:25:04
本文主要是介绍情侣名,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
解析:
主要是char string 与 int 的转换
用map即可
构造出关系矩阵就好了
#include <bits/stdc++.h> using namespace std; map<string, int> index; map<string, int> hashmap; map<int, string> unhashmap; map<string, int> vis; vector<string> mm; vector<int> cores[1010]; int line[1010][1010], girl[1010]; int n, m; int cnt; int used[1010]; int main() { memset(line, 0, sizeof(line)); cin >> n >> m; cnt = 0; for(int i = 0; i < n; i++) { string u, v; cin >> u >> v; int x, y; if(hashmap[u] == 0) { hashmap[u] = ++cnt; x = cnt; } else x = hashmap[u]; if(hashmap[v] == 0) { hashmap[v] = ++cnt; y = cnt; } else y = hashmap[v]; unhashmap[y] = v; unhashmap[x] = u; cores[x].push_back(y); cores[y].push_back(x); } for(int i = 0; i < m; i++) { string temp; cin >> temp; mm.push_back(temp); vis[temp] = 1; } cnt = 0; for(int i = 0; i < m; i++) { string name, xing = "", ming = ""; name = mm[i]; for(int j = 0; j < name.length(); j++) { if(name[j] >= 'a' && name[j] <= 'z') ming += name[j]; else xing += name[j]; } int x, y; if(index[name] == 0) { index[name] = ++cnt; x = cnt; } else x = index[name]; int id = hashmap[ming]; for(int j = 0; j < cores[id].size(); j++) { string yname = xing + unhashmap[cores[id][j]]; if(vis[yname] == 0) continue; if(index[yname] == 0) { index[yname] = ++cnt; y = cnt; } else y = index[yname]; line[x][y] = 1; line[y][x] = 1; } } int ans = 0; for(int i = 1; i <= cnt; i++) { for(int j = 1; j <= cnt; j++) if(line[i][j] == 1) ans++; } cout << ans / 2 << endl; return 0; }
这篇关于情侣名的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-01为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署