题解 P5068 [Ynoi2015] 我回来了

本文探讨了在无向图中使用Bitset优化查询效率的方法。通过维护距离小于特定值的点集,实现了快速计算满足条件的节点数量。算法采用BFS遍历并结合Bitset位运算,有效减少了计算复杂度。

题目传送门:P5068

Description

珂朵莉给你一个无向图,每次查询的时候给一堆二元组 ( x i , y i ) (x_i,y_i) (xi,yi)

求图中有多少个点 u u u 与至少一个这次询问给出的二元组 ( x i , y i ) (x_i,y_i) (xi,yi) 满足 d i s t ( u , x i ) < = y i dist(u,x_i)<=y_i dist(u,xi)<=yi d i s t dist dist 表示这两个点在图中的距离

如果不连通 d i s t = i n f dist = inf dist=inf

Solution

考虑用 b i t s e t bitset bitset 来维护里一个点距离小于 y i y_i yi 的点,那么答案就是一堆 b i t s e t bitset bitset 或起来后二进制位中 1 1 1 的个数

这样我们只要令 f [ i ] [ j ] f[i][j] f[i][j] 表示距离 i i i 点距离小于 j j j 的点,便可以高效求出答案。

先枚举起点 u u u ,因为边权为 1 1 1 ,所以只需要做一次 bfs 。

对于 i i i 这个点,假设它到 u u u 的距离为 d i s i dis_i disi ,那么我们就将 f [ u ] [ d i s i ] f[u][dis_i] f[u][disi] 的第 i i i 位设为 1 1 1 ,最后从小到大把 f [ u ] [ j ] f[u][j] f[u][j] 或上 f [ u ] [ j − 1 ] f[u][j - 1] f[u][j1] 即可

复杂度是 n 3 64 + ( ∑ i = 1 q a i ) × n 64 \frac{n^3}{64} + (\sum\limits_{i=1}^{q}a_i)\times\frac{n}{64} 64n3+(i=1qai)×64n ,可以通过此题。

Code

内容概要:本文围绕基于Wasserstein生成对抗网络(W-GAN)的光伏场景生成程序展开研究,提出了一种利用W-GAN生成高精度、高波动性光伏出力场景的方法,以应对新能源发电中的不确定性挑战。研究通过构建生成器与判别器之间的对抗训练机制,有效捕捉光伏出力的时间序列特征与统计分布规律,生成符合实际运行条件的多样化场景数据,弥补实测数据稀缺问题。相较于传统GAN,W-GAN引入Wasserstein距离作为损失函数,显著提升了模型训练的稳定性与梯度传播的连续性,增强了生成样本的质量与多样性。文中还提供了完整的Python代码实现,便于读者复现与拓展。; 适合人群:具备一定Python编程能力、深度学习基础的研究生、科研人员,以及从事新能源电力系统规划、优化调度、不确定性建模等相关领域的工程师和技术人员。; 使用场景及目标:①用于电力系统中可再生能源出力的不确定性建模与风险评估;②支撑微电网、综合能源系统等场景下的随机优化、鲁棒优化与分布鲁棒优化研究;③为风光互补系统、储能配置、需求响应等应用提供高质量、多样化的输入场景;④帮助研究人员掌握深度学习在能源时序数据生成中的前沿应用,推动模型迁移至风电、负荷等其他场景生成任务。; 阅读建议:建议读者结合提供的Python代码进行动手实践,深入理解W-GAN的网络架构设计、损失函数构造、训练技巧及超参数调优策略,重点关注Wasserstein距离在缓解模式崩溃与梯度消失问题中的作用,并尝试将该框架拓展至多变量、多站点或多能源联合场景生成,提升模型的泛化能力与工程实用价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值