我早上调了一个早上,下午才发现把e=edge[e].next写成edge[e].next了。。。

这题直接DFS,一个剪枝是,当当前的最大质因数是最小公倍数的因数时,不用搜索

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <algorithm>
  5. #include <climits>
  6. #include <string.h>
  7. #define LL __int64
  8. using namespace std;
  9. const int N=30;
  10. struct Edge{
  11. int u,v,w;
  12. int next;
  13. }edge[800];
  14. int tot,n;
  15. LL res;
  16. int head[N];
  17. bool vis[N];
  18.  
  19. LL gcd(LL a,LL b){
  20. if(b==0) return a;
  21. return gcd(b,a%b);
  22. }
  23.  
  24. LL lcm(LL a,LL b){
  25. return a*b/gcd(a,b);
  26. }
  27.  
  28. void dfs(LL g,int u){
  29. if(u==2){
  30. res=lcm(g,res);
  31. return ;
  32. }
  33. int v; LL tmp;
  34. for(int e=head[u];e!=-1;e=edge[e].next){
  35. v=edge[e].v;
  36. if(!vis[v]){
  37. vis[v]=true;
  38. tmp=gcd(g,edge[e].w);
  39. if(res%tmp)
  40. dfs(tmp,v);
  41. vis[v]=false;
  42. }
  43. }
  44. }
  45.  
  46. void addedge(int u,int v,int w){
  47. edge[tot].u=u;
  48. edge[tot].v=v;
  49. edge[tot].w=w;
  50. edge[tot].next=head[u];
  51. head[u]=tot++;
  52. }
  53.  
  54. int main(){
  55. while(scanf("%d",&n)!=EOF){
  56. int tmp;
  57. memset(head,-1,sizeof(head));
  58. tot=0;
  59. res=1;
  60. for(int i=1;i<=n;i++){
  61. for(int j=1;j<=n;j++){
  62. scanf("%d",&tmp);
  63. if(tmp>0){
  64. addedge(i,j,tmp);
  65. }
  66. }
  67. }
  68. memset(vis,false,sizeof(vis));
  69. vis[1]=true;
  70. for(int e=head[1];e!=-1;e=edge[e].next){
  71. vis[edge[e].v]=true;
  72. dfs(edge[e].w,edge[e].v);
  73. vis[edge[e].v]=false;
  74. }
  75. printf("%I64d\n",res);
  76. }
  77. return 0;
  78. }

  

POJ 2132的更多相关文章

  1. POJ 2132 暴搜OR Floyd

    题意: 给你一个邻接矩阵(n<=25)问所有1到2路径的gcd的lcm是多少. 一些经验(WA/TLE的经验): 1. 无脑暴搜 是会TLE的--. 2. 关于精度 dyf神牛说了:long l ...

  2. poj 3311 Hie with the Pie

    floyd,旅游问题每个点都要到,可重复,最后回来,dp http://poj.org/problem?id=3311 Hie with the Pie Time Limit: 2000MS   Me ...

  3. POJ 3370. Halloween treats 抽屉原理 / 鸽巢原理

    Halloween treats Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 7644   Accepted: 2798 ...

  4. POJ 2356. Find a multiple 抽屉原理 / 鸽巢原理

    Find a multiple Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7192   Accepted: 3138   ...

  5. POJ 2965. The Pilots Brothers' refrigerator 枚举or爆搜or分治

    The Pilots Brothers' refrigerator Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 22286 ...

  6. POJ 1753. Flip Game 枚举or爆搜+位压缩,或者高斯消元法

    Flip Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 37427   Accepted: 16288 Descr ...

  7. POJ 3254. Corn Fields 状态压缩DP (入门级)

    Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 9806   Accepted: 5185 Descr ...

  8. POJ 2739. Sum of Consecutive Prime Numbers

    Sum of Consecutive Prime Numbers Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 20050 ...

  9. POJ 2255. Tree Recovery

    Tree Recovery Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11939   Accepted: 7493 De ...

随机推荐

  1. nyoj--745--蚂蚁的难题(二)

    蚂蚁的难题(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 下雨了,下雨了,蚂蚁搬家了. 已知有n种食材需要搬走,这些食材从1到n依次排成了一个圈.小蚂蚁对每种食材 ...

  2. Java-Maven:POM百科

    ylbtech-Java-Maven:POM百科 Maven是以项目为中心的设计.POM(project object model)是Maven对一个单一项目的描述.没有POM的话,Maven是毫无用 ...

  3. k8s traefik ingress tls

    使用下面的 openssl 命令生成 CA 证书: $ openssl req -newkey rsa:2048 -nodes -keyout tls.key -x509 -days 365 -out ...

  4. 利用道格拉斯·普客法(DP法)压缩矢量多边形(C++)

    1.算法描述 经典的Douglas-Peucker算法(简称DP法)描述如下: (1)在曲线首尾两点A,B之间连接一条直线AB,该直线为曲线的弦: (2)得到曲线上离该直线段距离最大的点C,计算其与A ...

  5. xBIM 基础02 快速入门

    系列目录    [已更新最新开发文章,点击查看详细]  一.新建项目 Visual Studio 新建项目.项目创建完成后 Nuget ,项目添加 Xbim.Essentials,那么如果项目需要几何 ...

  6. SqlServer备份恢复

      备份 (Transact SQL) | Microsoft Docs   https://docs.microsoft.com/zh-cn/sql/t-sql/statements/backup- ...

  7. 剖析Promise内部结构,一步一步实现一个完整的、能通过所有Test case的Promise类

    本文写给有一定Promise使用经验的人,如果你还没有使用过Promise,这篇文章可能不适合你,建议先了解Promise的使用 Promise标准解读 1.只有一个then方法,没有catch,ra ...

  8. Android学习——Button填充颜色及实现圆角

    在drawable下新建文件夹bt_shape.xml,如下: <?xml version="1.0" encoding="utf-8"?> < ...

  9. wpf 错误 执行了 QueryInterface 调用,请求提供 COM 可见的托管类“BoilerMonitoringV1._0.MapControl”的默认 IDispatch 接口。

    在做wpf嵌入地图时,在自定义的WebBrowser 里面使用JavaScript调用外部方法的时报的错误 在原来的WinForm里 我们只要在窗体类设置的头部设置个 [System.Runtime. ...

  10. mysql Seconds_Behind_Master

    通过show slave status查看到的Seconds_Behind_Master,从字面上来看,他是slave落后master的秒数,一般情况下,也确实这样,通过Seconds_Behind_ ...