Integer Intervals POJ - 1716_查分约束_

本文深入探讨了SPFA(Shortest Path Faster Algorithm)最短路径算法的实现原理及应用,通过具体代码示例展示了如何使用SPFA算法在有向图中寻找从源点到其余各点的最短路径。特别关注了算法中的关键数据结构,如队列和邻接表,以及如何优化算法以提高效率。

Code:

#include<cstdio>
#include<queue>
#include<algorithm>
using namespace std;
const int N=500000+3;
const int INF=-233333333+2;
int head[N],to[N<<1],nex[N<<1],val[N<<1],d[N],inq[N];
queue<int>Q;
int cnt,s,t,n;
void add_edge(int u,int v,int c)
{
	nex[++cnt]=head[u],head[u]=cnt;
	to[cnt]=v,val[cnt]=c;
}
int spfa()
{
	for(int i=1;i<=n;++i)d[i]=INF;
	d[s]=0;Q.push(s);inq[s]=1;
    while(!Q.empty())
    {
    	int u=Q.front();Q.pop();
    	inq[u]=0;
    	for(int v=head[u];v;v=nex[v])
    		if(d[u]+val[v]>d[to[v]])
    		{
    			d[to[v]]=d[u]+val[v];
    			if(inq[to[v]]==0)
    			{
    				Q.push(to[v]);
    				inq[to[v]]=1;
    			}
    		}
    }
    return d[t];
}
int main()
{
	int MIN=N,MAX=0;
	scanf("%d",&n);
	for(int i=1;i<=n;++i)
	{
		int a,b;
		scanf("%d%d",&a,&b);
		MIN=min(MIN,a); MAX=max(MAX,b);
		add_edge(a,b+1,2);
	}
	for(int i=MIN;i<=MAX;++i)
	{
		add_edge(i+1,i,-1);
		add_edge(i,i+1,0);
	}
	s=MIN,t=MAX+1;
	printf("%d",spfa());
	return 0;
}
### Python脚本参数解析 以下是对`main.py`和`test.py`中每行命令的功能及参数的详细解释,包括Python脚本参数、CUDA环境配置以及深度学习模型训练的配置选项。 ```python python test.py ddd \ --exp_id centerfusion \ --dataset nuscenes \ --val_split mini_val \ --run_dataset_eval \ --num_workers 4 \ --nuscenes_att \ --velocity \ --gpus 0 \ --pointcloud \ --radar_sweeps 3 \ --max_pc_dist 60.0 \ --pc_z_offset -0.0 \ --load_model ../models/centerfusion_e60.pth \ --flip_test \ --debug 4 ``` 1. **`python test.py ddd`** 这是运行测试脚本的命令。`test.py` 是一个用于测试已训练模型性能的脚本,而 `ddd` 表示任务类型为 3D 目标检测[^1]。 2. **`--exp_id centerfusion`** 定义实验的唯一标识符为 `centerfusion`,通常用于区分不同的实验配置或模型版本。 3. **`--dataset nuscenes`** 指定数据集为 `nuscenes`,这是一个大规模自动驾驶数据集,包含丰富的传感器数据(如 LiDAR 和摄像头)[^2]。 4. **`--val_split mini_val`** 设置验证集的划分方式为 `mini_val`,表示使用较小的验证子集进行快速评估[^1]。 5. **`--run_dataset_eval`** 启用数据集自带的评估工具,在测试完成后自动运行评估以生成性能指标[^2]。 6. **`--num_workers 4`** 设置数据加载器的工作线程数为 4,加速数据预处理和加载过程[^1]。 7. **`--nuscenes_att`** 启用 `nuscenes` 数据集中特定属性(如物体类别、动作等)的预测功能[^2]。 8. **`--velocity`** 启用速度预测功能,使模型输出目标的速度信息。 9. **`--gpus 0`** 指定使用的 GPU 设备编号为 0,表示仅使用第一块 GPU 进行推理。 10. **`--pointcloud`** 启用点云数据处理功能,表明模型会利用 LiDAR 点云数据进行推理[^2]。 11. **`--radar_sweeps 3`** 设置雷达扫描帧数为 3,表示模型将融合连续 3 帧的雷达数据进行推理。 12. **`--max_pc_dist 60.0`** 设置点云的最大有效距离为 60 米,超出此范围的点云数据将被忽略。 13. **`--pc_z_offset -0.0`** 设置点云 Z 轴的偏移量为 -0.0,用于校正点云的高度偏差[^2]。 14. **`--load_model ../models/centerfusion_e60.pth`** 加载预训练模型权重文件 `../models/centerfusion_e60.pth`,确保模型从已有训练结果开始推理[^1]。 15. **`--flip_test`** 启用翻转测试增强功能,通过水平翻转输入图像来提高预测精度。 16. **`--debug 4`** 设置调试模式级别为 4,用于输出更多的中间结果和可视化信息,便于调试和分析[^1]。 --- ### CUDA环境配置解析 1. **`CUDA_VISIBLE_DEVICES`** 该环境变量用于限制可见的 GPU 设备。例如,`export CUDA_VISIBLE_DEVICES=0,1` 将只允许程序访问第 0 和第 1 块 GPU[^1]。 2. **`CUDA_DEVICE_ORDER`** 该环境变量用于定义 GPU 设备的排序规则。默认值为 `PCI_BUS_ID`,表示按照 PCI 总线 ID 的顺序排列 GPU[^1]。 --- ### 示例代码 以下是一个设置 CUDA 环境变量的示例: ```bash export CUDA_VISIBLE_DEVICES=0,1 export CUDA_DEVICE_ORDER=PCI_BUS_ID ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值