POJ 2132
我早上调了一个早上,下午才发现把e=edge[e].next写成edge[e].next了。。。
这题直接DFS,一个剪枝是,当当前的最大质因数是最小公倍数的因数时,不用搜索
- #include <iostream>
- #include <cstdio>
- #include <cstring>
- #include <algorithm>
- #include <climits>
- #include <string.h>
- #define LL __int64
- using namespace std;
- const int N=30;
- struct Edge{
- int u,v,w;
- int next;
- }edge[800];
- int tot,n;
- LL res;
- int head[N];
- bool vis[N];
- LL gcd(LL a,LL b){
- if(b==0) return a;
- return gcd(b,a%b);
- }
- LL lcm(LL a,LL b){
- return a*b/gcd(a,b);
- }
- void dfs(LL g,int u){
- if(u==2){
- res=lcm(g,res);
- return ;
- }
- int v; LL tmp;
- for(int e=head[u];e!=-1;e=edge[e].next){
- v=edge[e].v;
- if(!vis[v]){
- vis[v]=true;
- tmp=gcd(g,edge[e].w);
- if(res%tmp)
- dfs(tmp,v);
- vis[v]=false;
- }
- }
- }
- void addedge(int u,int v,int w){
- edge[tot].u=u;
- edge[tot].v=v;
- edge[tot].w=w;
- edge[tot].next=head[u];
- head[u]=tot++;
- }
- int main(){
- while(scanf("%d",&n)!=EOF){
- int tmp;
- memset(head,-1,sizeof(head));
- tot=0;
- res=1;
- for(int i=1;i<=n;i++){
- for(int j=1;j<=n;j++){
- scanf("%d",&tmp);
- if(tmp>0){
- addedge(i,j,tmp);
- }
- }
- }
- memset(vis,false,sizeof(vis));
- vis[1]=true;
- for(int e=head[1];e!=-1;e=edge[e].next){
- vis[edge[e].v]=true;
- dfs(edge[e].w,edge[e].v);
- vis[edge[e].v]=false;
- }
- printf("%I64d\n",res);
- }
- return 0;
- }
POJ 2132的更多相关文章
- POJ 2132 暴搜OR Floyd
题意: 给你一个邻接矩阵(n<=25)问所有1到2路径的gcd的lcm是多少. 一些经验(WA/TLE的经验): 1. 无脑暴搜 是会TLE的--. 2. 关于精度 dyf神牛说了:long l ...
- poj 3311 Hie with the Pie
floyd,旅游问题每个点都要到,可重复,最后回来,dp http://poj.org/problem?id=3311 Hie with the Pie Time Limit: 2000MS Me ...
- POJ 3370. Halloween treats 抽屉原理 / 鸽巢原理
Halloween treats Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7644 Accepted: 2798 ...
- POJ 2356. Find a multiple 抽屉原理 / 鸽巢原理
Find a multiple Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7192 Accepted: 3138 ...
- POJ 2965. The Pilots Brothers' refrigerator 枚举or爆搜or分治
The Pilots Brothers' refrigerator Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22286 ...
- POJ 1753. Flip Game 枚举or爆搜+位压缩,或者高斯消元法
Flip Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 37427 Accepted: 16288 Descr ...
- POJ 3254. Corn Fields 状态压缩DP (入门级)
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9806 Accepted: 5185 Descr ...
- POJ 2739. Sum of Consecutive Prime Numbers
Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 20050 ...
- POJ 2255. Tree Recovery
Tree Recovery Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11939 Accepted: 7493 De ...
随机推荐
- nyoj--745--蚂蚁的难题(二)
蚂蚁的难题(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 下雨了,下雨了,蚂蚁搬家了. 已知有n种食材需要搬走,这些食材从1到n依次排成了一个圈.小蚂蚁对每种食材 ...
- Java-Maven:POM百科
ylbtech-Java-Maven:POM百科 Maven是以项目为中心的设计.POM(project object model)是Maven对一个单一项目的描述.没有POM的话,Maven是毫无用 ...
- k8s traefik ingress tls
使用下面的 openssl 命令生成 CA 证书: $ openssl req -newkey rsa:2048 -nodes -keyout tls.key -x509 -days 365 -out ...
- 利用道格拉斯·普客法(DP法)压缩矢量多边形(C++)
1.算法描述 经典的Douglas-Peucker算法(简称DP法)描述如下: (1)在曲线首尾两点A,B之间连接一条直线AB,该直线为曲线的弦: (2)得到曲线上离该直线段距离最大的点C,计算其与A ...
- xBIM 基础02 快速入门
系列目录 [已更新最新开发文章,点击查看详细] 一.新建项目 Visual Studio 新建项目.项目创建完成后 Nuget ,项目添加 Xbim.Essentials,那么如果项目需要几何 ...
- SqlServer备份恢复
备份 (Transact SQL) | Microsoft Docs https://docs.microsoft.com/zh-cn/sql/t-sql/statements/backup- ...
- 剖析Promise内部结构,一步一步实现一个完整的、能通过所有Test case的Promise类
本文写给有一定Promise使用经验的人,如果你还没有使用过Promise,这篇文章可能不适合你,建议先了解Promise的使用 Promise标准解读 1.只有一个then方法,没有catch,ra ...
- Android学习——Button填充颜色及实现圆角
在drawable下新建文件夹bt_shape.xml,如下: <?xml version="1.0" encoding="utf-8"?> < ...
- wpf 错误 执行了 QueryInterface 调用,请求提供 COM 可见的托管类“BoilerMonitoringV1._0.MapControl”的默认 IDispatch 接口。
在做wpf嵌入地图时,在自定义的WebBrowser 里面使用JavaScript调用外部方法的时报的错误 在原来的WinForm里 我们只要在窗体类设置的头部设置个 [System.Runtime. ...
- mysql Seconds_Behind_Master
通过show slave status查看到的Seconds_Behind_Master,从字面上来看,他是slave落后master的秒数,一般情况下,也确实这样,通过Seconds_Behind_ ...