标签:Node Head string int C++ idNumber ret 1034 cmp
题目来源:https://pintia.cn/problem-sets/994805342720868352/problems/994805456881434624
由于之前在学习数据结构和算法时,学校禁止使用C++ STL,所以现在刷算法时STL中很多趁手武器不会用,惭愧...
本题重点之一是映射,需要使用map数据结构
#include <map> using namespace std; map<int, string> m;
由此可以完成从 int类型的键到 string类型的值的 一对多映射
插入操作使用重载的运算符[],在插入之前,先在map中查询一下是否有已经存在
// idNumber是全局变量,初值为0
int Mapping(string s) { int ret = -1; if (s2i.count(s) == 0) { //完成 string<->int 一一映射,如 "AAA"<-> 0 s2i[s] = idNumber; i2s[idNumber] = s; ret = idNumber; idNumber++; } else ret = s2i[s]; return ret; }
第二部分,整理一下结构体数组的排序
struct Node { string s; int n; }; bool cmp(Node a, Node b) { return a.s < b.s; //按照string变量非降序排序,如果是想按Node中n排序同理 } // 如果是结构体数组=>Node a[size]; sort(a, a + size, cmp); // 如果是vector<Node> v sort(v.begin(), v.end(), cmp);
其他均为正常图论算法,主要涉及对联通分量的处理,略。
标签:Node,Head,string,int,C++,idNumber,ret,1034,cmp 来源: https://www.cnblogs.com/from-ancient/p/16412300.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。