L2-010. 排座位(并查集)

背模板直接AC,没有任何坑点。

#include<iostream>
#include<cstring>
using namespace std;
int n,m,k,que[105],map[105][105];
int getf(int k)
{
    return que[k]==k?k:que[k]=getf(que[k]);
}
int merge(int a,int b)
{
    if (getf(a)!=getf(b))
    que[getf(a)]=getf(b);
}
int main()
{
    int i,j,a,b,c;
    for (i=0;i<105;i++)
    que[i]=i;
    cin>>n>>m>>k;
    for (i=0;i<m;i++)
    {
        cin>>a>>b>>c;
        map[a][b]=c;
        map[b][a]=c;
        if (c==1)
        merge(a,b);
    }
    for (i=0;i<k;i++)
    {
        cin>>a>>b;
        if (getf(a)==getf(b)&&map[a][b]!=-1)
        cout<<"No problem"<<endl;
        else if (getf(a)!=getf(b)&&map[a][b]!=-1)
        cout<<"OK"<<endl;
        else if (getf(a)==getf(b)&&map[a][b]==-1)
        cout<<"OK but..."<<endl;
        else if (getf(a)!=getf(b)&&map[a][b]==-1)
        cout<<"No way"<<endl;
    }
}
全部评论

相关推荐

bLanK的小号:建议自己写一个比较新颖的项目,比如思维导图,在线文档,仿造postman,仿造一个组件库
点赞 评论 收藏
分享
兄弟们,绩效自评一定得给自己打A啊!千万别谦虚给低分,不然领导正愁给谁高分,你这不就“主动请缨”了嘛,而且多数领导不会给你更高分。我几年前试用期绩效自评打了B,领导就给了同等级,还好是试用期。真别等领导主动给高评价!
准备进厂的劳伦斯很迷人:小学时候有个册子 自评 小组 老师 我谦虚打了个b 小组别人给我打b 老师来句我觉得能给他打a 但是小组长说他自评是b怎么能打高呢 那时候我才明白的道理
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务