codevs 2833 奇怪的梦境 拓扑排序

本文介绍了一道名为“奇怪的梦境”的编程题,通过使用拓扑排序算法来解决该问题。主要思路是遍历所有节点的出度,并减少相邻节点的入度,最终判断是否能完成全部任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


传送门:codevs2833奇怪的梦境


题目大意:额···中文题···


解题思路:拓扑排序, 就是遍历所有数的出度, 找出有没有环。  代码思路:遍历所有数的出度,将遍历到的数入度减一,  所有数的入度均为0时就可以将所有数都按下。


AC代码:

#include <iostream>
#include <cstdio>
#include <vector>
#include <queue>

using namespace std;

vector<int> to[10005];
queue<int> que;
int rd[10005];

void Build(int a, int b)
{
	to[a].push_back(b);
	rd[b]++;
}

int toposort(int n)
{
	int cnt = 0;
	for(int i=1; i<=n; i++)
		if(!rd[i])
		{
			cnt++;
			que.push(i);
		}
	while(!que.empty())
	{
		int f = que.front();  que.pop();
		for(int i=0; i<to[f].size(); i++)
		{
			int v = to[f][i];
			rd[v]--;
			if(!rd[v])
			{
				que.push(v);
				cnt++;
			}
		}
	}
	return cnt;
}

int main()
{
	int n, m;
	scanf("%d%d", &n, &m);
	int a, b;
	for(int i=0; i<m; i++)
	{
		scanf("%d%d", &a, &b);
		Build(a, b);
	}
	int sum = toposort(n);
	if(sum >= n) printf("o(∩_∩)o\n");
	else printf("T_T\n%d\n", n - sum);
	return 0;
}


### 关于梦境生成优化算法的研究 #### 梦境生成优化算法的核心概念 梦境生成优化算法通常涉及复杂的机器学习框架,特别是基于生成对抗网络(GANs)的技术。为了提升这些算法的效率和效果,可以采用多种先进的训练策略和技术。例如,在优化训练方面,可以通过引入自适应梯度下降法或多任务学习来增强模型性能[^1]。 此外,针对特定应用场景的需求,如数字化梦境工程的设计与实现,需要持续关注技术的发展趋势,并通过技术创新推动应用落地。这一过程不仅依赖于基础理论的进步,还需要结合实际需求调整算法参数和结构[^2]。 #### DOA中的改进方向 在梦境优化算法(DOA, Dream Optimization Algorithm)中,一种有效的改进方式是利用梦境共享策略。这种策略能够显著改善局部最优解的逃逸能力,从而帮助模型跳出次优状态。具体而言,该策略允许个体间交换位置信息,促进种群多样性的同时保持收敛速度[^3]。 以下是其核心更新公式的简化版本: ```python def update_position(individual, population): """ 更新个体的位置信息。 参数: individual (list): 当前个体的位置向量。 population (list of lists): 种群的所有位置向量集合。 返回: list: 新的个体位置向量。 """ import random new_individual = [] for i in range(len(individual)): if random.random() < memory_rate: # 遵循记忆策略的概率 new_value = individual[i] elif random.random() < sharing_rate: # 使用梦境共享策略的概率 other_indiv = random.choice(population) new_value = other_indiv[i] else: # 随机探索 new_value = random.uniform(lower_bound, upper_bound) new_individual.append(new_value) return new_individual ``` 此代码片段展示了如何通过概率机制平衡记忆保留、群体交互以及随机探索之间的关系,进一步提升了算法的整体表现。 #### 技术栈的选择及其影响 对于任何大规模项目的实施来说,合理选择技术支持至关重要。当前主流的技术架构往往集成了高性能编程语言、分布式计算平台以及可靠的存储解决方案。这样的配置有助于保障系统的稳定性和扩展性,同时也为复杂算法提供了必要的硬件支持[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值