正题

题目连接:http://www.51nod.com/Challenge/Problem.html#problemId=1676


题目大意

给出两张\(n\)个点\(m\)条边的无向图,求这两张图是否同构。

\(1\leq n\leq 200,1\leq m\leq 4000,1\leq T\leq 20\)


解题思路

方法应该有挺多的,反正大概就是要找到这张图的与编号无关的信息。

这里用的是路径数量,对于\(i\in[1,n]\)我们求出每个点出发长度为\(i\)的路径数量,然后排序比较就好了。

应该找不到反例,找个比较奇怪的质数应该就卡不掉了。

时间复杂度\(O(Tnm)\)


code

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<algorithm>
  4. #define ll long long
  5. using namespace std;
  6. const ll N=4100,P=1145141;
  7. ll n,m,T,ans,x[N],y[N],a[N],b[N],X[N],Y[N],f[2][N],g[2][N];
  8. signed main()
  9. {
  10. scanf("%lld",&T);
  11. while(T--){
  12. scanf("%lld%lld",&n,&m);ans=1;
  13. for(ll i=1;i<=m;i++)scanf("%lld%lld",&x[i],&y[i]);
  14. for(ll i=1;i<=m;i++)scanf("%lld%lld",&X[i],&Y[i]);
  15. for(ll i=1;i<=n;i++)f[0][i]=g[0][i]=1;
  16. for(ll i=1;i<=n;i++){
  17. for(ll j=1;j<=n;j++)
  18. f[i&1][j]=f[~i&1][j],g[i&1][j]=g[~i&1][j];
  19. for(ll j=1;j<=m;j++){
  20. (f[i&1][x[j]]+=f[~i&1][y[j]])%=P;
  21. (f[i&1][y[j]]+=f[~i&1][x[j]])%=P;
  22. (g[i&1][X[j]]+=g[~i&1][Y[j]])%=P;
  23. (g[i&1][Y[j]]+=g[~i&1][X[j]])%=P;
  24. }
  25. for(ll j=1;j<=n;j++)
  26. a[j]=f[i&1][j],b[j]=g[i&1][j];
  27. sort(a+1,a+1+n);sort(b+1,b+1+n);
  28. for(ll j=1;j<=n;j++)
  29. if(a[j]!=b[j]){ans=0;break;}
  30. if(!ans)break;
  31. }
  32. if(ans)puts("YES");
  33. else puts("NO");
  34. }
  35. return 0;
  36. }

51nod1676-无向图同构【乱搞】的更多相关文章

  1. [51nod1676]无向图同构

    如果一个无向图重标号后与另一个无向图完全一致(即对于任意两点,他们之间的边在两个图中都存在或都不存在),则称两个无向图同构. 给定两个n个点m条边的无向图,判定两个无向图是否同构.不超过20组数据,n ...

  2. BZOJ-1050 旅行comf 并查集+乱搞

    好久以前codevs上做过的,拿着改了改.. 1050: [HAOI2006]旅行comf Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2194 S ...

  3. bzoj 1050: [HAOI2006]旅行comf(codevs.cn 1001 舒适的路线) 快排+并查集乱搞

    没用的话:好像很久没发博客了,主要是懒太蒟找不到水题.我绝对没弃坑...^_^ 还用些话:本文为博主原创文章,若转载请注明原网址和作者. 进入正题: 先pa网址: bzoj :http://www.l ...

  4. BZOJ_2801_[Poi2012]Minimalist Security_dfs树+特判+乱搞

    BZOJ_2801_[Poi2012]Minimalist Security_dfs树+特判+乱搞 Description 给出一个N个顶点.M条边的无向图,边(u,v)有权值w(u,v),顶点i也有 ...

  5. CodeForces - 1228D (暴力+思维+乱搞)

    题意 https://vjudge.net/problem/CodeForces-1228D 有一个n个顶点m条边的无向图,在一对顶点中最多有一条边. 设v1,v2是两个不相交的非空子集,当满足以下条 ...

  6. Codeforces 1186F - Vus the Cossack and a Graph 模拟乱搞/欧拉回路

    题意:给你一张无向图,要求对这张图进行删边操作,要求删边之后的图的总边数 >= ceil((n + m) / 2), 每个点的度数 >= ceil(deg[i] / 2).(deg[i]是 ...

  7. URAL 1827 Indigenous Wars(排序、乱搞)

    题意:给一个长度为n数组{a[i]}.有m个操作Ti,Si,Li表示找以Ti值结束,以Si值开始,长度为Li的连续子串.找到后,将区间的答案值设为1.一开始答案值全部为0.最后输出n个答案值. 好久没 ...

  8. UVA 11853 [dfs乱搞]

    /* 大连热身E题 不要低头,不要放弃,不要气馁,不要慌张 题意: 在1000×1000的格子内有很多个炮弹中心,半径给定. 为某人能否从西部边界出发,从东部边界走出. 不能输出不能,能的话输出最北边 ...

  9. Codeforces 732e [贪心][stl乱搞]

    /* 不要低头,不要放弃,不要气馁,不要慌张 题意: 给n个插座,m个电脑.每个插座都有一个电压,每个电脑都有需求电压. 每个插座可以接若干变压器,每个变压器可以使得电压变为x/2上取整. 有无限个变 ...

  10. 【BZOJ-4692】Beautiful Spacing 二分答案 + 乱搞(DP?)

    4692: Beautiful Spacing Time Limit: 15 Sec  Memory Limit: 128 MBSubmit: 46  Solved: 21[Submit][Statu ...

随机推荐

  1. 【springboot】整合 MyBatis

    转自:https://blog.csdn.net/cp026la/article/details/86493503 1. 简介: 目前,国内大部分公司都使用 MyBatis作为持久层框架.本章整合My ...

  2. .static 和const分别怎么用,类里面static和const可以同时修饰成员函数吗。

    static的作用: 对变量: 1.局部变量: 在局部变量之前加上关键字static,局部变量就被定义成为一个局部静态变量. 1)内存中的位置:静态存储区 2)初始化:局部的静态变量只能被初始化一次, ...

  3. Redis5.0 配置文件中文参考

    Redis 5.0 配置文件#是否在后台执行,yes:后台运行:no:不是后台运行daemonize yes#是否开启保护模式,默认开启.要是配置里没有指定bind和密码.开启该参数后,redis只会 ...

  4. sizeof()和 strlen()的区别 --- 个人笔记

    在学习C语言和linux的时候,遇到了一些常见问题.题目,有些很简单,有些容易出错,本人水平有限,未免会出错,今天有时间,就将以前做的笔记,一一拿出来,写写blog. sizeof()和 strlen ...

  5. 线程池ExecutorService的使用

    转载自: 海子 Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短 ...

  6. C# - 习题02_写出程序的输出结果a.Fun()

    时间:2017-08-23 整理:byzqy 题目:写出程序的输出结果: 文件:Program.cs 1 using System; 2 3 namespace Interview1 4 { 5 pu ...

  7. linux centos7 “git clone https://github.com/XXXXX” 报错解决方法

    2021-08-04 1. 问题描述 在执行以下命令时出现错误"正克隆到 'XXXXX'... fatal: unable to access 'https://github.com/lag ...

  8. spring整合jdbc方法一

    用了一段时间的spring这,闲来没事做一下spring整合jdbc 目录文件 导入jar包 由于spring的jar包是在myeclipse中自动导入的有些暂时用不到的也没有处理. Emp类 pac ...

  9. Django的form组件——自定义校验函数

    from django.shortcuts import render,HttpResponse from django import forms from django.core.exception ...

  10. Android系统编程入门系列之应用内数据保存数据库

    上篇文章已经介绍了如何使用SharedPreferences存储键值对形式的轻量级数据,对于那些相同结构的多组数据,类似于存储Java中定义的类的多个对象属性值,如果按照键值对的形式一条条读写,需要分 ...