L2-007. 家庭房产 (BFS)
来源:互联网 发布:软件认证中心 编辑:程序博客网 时间:2024/05/16 23:52
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <vector>#include <stack>#include <map>#include <queue>using namespace std;const int INF = 0x3f3f3f3f;const int N = 10010;const double esp = 1e-6;struct node{ int num; int tao; int mian;}a[N];struct asd{ double avet; double avem; int minn; int num;}h[N];bool cmp2(asd a,asd b){ if(a.avem != b.avem) return a.avem > b.avem; return a.minn < b.minn;}map<int,int> mp;vector<int> p[N];int vis[N];int k;void bfs(int x){ int minn = INF; int ansm = 0; int ansg = 0; int num = 0; queue<int> q; int now; q.push(x); vis[x] = 1; while(!q.empty()) { now = q.front(); q.pop(); minn = min(minn,a[now].num); ansm += a[now].mian; ansg += a[now].tao; num++; for(int i = 0; i < p[now].size(); i++) { if(!vis[p[now][i]]) { q.push(p[now][i]); vis[p[now][i]] = 1; } } } h[k].minn = minn; h[k].num = num; h[k].avem = ansm*1.0/num; h[k].avet = ansg*1.0/num; k++;}bool chu(int x){ if(x == -1) return false; if(mp[x] == 0) mp[x] = mp.size(); a[mp[x]].num = x; return true;}int main(){ int n; cin >> n; mp.clear(); for(int i = 0; i < n; i++) { int x,b,c,ge; cin >> x >> b >> c >> ge; chu(x); x = mp[x]; if(chu(b)) { p[x].push_back(mp[b]); p[mp[b]].push_back(x); } if(chu(c)) { p[x].push_back(mp[c]); p[mp[c]].push_back(x); } while(ge--) { int child; cin >> child; if(chu(child)) { p[x].push_back(mp[child]); p[mp[child]].push_back(x); } } cin >> a[x].tao >> a[x].mian; } memset(vis,0,sizeof(vis)); k = 0; for(int i = 1; i <= mp.size(); i++) { if(!vis[i]) bfs(i); } sort(h,h+k,cmp2); printf("%d\n",k); for(int i = 0; i < k; i++) printf("%04d %d %.3lf %.3lf\n",h[i].minn,h[i].num,h[i].avet,h[i].avem); return 0;}
0 0
- L2-007. 家庭房产 (BFS)
- L2-007. 家庭房产
- L2-007. 家庭房产
- L2-007. 家庭房产
- L2-007. 家庭房产
- L2-007. 家庭房产
- L2-007. 家庭房产
- L2-007. 家庭房产
- L2-007. 家庭房产
- L2-007. 家庭房产
- L2-007. 家庭房产
- L2-007. 家庭房产【并查集】
- L2-007. 家庭房产-并查集
- PAT L2-007. 家庭房产 (并查集)
- PAT L2-007. 家庭房产 (并查集)
- PAT L2-007. 家庭房产(并查集)
- PAT L2-007. 家庭房产(并查集)
- 团体程序设计天梯赛-练习集 L2-007. 家庭房产
- 集成学习
- sql注入绕过union select过滤
- softmax的简单推导和python实现
- javaWeb文件的上传和下载(-) 文件的下载
- 框架封装基础
- L2-007. 家庭房产 (BFS)
- 计算机视觉基础3——内部参数描述
- Redis持久化、复制和集群
- [BZOJ2227][Zjoi2011][找规律][排列组合][数学]看电影(movie)
- Linux Kernel input handler处理
- DOM的操作
- Allen学习笔记—java设计模式之单例模式
- webdriver获取当前最新打开的windows窗口_10_5
- 红黑树-插入篇