pta l2-7(家庭房产)】的更多相关文章

题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805068539215872 题意:给定n个人的信息,包括其编号,父母以及孩子的编号,以及其名下的房产数量和房产面积,要求有多少个家族,并列出每个家族的最小编号,家庭人数,家庭人均房产数量和人均房产面积. 思路:算法部分就是简单的并查集,但数据处理等方面还挺复杂,一定要仔细.首先用个data结构体数组来存储输入的每个人的信息,用node结构体来存储每个家族的信息…
L2-007 家庭房产 (25 分)   给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数.人均房产面积及房产套数. 输入格式: 输入第一行给出一个正整数N(≤),随后N行,每行按下列格式给出一个人的房产: 编号 父 母 k 孩子1 ... 孩子k 房产套数 总面积 其中编号是每个人独有的一个4位数的编号:父和母分别是该编号对应的这个人的父母的编号(如果已经过世,则显示-1):k(0k≤)是该人的子女的个数:孩子i是其子女的编号. 输出格式: 首先在第一行输出家庭个数(所有有亲…
L2-007. 家庭房产 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数.人均房产面积及房产套数. 输入格式: 输入第一行给出一个正整数N(<=1000),随后N行,每行按下列格式给出一个人的房产: 编号 父 母 k 孩子1 ... 孩子k 房产套数 总面积 其中 编号 是每个人独有的一个4位数的编号:父 和 母 分别是该编号对应的这个人的父母的编号(如果已…
L2-007. 家庭房产 题目链接:https://www.patest.cn/contests/gplt/L2-007 并查集 初学,看这题的时候完全没有什么好的想法,参考了@yinzm的blog用BFS做了一遍,错了三个测试点,找了一下午没找出来,另寻他法.看到了并查集这个概念,做了一两题稍微掌握了一下,尝试做这题. 代码如下: #include<cstdio> #include<iostream> #include<algorithm> #include<c…
L2-007. 家庭房产 参考博客 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <vector> #include <queue> #include <set> #include <map> #include <string> #include <cmath>…
题目链接 题目描述 给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数.人均房产面积及房产套数. 输入格式: 输入第一行给出一个正整数N(<=1000),随后N行,每行按下列格式给出一个人的房产: 编号 父 母 k 孩子1 ... 孩子k 房产套数 总面积 其中 编号 是每个人独有的一个4位数的编号:父 和 母 分别是该编号对应的这个人的父母的编号(如果已经过世,则显示-1):k(0<=k<=5)是该人的子女的个数:孩子i是其子女的编号. 输出格式: 首先在第一行输出家庭…
L2-007. 家庭房产 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数.人均房产面积及房产套数. 输入格式: 输入第一行给出一个正整数N(<=1000),随后N行,每行按下列格式给出一个人的房产: 编号 父 母 k 孩子1 ... 孩子k 房产套数 总面积 其中 编号 是每个人独有的一个4位数的编号:父 和 母 分别是该编号对应的这个人的父母的编号(如果已…
L2-007. 家庭房产 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数.人均房产面积及房产套数. 输入格式: 输入第一行给出一个正整数N(<=1000),随后N行,每行按下列格式给出一个人的房产: 编号 父 母 k 孩子1 ... 孩子k 房产套数 总面积 其中 编号 是每个人独有的一个4位数的编号:父 和 母 分别是该编号对应的这个人的父母的编号(如果已经过世,则显示-1):k(0<…
链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805068539215872 题目: 给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数.人均房产面积及房产套数. 输入格式: 输入第一行给出一个正整数N(≤),随后N行,每行按下列格式给出一个人的房产: 编号 父 母 k 孩子1 ... 孩子k 房产套数 总面积 其中编号是每个人独有的一个4位数的编号:父和母分别是该编号对应的这个人的父母的编号(如…
https://pintia.cn/problem-sets/994805046380707840/problems/994805068539215872 给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数.人均房产面积及房产套数. 输入格式: 输入第一行给出一个正整数N(≤),随后N行,每行按下列格式给出一个人的房产: 编号 父 母 k 孩子1 ... 孩子k 房产套数 总面积 其中编号是每个人独有的一个4位数的编号:父和母分别是该编号对应的这个人的父母的编号(如果已经过世,则…
给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数.人均房产面积及房产套数. 输入格式: 输入第一行给出一个正整数N(<=1000),随后N行,每行按下列格式给出一个人的房产: 编号 父 母 k 孩子1 ... 孩子k 房产套数 总面积 其中 编号 是每个人独有的一个4位数的编号:父 和 母 分别是该编号对应的这个人的父母的编号(如果已经过世,则显示-1):k(0<=k<=5)是该人的子女的个数:孩子i是其子女的编号. 输出格式: 首先在第一行输出家庭个数(所有有亲属关系…
https://www.patest.cn/contests/gplt/L2-007 题解:一开始是想直接并查集,一个家就是一个集合,对每个集合维护一个人数num1一个房产数num2 一个房产面积area 以及一个最小编号. 后来想了一下,直接建树,然后对每棵树搜一遍算了,给的信息太多了...但是每个人会有两个父亲节点,我们一个都不管,只是存在数组里,在找这颗树的最小id时会用到. 再想了一下,直接建图呗.然后写了半小时..太复杂了吧 坑:1.set的erase的参数不是int,是iterat…
题目链接 https://www.patest.cn/contests/gplt/L2-007 思路 将一个家庭里的所有人都并进去 然后最后查找的时候 找到所有同一个家庭的人,计算出人数,人均房产套数,人均房产面积 而且 在ID 小于当前 ID 的时候 要更新 AC代码 #include <cstdio> #include <cstring> #include <ctype.h> #include <cstdlib> #include <cmath&g…
题目链接:点击打开链接 给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数.人均房产面积及房产套数. 输入格式: 输入第一行给出一个正整数N(<=1000),随后N行,每行按下列格式给出一个人的房产: 编号 父 母 k 孩子1 ... 孩子k 房产套数 总面积 其中 编号 是每个人独有的一个4位数的编号:父 和 母 分别是该编号对应的这个人的父母的编号(如果已经过世,则显示-1):k(0<=k<=5)是该人的子女的个数:孩子i是其子女的编号. 输出格式: 首先在第一行输出…
题意: 给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数.人均房产面积及房产套数. 思路: 输入和输出各构造一个结构体,利用并查集归并输入,枚举编号进行输出. #include <bits/stdc++.h> using namespace std; const int M=11000; struct DATA{ int id,fid,mid,num,area; int cid[10]; }data[M]; struct NODE{ int id,people; double…
建图+DFS 题目链接:https://www.patest.cn/contests/gplt/L2-007 题解 在热身赛的时候没有做出来,用的并查集的思想,但是敲残了,最后也没整出来.赛后听到别人的解题思路,感觉挺有收获的.利用每个人的关系可以建立一个无向图,最后用DFS遍历这个图,就能知道有几个连通分量,即家庭的数目. 当一个解题思想耗费差不多一个小时还没敲出来,可能你的大致思想确实可以将这个题目解出来,但是你目前的状态还不能很好的解决这个问题.例如这个题,一看题目就知道这个是跟并查集有关…
题目分析: 典型的union-find 算法 想法: 先不着急 union 因为每一个人的房产信息不知道 所以先输入所有信息 同时保留与自己有关系的每一个人 待初始化每一个人的房产信息后,再union #include <bits/stdc++.h> using namespace std; ; struct T { int id; int p_n; int w_n; int sum; double avg; }; T a[N]; int father [N]; bool isok[N];//…
较为麻烦的并查集 主要是我的模板是错的检查了好久.... 先是输入 把每个家庭连在一起 输出的家庭编号为该家庭所有编号的最小值  在并查集里面完成 第一次 0~n-1遍历储存好 家庭编号 和房子面积和数量 第二次0~N遍历 遍历家庭人数 第三遍 处理人均面积和家庭数量和人均数量 #include<bits/stdc++.h> using namespace std; ]; int find1(int x) { int j=x; while(j!=f[j]) j=f[j]; int cur=x;…
题目大意:求并查集中集合的个数,及每个集合的详细信息 解题关键:只要不进行unite,集合的根是不会变化的. #include<cstdio> #include<cstring> #include<algorithm> #include<cstdlib> #include<cmath> #include<iostream> using namespace std; struct node{ int id,cnt,area; }pe[]…
#include <cstdio> #include <set> #include <vector> #include <algorithm> using namespace std; ; const int inf=1e8; int n; int f[N]; set<int>st,tt; set<int>::iterator it; struct node{ ,S=; }peo[N]; struct edge{ ; ,avgS=;…
题目链接 题解:并查集把一个家的并在一起,特殊的一点是编号大的并到小的去.这个题有个坑编号可能为0000,会错数据3和5. 1 #include<bits/stdc++.h> 2 using namespace std; 3 4 struct node 5 { 6 int id,num,area,fa,ma; 7 int ch[10]; 8 }p[100100]; 9 10 struct fz 11 { 12 int id,all; 13 double num,area; 14 }q[1001…
PTA刷题记录 仓库地址: https://github.com/Haorical/Code/tree/master/PTA/GPLT 两周之内刷完GPLT L2和L3的题,持续更新,包括AK代码,坑点,和少量评论 用一周刷完了l2的40道题 刷题笔记 dj vis数组置为真 链表判空不用数量,判断结尾 注意数据类型比较,段错误可能int double比较/无限循环/数组给小了 指针定义时赋空 镜像树left right互换就行 union()时间过长 建议不用 bfs入队判空 并查集有时不用路…
L2-007. 家庭房产 给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数.人均房产面积及房产套数. 输入格式: 输入第一行给出一个正整数N(<=1000),随后N行,每行按下列格式给出一个人的房产: 编号 父 母 k 孩子1 ... 孩子k 房产套数 总面积 其中 编号 是每个人独有的一个4位数的编号:父 和 母 分别是该编号对应的这个人的父母的编号(如果已经过世,则显示-1):k(0<=k<=5)是该人的子女的个数:孩子i是其子女的编号. 输出格式: 首先在第一行输…
L2-010. 排座位 题目链接:https://www.patest.cn/contests/gplt/L2-010 并查集 相关题目:L2-007. 家庭房产,L3-003. 社交集群 下午打的时候什么都没用,直接上一个矩阵,没有考虑“甲是a的朋友,a是b的朋友,b是乙的朋友”这种多个人关系的情况,华丽WA.出来问了学长,用的是并查集,用一个矩阵来表示两人之间的敌对关系(写的时候还是WA了好多次,最后才发现是"No way"的"w"打成了大写QAQ) 代码如下:…
L3-003. 社交集群 题目链接:https://www.patest.cn/contests/gplt/L3-003 查并集 与L2-007(家庭房产)类似,都是采用了并查集的算法,相对来说这题处理起来更简单一点.这里我维护了最小的h[i],便于查找. 代码如下: #include<cstdio> #include<iostream> #include<algorithm> #define N 1005 using namespace std; int a[N];/…
由于本人愚笨,最后一题实在无力AC,于是只有前14题的题解Orz 总的来说,这次模拟赛的题目不算难,前14题基本上一眼就有思路,但是某些题写起来确实不太容易,编码复杂度有点高~ L1-1 N个数求和 设计一个分数类,重载加法运算符,注意要约分,用欧几里得算法求个最大公约数即可. #include <cstdio> long long abs(long long x) { ? -x : x; } long long gcd(long long a, long long b) { ) return…
L2-001 紧急救援 题意:就是给你一张n<500的图:让你求最短路径,最短路条数,以及路径: 做法,先用dijkstra求最短路,然后dfs找最短路条数,以及点权的最大值: 一般dfs不就可以解决这个问题吗,像n皇后求次数,注意回溯即可: 那如何dfs确定这条路是最短路径呢?贪心思想,枚举每一个邻居,如果满足   dis[y.v]==dis[x]+y.w 说明当前邻居 通过这个点可以一直是最短路径,这样dfs下去,如果碰到d就return掉: 主要是没有想到用dfs求最短路径条数,然后注意回…
---恢复内容开始--- 近日,在做PTA题目时,遇到了一个这样的题,困扰了很久.题目如下:已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数.有序序列A​0​​,A​1​​,⋯,A​N−1​​的中位数指A​(N−1)/2​​的值, 即第⌊(N+1)/2⌋个数(A​0​​为第1个数).输入分三行.第一行给出序列的公共长度N(0<N≤100000),随后每行输入一个序列的信息,即N个非降序排列的整数.数字用空格间隔. 首先,分析题可知:该题中的序列是一个升序 的序列(可能存…
一.PTA实验作业 1.题目1: 6-2 线性表元素的区间删除 2. 设计思路 定义i,j; 判断L,minD,maxD; while(i<l->Last) { 判断所有满足条件的数,delete}return L: 3.代码截图 4.PTA提交列表说明 1.题目2: 6-2 jmu-ds-单链表逆置 2. 设计思路 void CreateList(List &L,int n){ 尾插法建表} void ReverseList(List &L){//链表逆置 定义List Ol…
这个系统的整体结构: GitHub:https://github.com/lq1998lq/Test.git com.action包: package com.action; import java.util.List; import java.util.Map; import org.apache.struts2.ServletActionContext; import com.dao.TAdminDAO; import com.model.TAdmin; import com.opensym…