HDU - 4324 Triangle LOVE

本文讨论了使用深度优先搜索(DFS)算法解决图中是否存在三角关系的问题。通过DFS标号,若发现一趟搜索中节点间标号差为2的情况,则表明存在三角关系。文章指出在判断标号差时的潜在问题,并通过改进代码确保标号递增,从而避免误判。通过对比分析,展示了正确实现与错误实现的区别,并提供了有效的解决方案。

思路就是简单的dfs+标号, 若发现一趟dfs中又标号差2的, 则存在三角关系.

但写了N久还是wa....

有一个地方我觉得是有问题的, 就是在判断标号差2的时候, 有可能v的标号是前一趟dfs的而不是当前趟dfs的,

所以v的标号就不能说明什么问题了...这样可能导致wa

简言之就是要在判断的时候保证选的v都是当前趟dfs标号的.

看了 http://blog.ac521.org/?p=502&cpage=1#comment-181 的题解,

比对了后发现我是 标号差2写成了判断绝对值, 而他就是默认当前是较大的(这样没错, 但是不能解决我上面说的那个问题, 也就是说题目数据不完备, 能wa掉我, 不能wa掉他...?)

下面这代码是保证标号始终递增的, 从而解决了上述问题.


代码:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
#include<string>
#include<vector>
#include<map>
using namespace std;
int Rint() { int x; scanf("%d", &x); return x; }
#define FOR(i, a, b) for(int i=(a); i<=(b); i++)
#define FORD(i,a,b) for(int i=(a);i>=(b);i--)
#define REP(x) for(int i=0; i<(x); i++)
typedef long long int64;
#define INF (1<<30)
#define bug(s) cout<<#s<<"="<<s<<" "

#define MAXN 2002
int G[MAXN][MAXN];
int dfn[MAXN];		//标号
int n;

int abs(int x) { return x<0? -x: x; }

int idx;		//当前最大标号

int dfs(int u, int t)
{
	dfn[u] = t;
	idx = max(idx, t);
	int ret = 0;
	for(int i=0; i<n; i++) if(G[u][i])
	{
		if(!dfn[i])
		{
			ret |= dfs(i, t+1);
		}
		else
		{
			if(dfn[i] + 2==t)		//若 i 是上一个连通快的, 则 dfn[i]必然小于 t
				return 1;		//存在 
		}
	}
	return ret;
}

int solve()
{
	REP(n)
	{
		if(!dfn[i])
		{
			if(dfs(i, idx+1))	//始终从当前最大标号+1开始标记
			{
				return 1;	//cunzai
			}
		}
	}
	return 0;
}

int main()
{
	int t = Rint();
	FOR(T, 1, t)
	{
		idx = 0;
		memset(dfn, 0,sizeof(dfn));
		printf("Case #%d: ", T);
		n = Rint();
		FOR(i, 0, n-1)
		{
			char buf[MAXN];
			scanf("%s", buf);
			FOR(j, 0, n-1)
			{
				G[i][j] = buf[j]-'0';
			}
		}
		if(solve())
			printf("Yes\n");
		else
			printf("No\n");
	}
}


【顶级EI完整复现】【DRCC】考虑N-1准则的分布鲁棒机会约束低碳经济调度(Matlab代码实现)内容概要:本文介绍了名为《【顶级EI完整复现】【DRCC】考虑N-1准则的分布鲁棒机会约束低碳经济调度(Matlab代码实现)》的技术资源,聚焦于电力系统中低碳经济调度问题,结合N-1安全准则与分布鲁棒机会约束(DRCC)方法,提升调度模型在不确定性环境下的鲁棒性和可行性。该资源提供了完整的Matlab代码实现,涵盖建模、优化求解及仿真分析全过程,适用于复杂电力系统调度场景的科研复现与算法验证。文中还列举了大量相关领域的研究主题与代码资源,涉及智能优化算法、机器学习、电力系统管理、路径规划等多个方向,展示了广泛的科研应用支持能力。; 适合人群:具备一定电力系统、优化理论和Matlab编程基础的研究生、科研人员及从事能源调度、智能电网相关工作的工程师。; 使用场景及目标:①复现高水平期刊(如EI/SCI)关于低碳经济调度的研究成果;②深入理解N-1安全约束与分布鲁棒优化在电力调度中的建模方法;③开展含新能源接入的电力系统不确定性优化研究;④为科研项目、论文撰写或工程应用提供可运行的算法原型和技术支撑。; 阅读建议:建议读者结合文档提供的网盘资源,下载完整代码与案例数据,按照目录顺序逐步学习,并重点理解DRCC建模思想与Matlab/YALMIP/CPLEX等工具的集成使用方式,同时可参考文中列出的同类研究方向拓展研究思路。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值