当前位置: 首页 > news >正文

网站没有收录义乌市网站制作

网站没有收录,义乌市网站制作,广州市建设工程检测中心网站,网站建设方案的摘要题目链接 思路#xff1a; 本题将每个人作为一个单独的结点#xff0c;若两个人之间是家人关系#xff0c;则建立边关系。通过哈希法建立人名与编号#xff0c;编号与人名之间的映射。最后统计每个家庭的人数时#xff0c;用DFS遍历即可。 对于本题我犯过两个错误#…题目链接 思路 本题将每个人作为一个单独的结点若两个人之间是家人关系则建立边关系。通过哈希法建立人名与编号编号与人名之间的映射。最后统计每个家庭的人数时用DFS遍历即可。 对于本题我犯过两个错误仅供读者参考 1.建立边关系的时候应当建立双向边而不是单向边。 2.出现的人数比较大数组开大一点。 参考代码 #includebits/stdc.h #includeunordered_map using namespace std; #define INF 0x3f3f3f3f typedef long long ll;unordered_mapstring, int ConvertToInt; //形成人名与编号之间的映射 unordered_mapint, string ConvertToString; //形成编号与人名之间的映射 vectorint e[1005]; //建立图邻接表形式 int snum[1005] { 0 }, area[1005] { 0 }; //snum表示编号为i的人拥有的房屋数量 area同理bool vis[1005]; //表示dfs遍历种结点是否被访问过 int sumnum, sumarea, people; //表示在每轮dfs遍历中这个家庭的总房屋数总面积 总人数 string sumname; //表示在每轮dfs遍历中字典序最小的名字 void dfs(int index) {vis[index] true;sumnum snum[index];sumarea area[index];people;if (ConvertToString[index] sumname)sumname ConvertToString[index];for (auto x : e[index]){if (vis[x] false)dfs(x);} }struct node { //表示家庭信息的结构体string name;double num, area;int people;node(string a, double b, double c, int d) {name a, num b, area c, people d;;} };bool cmp(node a, node b) {if (a.area b.area) return a.name b.name;else return a.area b.area; }int main() {int n;cin n;int t 0;while (n--){string id, father, mother, child;int k, tnum, tarea;cin id father mother k;if (!ConvertToInt.count(id)){ConvertToInt[id] t;ConvertToString[t] id;t;}int top ConvertToInt[id];vectorstring v; //创建数组存放家人编号if (father ! -1) v.emplace_back(father);if (mother ! -1) v.emplace_back(mother);for (int i 0; i k;i){cin child;v.emplace_back(child);}for (auto name : v){if (!ConvertToInt.count(name)){ConvertToInt[name] t;ConvertToString[t] name;t;}e[top].emplace_back(ConvertToInt[name]);e[ConvertToInt[name]].emplace_back(top);}cin tnum tarea;snum[top] tnum; //存入房屋拥有者的房屋套数信息area[top] tarea; //存入房屋拥有者的房屋面积信息}vectornode res; //存放最终的家庭信息for (int i 0; i t;i)if (vis[i] false){sumarea 0, sumnum 0, people 0;sumname ConvertToString[i];dfs(i);res.push_back(node(sumname, 1.0 * sumnum / people, 1.0 * sumarea / people, people));}sort(res.begin(), res.end(), cmp); //按题目要求进行家庭排序cout res.size() endl;for (auto info : res){cout info.name;printf( %d %.3f %.3f\n, info.people, info.num, info.area);}return 0; }
http://wiki.neutronadmin.com/news/9611/

相关文章:

  • 网站开发小程序开发那个网站可以做公示
  • 网站建设与维护 课件wordpress 加载速度优化
  • 手机端网站建设步骤江西省工程建设网站
  • 小说网站建设教程在线crm软件
  • 什么做网站统计好软件设计工具有哪些
  • 卖东西专业网站网上网站风格设定
  • 网站解析设置二室一厅60平米装修案例
  • 新开传奇网站发布站三端互通注册公司要钱吗
  • 内网做网站怎么查网站备案号
  • 局域网的电脑怎么做网站服务器怎样修改静态公司网站页面电话
  • 如何进行网站的建设和维护建设银行武威分行网站
  • _沈阳做网站怎样做服装厂的企业网站模版
  • 烟台网站建设多少钱解读网站建设
  • 建设网站构成关键字搜索网站怎么做
  • 网站开发具体工作有那些网页设计图片是怎么显示的
  • 乔拓云智能建站wordpress js代码插件下载地址
  • 网站icon怎么设置能上国外网站的dns
  • 珠海网站公司哪家好东莞网站建设曼哈顿信科
  • 网站后台管理教程下载软件的app大全
  • 做外贸有必要做个网站吗潍坊免费自助建站模板
  • 建立网站c 如何做公司网站
  • 企业网站建设计划表个人网页首页
  • 加强教育信息网站建设广告安装接单app
  • 怎么用自己的网站做链轮向雅虎提交网站
  • 网站 加域名网站如何做网站名称
  • 晋城网站建设电话低代码app开发平台
  • 劳务派遣技术支持 东莞网站建设企业怎么做网络销售
  • 车网站模板预览做网站用什么服务器
  • 海口哪里做网站seo下拉优化
  • 鹏鸿生态板官方网站开发区代理如何在自己做的网站中顶置内容