第六届蓝桥杯决赛B组C/C++——关联账户

标题:关联账户

为增大反腐力度,某地警方专门支队,对若干银行账户展开调查。如果两个账户间发生过转账,则认为有关联。如果a,b间有关联, b,c间有关联,则认为a,c间也有关联。对于调查范围内的n个账户(编号0到n-1),警方已知道m条因转账引起的直接关联。

现在希望知道任意给定的两个账户,求出它们间是否有关联。有关联的输出1,没有关联输出0

小明给出了如下的解决方案:

#include <stdio.h>
#define N 100

int connected(int* m, int p, int q)
{
	return m[p]==m[q]? 1 : 0;
}

void link(int* m, int p, int q)
{
	int i;
	if(connected(m,p,q)) return;
	int pID = m[p];
	int qID = m[q];
	for(i=0; i<N; i++) _____________________________________;  //填空位置
}

int main()
{
	int m[N];
	int i;
	for(i=0; i<N; i++) m[i] = i; //初始状态,每个节点自成一个连通域
	link(m,0,1); //添加两个账户间的转账关联
	link(m,1,2); 
	link(m,3,4); 
	link(m,5,6); 
	link(m,6,7); 
	link(m,8,9); 
	link(m,3,7); 
	
	printf("%d ", connected(m,4,7));
	printf("%d ", connected(m,4,5));
	printf("%d ", connected(m,7,9));
	printf("%d ", connected(m,9,2));
	return 0;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏博岩Java大讲堂

支付--出款中如何计费

出款系统来说: 付款方就是出款的源头(通常为商户),收款方就是收钱的那一方(通常为个人)

681
来自专栏蜉蝣禅修之道

以太坊DApp系列(二)---从入门到出家

以太坊自2013年V神提出后,被无数人赋予美好的愿景,甚至被称为区块链2.0,其代币发行量更是达到了全球第二,仅次于比特币,而其带来的智能合约概念颠覆了人们对区...

89518
来自专栏区块链大本营

“危机四伏”的以太转账操作|以太转账安全风险——漏洞分析连载之八期

Solidity语言的默认存储规则和引用未初始化变量带来的特殊性共同导致了未初始化变量将原有状态变量覆盖,占用了状态变量在Storage中的位置,重演了最近“高...

892
来自专栏区块链入门

【 链安科技】constructor函数使用漏洞

2018年7月12日,成都链安科技(LianAn Technology)智能合约审计小组使用自主研发的VaaS平台对以太坊链上智能合约进行安全审计的过程中,发现...

783
来自专栏极客编程

JavaScript实现简单区块链

用JavaScript来实现一个简单的区块链。通过实现过程,你将理解区块链是什么:区块链就是一个分布式数据库,存储结构是一个不断增长的链表,链表中包含着许多有序...

931
来自专栏FreeBuf

浅析AMR智能合约批量转账溢出漏洞

日前,互联网爆出AMR合约存在高危安全风险的交易,该合约存在批量转账溢出漏洞,当合约实现批量转账功能时,容易在计算通证增加量时发生溢出漏洞,BUGX.IO安全团...

993
来自专栏友弟技术工作室

以太坊ERC20协议以及发行自己代币

ERC-20 标准是在2015年11月份推出的,使用这种规则的代币,表现出一种通用的和可预测的方式。

361
来自专栏FreeBuf

空手套白狼?USDT 假充值逻辑缺陷漏洞利用分析

6月28日,慢雾科技发布了一条针对 USDT 的预警和漏洞分析,提醒各大交易所尽快暂停 USDT 充值功能,并自查代码是否存在该逻辑缺陷。全文如下:

1613
来自专栏区块链大本营

嘿,程序员!手把手教你写出智能合约Hello, World

6649
来自专栏区块链大本营

80%开发者都不知道的以太坊骚操作:「事件」和「日志」还可以这么玩!

1573

扫码关注云+社区