首页 > 其他分享 >L2-007 家庭房产 分数 25

L2-007 家庭房产 分数 25

时间:2024-08-30 22:14:51浏览次数:3  
标签:fp 25 arr fs int double flag 007 L2

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
// 分别为祖宗节点,人数,房子数,总面积
int p[N], cnt[N], fangzi[N], totalarea[N], minnum[N];
// 编号是否存在,为true存在
bool flag[N];
class ans
{
public:
    int zuixiao;
    int renkou;
    double renjunfang;
    double renjunmian;
    ans(int a1, int b1, double c1, double d1) : zuixiao(a1), renkou(b1), renjunfang(c1), renjunmian(d1){};
    ans(){};
    void print()
    {
    	cout << setw(4) << setfill('0') << zuixiao;
        cout << " " << renkou << " ";
    	cout << fixed << setprecision(3) << renjunfang << " " << renjunmian << endl;
    }
};
void init()
{
    for(int i = 0; i < N; ++ i)
    {
        p[i] = i;
        cnt[i] = 1;
        fangzi[i] = 0;
        totalarea[i] = 0;
        minnum[i] = i;
    }
}
bool sort_func(ans a, ans b)
{
    if(a.renjunmian != b.renjunmian) return a.renjunmian > b.renjunmian;
    else return a.zuixiao < b.zuixiao;
}
int find(int x)
{
    if(x != p[x]) p[x] = find(p[x]);
    return p[x];
}
void merge(int son, int par)
{
    int fs = find(son), fp = find(par);
    if(fs != fp)
    {
        p[fs] = fp;
        cnt[fp] += cnt[fs];
        fangzi[fp] += fangzi[fs];
        totalarea[fp] += totalarea[fs];
        minnum[fp] = min(minnum[fs], minnum[fp]);
    }
}
void fenzhi()
{
    int ncnt = 0;
    for(int i = 0; i < N; ++ i)
        if(flag[i] && p[i] == i) ++ ncnt;
    cout << ncnt << endl;
    vector<ans> totalans;
    for(int i = 0; i < N; ++ i)
    {
        if(flag[i] && p[i] == i)
        {
            ans tmp(minnum[i], cnt[i], (double)fangzi[i] / (double)cnt[i], (double)totalarea[i] / (double)cnt[i]);
            totalans.push_back(tmp);
        }
    }
    sort(totalans.begin(),totalans.end(),sort_func);
    for(auto ti : totalans)
    	ti.print();
}
int main()
{
    int n;
    cin >> n;
    init();
    vector<vector<int>> input;
    // 先将个人的房子和总面积初始化
    for(int i = 1; i <= n; ++ i)
    {
    	vector<int> tmp;
        int arr[4];
        for(int j = 0; j < 4; ++ j)
        {
            cin >> arr[j];
            tmp.push_back(arr[j]);
        }
        flag[arr[0]] = true;
        if(arr[1] != -1) flag[arr[1]] = true;
        if(arr[2] != -1) flag[arr[2]] = true;
        for(int j = 1; j <= arr[3]; ++ j)
        {
            int kid;
            cin >> kid;
            flag[kid] = true;
            tmp.push_back(kid);
        }
        int fang, area;
        cin >> fang >> area;
        fangzi[arr[0]] = fang;
        totalarea[arr[0]] = area;
        input.push_back(tmp);
    }
    
    // 再合并
    for(int i = 0; i < input.size(); ++ i)
    {
        int self = input[i][0], fu = input[i][1], mu = input[i][2];
        if(fu != -1) merge(self,fu);
        if(mu != -1) merge(self,mu);
        for(int j = 1; j <= input[i][3]; ++ j)
            merge(input[i][3 + j], self);
    }
    fenzhi();
    return 0;
}

标签:fp,25,arr,fs,int,double,flag,007,L2
From: https://www.cnblogs.com/Frodnx/p/18389600

相关文章

  • 基于javaweb的smile旅行社管理系统的设计与实现 毕业设计-附源码02508
    摘 要随着旅游行业的蓬勃发展,旅行社作为连接旅游资源和游客的桥梁,其管理效率和服务质量直接影响着客户满意度和企业竞争力。为了更好地满足市场需求,提升旅行社的管理水平和运营效率,设计与实现一套高效、稳定的旅行社管理系统显得尤为重要。基于JavaWeb的Smile旅行社管......
  • Versal 自适应 SoC,XCVM2502-1MSEVSVC2197、XCVM2502-1LSEVSVC2197、XCVM2502-1LLIVSVI
    Prime 系列概述VersalPrime系列是一款高度集成、多核、异构计算平台,适用于数据中心网络、存储和有线通信等多种应用。它通过在优化了连接性的设备中实现低延迟的内联加速,为这些应用提供突破性的性能。 应用:存储加速数据中心网络加速5GxHaul无源光网络通......
  • sha-256算法,生成固定长度的字符串
    SHA-256(安全哈希算法256位)是一种广泛使用的加密哈希函数,它会将输入的任意大小的数据转换为固定长度的256位(32字节)哈希值。SHA-256是SHA-2系列算法的一部分,由美国国家安全局(NSA)设计,并由美国国家标准与技术研究院(NIST)发布。SHA-256的主要特点包括:固定长度输出:无论输入数据的......
  • vue使用html2canvas将页面dom生成图片,解决页面中带有图片导出
    安装npm installhtml2canvas引入importhtml2canvas from 'html2canvas'使用this.$refs.canvasToPic是div的dom,只要在这个div中的区域都可以生成图片1this.$nextTick(()=>{2html2canvas(this.$refs.canvasToPic,{useCORS:true,logging:true}).......
  • Civil 3D 2025新功能及安装教程和下载
    Civil3D2025版本引入了一些重要的新功能和改进,提升了基础设施设计和土木工程项目的工作流程:改进的道路设计工具:新增了更高级的道路设计功能,支持更加复杂的道路几何形状和交叉路口设计,提高了设计灵活性。增强的水力和水文分析:改进了对排水管道和河流流域的水力和水文分析工......
  • Min_25 筛学习笔记
    \(\text{Min}\_25\)筛学习笔记事实上我又学习了一个有点春的筛法。\(\text{Min}\_25\)筛用于求解积性函数的前缀和,即形如\(g(n)=\sum_{i=1}^{n}f(i)\)形式的函数\(g\)。众所周知,朴素筛法之所以无法做到低于线性是因为枚举了区间内的每一个数,那么我们想要做到低于线性,就必然......
  • L2-024 部落 分数 25
    基础款并查集练习题//13'11"#include<bits/stdc++.h>usingnamespacestd;constintN=1e4+10;intp[N],f[N];voidinit(){for(inti=1;i<=N;++i)p[i]=i;}intfind(intx){if(x!=p[x])p[x]=find(p[x]);ret......
  • L2-013 红色警报 分数 25
    时间复杂度N*M≈2.5e6#include<bits/stdc++.h>usingnamespacestd;intn=510,m;constintN=510;vector<pair<int,int>>path;//储存所有边intp[N];//储存祖宗节点boolflag[N];//判断是否已经被去除voidinit()//初始化所有祖宗节点{......
  • L2-010 排座位 分数 25
    #include<bits/stdc++.h>usingnamespacestd;constintN=1000;intp[N];intfind(intx){if(p[x]!=x)p[x]=find(p[x]);returnp[x];}intmain(){intn,m,k;cin>>n>>m>>k;for(inti=1;i<=......
  • 2025秋招大语言模型落地实践面试题
    本文系统地从计算力基础设施、软件架构、数据资源、应用场景和脑科学五大核心维度对大模型实践中的问题进行解答。目录计算力基础设施1.1什么是云边端协同架构?1.2信息技术应用创新计划相关政策对企业的影响?软件架构2.1拥有自己的大语言模型(LLM)是否必要?2.2......