HDU 2544(最短路模板题——dijkstra)

题目

该题就是dijkstra的一个模板,主要是要记住模板,和对模板的使用

AC代码:

import java.io.*;
import java.math.*;
import java.math.BigInteger;
import java.util.*;

public class Main {
	static final int N=1050;
	static final int INF=0x3f3f3f3f;
	static int u,v,w,s,t,n,m;
	static int arr[][]=new int [N][N];
	static int a[]=new int [N];
	static boolean bool[]=new boolean[N];
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		for(;;) {
			
			n=sc.nextInt();//路口数量,1为商店所在地
			m=sc.nextInt();//路的数量
			if(n==0&&m==0)break;
			//A,B,C:AB之间有条路,需要时间C
			for(int i=0;i<N;i++) {
				for(int j=0;j<N;j++) {
					arr[i][j]=INF;
				}
			}
			for(int i=0;i<m;i++) {
				u=sc.nextInt();
				v=sc.nextInt();
				w=sc.nextInt();
				arr[u][v]=arr[v][u]=w;
			}
			s=1;
			t=n;
			dijkstra();
			System.out.println(a[t]);
		}
	}
	private static void dijkstra() {
		for(int i=1;i<N;i++) {
			a[i]=INF;
			bool[i]=false;
		}
		a[s]=0;
		for(int i=0;i<n;i++) {
			int k=-1;
			int min=INF;
			for(int j=1;j<=n;j++) {
				if(!bool[j]&&a[j]<min) {
					min=a[j];
					k=j;
				}
			}
			if(k==-1)break;
			bool[k]=true;
			for(int j=1;j<=n;j++) {
				if(!bool[j]&&a[k]+arr[k][j]<a[j]) {
					a[j]=a[k]+arr[k][j];
				}
			}
		}
	}
}
内容概要:本文探讨了在微电网优化中如何处理风光能源的不确定性,特别是通过引入机会约束和概率序列的方法。首先介绍了风光能源的随机性和波动性带来的挑战,然后详细解释了机会约束的概念,即在一定概率水平下放松约束条件,从而提高模型灵活性。接着讨论了概率序列的应用,它通过对历史数据分析生成多个可能的风光发电场景及其概率,以此为基础构建优化模型的目标函数和约束条件。文中提供了具体的Matlab代码示例,演示了如何利用CPLEX求解器解决此类优化问题,并强调了参数选择、模型构建、约束添加以及求解过程中应注意的技术细节。此外,还提到了一些实用技巧,如通过调整MIP gap提升求解效率,使用K-means聚类减少场景数量以降低计算复杂度等。 适合人群:从事电力系统研究、微电网设计与运营的专业人士,尤其是那些对风光不确定性建模感兴趣的研究者和技术人员。 使用场景及目标:适用于需要评估和优化含有大量间歇性可再生能源接入的微电网系统,旨在提高系统的经济性和稳定性,确保在面对风光出力波动时仍能维持正常运作。 其他说明:文中提到的方法不仅有助于学术研究,也可应用于实际工程项目中,帮助工程师们制定更为稳健的微电网调度计划。同时,文中提供的代码片段可供读者参考并应用于类似的问题情境中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值