二维并查集

例题

 

这个是并查集在二维数组上的应用,很少巧妙,但是也比较简单,但是很难想到,也就是说当起点与中点都在一个集合里了,那么就能围成一个圈了

#include<bits/stdc++.h>
using namespace std;
struct node
{
    int x,y;
}f[500][500];
int n,m;

node findth(node k)
{
    if((f[k.x][k.y].x==k.x)&&(f[k.x][k.y].y==k.y)) return k;
    return f[k.x][k.y]=findth(f[k.x][k.y]);
}
int main()
{
    scanf("%d %d",&n,&m);
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            f[i][j].x=i;
            f[i][j].y=j;
        }
    }
    node k1,k2;
    for(int i=1;i<=m;i++){
        int a,b;
        char c;
        scanf("%d %d %c",&a,&b,&c);
        if(c=='D'){
            k1=findth(f[a][b]);
            k2=findth(f[a+1][b]);
        }
        if(c=='R'){
            k1=findth(f[a][b]);
            k2=findth(f[a][b+1]);
        }
        if((k1.x==k2.x)&&(k1.y==k2.y)){
            printf("%d\n",i);
            return 0;
        }
        else f[k2.x][k2.y]=k1;
    }
    printf("draw\n");
    return 0;
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
xls二维结构数据表转txt数据文本等4小工具集包括xls二维结构数据表转txt数据文本、csv数据文本、mysql语句及数据预览小工具。 xls二维结构数据表转txt数据文本等4小工具集 v1.2更新日志 改进读取方式,解决读取部分文件卡死问题。 纠正四种功能中的两种方式重复读取第一列问题。 xls二维结构数据表转txt数据文本等4小工具集功能 原理:读取.xls文件并显示为制表符分隔.txt格式文本,支持多表。 另1:dohtml.asp可预览xls效果。你可右键查看源文件将.xls格式转html代码。 另2:dosqls.asp可读取.xls得到mysql导入数据库语句。 另3:docsvs.asp可读取.xls得到.csv格式文本内容。 技巧要点 1. .xls文件格式为win97-2003工作表(.xls) 2. 一般用于二维结构表的转化(首行各列的列标题)。 3. 该功能可以在普通windows电脑 netbox软件本地使用。 使用步骤 将本源码放到asp网站空间,并通过域名 文件夹名称访问 访问格式:http://域名/文件夹名称/ 1. 另存为.xls格式的二维结果表为win97-2003工作表(.xls) 2. 放到shujukufangzheli文件夹下。 3. 刷新访问该功能页面,选择新的文件对应的下拉后提交 4. 得到文本内容,稍加处理后得到查询系统可用数据 其他用途(.csv) 将得到的文本内容英文逗号替换为中文逗号 再将文本内容中的制表符替换为逗号即可 用于本人开发的php csv系列通用查询系统。 其他用途(.xls) 将得到的文本内容复制回excel。 如果有异常,请将空白表全选后设置单元格格式为文本再粘贴复制过来的内容。 可用于本人开发的php xls/asp xls系列通用查询系统。 其他用途(.html) 访问dohtml.asp对应网址可以将.xls格式转为html(你可右键查看源文件)。 其他用途(mysqls) 以及方便数据的导入,比如csv导入access等。 xls二维结构数据表转txt数据文本等4小工具集截图 相关阅读 同类推荐:站长常用源码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值