正题

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


题目大意

给出两张nnn个点mmm条边的无向图,求这两张图是否同构。

1≤n≤200,1≤m≤4000,1≤T≤201\leq n\leq 200,1\leq m\leq 4000,1\leq T\leq 201≤n≤200,1≤m≤4000,1≤T≤20


解题思路

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

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

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

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


code

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=4100,P=1145141;
ll n,m,T,ans,x[N],y[N],a[N],b[N],X[N],Y[N],f[2][N],g[2][N];
signed main()
{scanf("%lld",&T);while(T--){scanf("%lld%lld",&n,&m);ans=1;for(ll i=1;i<=m;i++)scanf("%lld%lld",&x[i],&y[i]);for(ll i=1;i<=m;i++)scanf("%lld%lld",&X[i],&Y[i]);for(ll i=1;i<=n;i++)f[0][i]=g[0][i]=1;for(ll i=1;i<=n;i++){for(ll j=1;j<=n;j++)f[i&1][j]=f[~i&1][j],g[i&1][j]=g[~i&1][j];for(ll j=1;j<=m;j++){(f[i&1][x[j]]+=f[~i&1][y[j]])%=P;(f[i&1][y[j]]+=f[~i&1][x[j]])%=P;(g[i&1][X[j]]+=g[~i&1][Y[j]])%=P;(g[i&1][Y[j]]+=g[~i&1][X[j]])%=P;}for(ll j=1;j<=n;j++)a[j]=f[i&1][j],b[j]=g[i&1][j];sort(a+1,a+1+n);sort(b+1,b+1+n);for(ll j=1;j<=n;j++)if(a[j]!=b[j]){ans=0;break;}if(!ans)break;}if(ans)puts("YES");else puts("NO");}return 0;
}

51nod1676-无向图同构【乱搞】相关推荐

  1. [51nod1676]无向图同构

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

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

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

  3. AcWing 397. 逃不掉的路(边双连通分量缩点成树 + 树链剖分乱搞)

    整理的算法模板合集: ACM模板 我们知道在同一个边双连通分量中的点没有必经边(因为至少有两条分离的路径). 所以我们直接tarjan求出桥后缩点,然后求一下树上两点间的距离即可. 那么如何求树上两点 ...

  4. BZOJ-1800 飞行棋 数学+乱搞

    这道题感觉就是乱搞,O(n^4)都毫无问题 1800: [Ahoi2009]fly 飞行棋 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 1172 So ...

  5. 【BZOJ-3578】GTY的人类基因组计划2 set + map + Hash 乱搞

    3578: GTY的人类基因组计划2 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 367  Solved: 159 [Submit][Status ...

  6. BZOJ4401:块的计数(乱搞)

    Description 小Y最近从同学那里听说了一个十分牛B的高级数据结构--块状树.听说这种数据结构能在sqrt(N)的时间内维护树上的各种信息,十分的高效.当然,无聊的小Y对这种事情毫无兴趣,只是 ...

  7. Luogu3732 [HAOI2017] 供给侧改革 【后缀数组】【线段树】【乱搞】

    题目分析: 这道题我是乱搞的,因为他说$01$串是随机的. 那么我们可以猜测能够让LCP变大的地方很少.求出后缀数组之后可能让LCP变大的地方就等价于从大到小往height里动态加点同时维护这个点左右 ...

  8. 【uoj#209】[UER #6]票数统计 组合数+乱搞

    题目描述 一个长度为 $n$ 的序列,每个位置为 $0$ 或 $1$ 两种.现在给出 $m$ 个限制条件,第 $i$ 个限制条件给出 $x_i$ .$y_i$ ,要求至少满足以下两个条件之一: 序列的 ...

  9. 【NOI2018】你的名字【后缀自动机】【可持久化线段树合并】【乱搞】

    题意:给一个串 SSS,qqq 次询问,每次给定串 TTT 和 l,rl,rl,r ,求有多少个本质不同的串是 TTT 的子串而不是 Sl-rS_{l\dots r}Sl-r​ 的子串. ∣S∣≤5× ...

  10. codeforces1496 D. Let‘s Go Hiking(乱搞+讨论)

    这题我tm服了,考试中途肯定添加了一组数据,提交完A了之后,还有20min结束,感觉写不了下一个题了,就下班了,谁知道它有填了一组测试数据把我的乱搞给卡过去了,我又被fst了???然后我有乱改了一下又 ...

最新文章

  1. html5 直接获取当前位置,HTML5调用百度地图API获取当前位置并直接导航目的地的方法...
  2. 瘫痪小姐姐“自主”行走视频火了,曾借助轮椅完成舞蹈表演,网友:灵魂是战士...
  3. 【错误记录】Android Studio 编译报错 ( Invalid Gradle JDK configuration found )
  4. 火蚁机器人_适度偷懒提高整体效率:火蚁工作方式启发机器人群组协作
  5. 原阿里中供梁法锋:O2O产品的地推管理 | SHARE 2015产品经理O2O论坛实录
  6. c语言删除文件第一行_ElasticSearch 文档的删除和批量操作
  7. [JUC-4]ThreadPoolExecutor源码分析
  8. [转载] 50个数据可视化最有价值的图表(附完整Python代码,建议收藏)
  9. 前端宽度一至显示宽度不一致_便利店装修注意事项,你确定不看看?
  10. 计算机连接双硬盘,电脑如何安装双硬盘
  11. 微信小程序开发——上传图片
  12. 微信小程序自定义Dialog弹框
  13. 包的变量作用域测试说明
  14. 关于计算机上使用的光盘,电脑中使用Windows DVD Maker制作光盘的方法
  15. 关闭计算机休眠文件,电脑垃圾清理关闭休眠文件夹hiberfil.sys
  16. 锂电池充电器设计技巧:从太阳能电池获取更大功率
  17. 销售型呼叫中心系统特点
  18. Location is not available,the folder or directory is corrupted and unreadable
  19. 360悬浮加速小火箭,内存清理,加速缓存
  20. 美国计算机生物学大学,美国计算机大学排名

热门文章

  1. java跨平台的特性_【简答题】什么是跨平台特性?Java怎样实现跨平台特性?
  2. twitter mysql_twitter-mysql改进点
  3. 怎么把c语言转换汇编程序,如何把汇编语言转换成C语言
  4. mongodb时间范围查询少8个小时_为何要对开源mongodb数据库内核做二次开发
  5. layui上传报错会有哪些原因_一到冬天,为什么会比别人更怕冷?有哪些原因?...
  6. 怎样用python批量处理文件夹_python批量处理文件或文件夹
  7. leetcode718. 最长重复子数组
  8. C++实现AOE网中的关键路径算法及机动时间计算算法(邻接表存储)
  9. [JavaWeb-JavaScript]JavaScript_Function函数(方法)对象
  10. LeetCode 142环形链表||-中等