Wireless Network POJ - 2236 -并查集

本文介绍了一种使用并查集数据结构解决电脑间联网问题的方法。具体问题为:给定n台位置已知的坏电脑,在修复部分电脑后,判断任意两台电脑是否能通过直接或间接的方式连接起来。文中提供了详细的AC代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


题意:一张图上分布着n台坏了的电脑,并知道它们的坐标。两台修好的电脑如果距离<=d就可以联网,也可以通过其他修好的电脑间接相连。给出操作“O x”表示修好x,给出操作“S x y”,请你判断x和y在此时有没有连接上。

思路:并查集




AC代码:

#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <cstdlib>


using namespace std;
int dis;
int x[1002][1002];
int y[1002][1002];
int pre[20000],v[20000];
struct point
{
    int x;
    int y;


}p[1002];
int   distance(int a,int b,int c,int d)
{
     if(((a-c)*(a-c)+(b-d)*(b-d))<=(dis*dis))
        return true;
     else
        return false;
}
int find(int x)
{
    if(pre[x]==x)
        return x;
    else
    {
        int a=find(pre[x]);
        pre[x]=a;
        return pre[x];
    }
}
bool same(int a,int b)
{
    return find(a)==find(b);
}
void unite(int a,int b)
{
    int c=find(a);
    int d=find(b);
    if(c!=d)// 注意!!合并的是啥?父集!!
        pre[d]=c;
//    if(!same(a,b))//XXXXX错
//    {
//        pre[a]=b;
//        pre[b]=a;
//    }


}


int main()
{
   int n,a,b;
   cin>>n>>dis;


   for(int i=1;i<=n;i++)
   {
       scanf("%d%d",&p[i].x,&p[i].y);
   }
   for(int i=1;i<=n;i++)
   {
        pre[i]=i;
        v[i]=0;
   }


     char s;
   while(cin>>s)//此处scanf超时
{
        if(s=='O')
   {
       cin>>a;
       v[a]=1;
       for(int i=1;i<=n;i++)
       {
           if(i!=a&&v[i]&&distance(p[a].x,p[a].y,p[i].x,p[i].y))//注意!!要有v[i]!=0这个条件否则将没修好的电脑也算上了
              unite(a,i);


       }
   }
    else if(s=='S')
   {
       cin>>a>>b;
       if(same(a,b))
        cout<<"SUCCESS"<<endl;
       else
        cout<<"FAIL"<<endl;


   }


}




}

内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值