AtCoder ABC232 C - Graph Isomorphism

12 篇文章 0 订阅
5 篇文章 0 订阅

纪念一次蠢到爆的 a b c abc abc题目传送门
可能太久没打了吧,总之就是非常蠢,c题求的是图的同构,刚开始就觉得只是个 n p np np问题但是复杂度很低,用暴力一定能出来,但是一时间就想不到怎么暴力,就用最容易想到的方法,把图的入度对应,结果只有一个测试点 w a wa wa,想着随机数一下运气好就过了,结果 a b c abc abc半分钟只能提交一次,我傻傻的在那提交了两页还是没过,由于思维惰性也没去想暴力的事,最后计算了一下随机化过的概率微乎其微,蠢到家了。其实这题一个全排列能做的事,也太久没用就没去想,应以为戒,比赛还是不能停,全想着靠队友那根本就什么时都做不成,为了下半年的天梯赛,浙江省赛,区域赛,这点水平是远远不够的,还得把自己的思维磨砺更敏锐一点才行,也不要依赖随机数过题,毕竟是灰色战术。
代码:

#include <bits/stdc++.h>

using namespace std;

int p[9] = {0, 1, 2, 3, 4, 5, 6, 7, 8};
int n, m, g[10][10], h[10][10];

signed main() {

	cin >> n >> m;
	for(int i = 1, x, y; i <= m; i ++) cin >> x >> y, g[x][y] = g[y][x] = true;
	for(int i = 1, x, y; i <= m; i ++) cin >> x >> y, h[x][y] = h[y][x] = true;

	do {
		
		int f = 1;
		for(int i = 1; i <= n && f; i ++)
			for(int j = 1; j <= n && f; j ++)
				if(g[i][j] ^ h[p[i]][p[j]]) f = 0;
		if(f) {
			puts("Yes");
			return 0;
		}
		
	} while(next_permutation(p + 1, p + n + 1));


	puts("No");
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

某六十九岁合法萝莉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值