最短路专题

解题报告:【kuangbin带你飞】专题四 最短路练习题 最短路合集 阅读详情

最短路

F l o y d Floyd Floyd 算法 O ( n 3 ) O(n^3) O(n3)

最短路

	for(register int k=1;k<=n;k++)
		for(register int i=1;i<=n;i++)
			for(register int j=1;j<=n;j++)
				Dp[i][j]=min(Dp[i][j],Dp[i][k]+Dp[k][j]);

判负环

如果 D p x , y < 0 Dp_{x,y}<0 Dpx,y​<0 那么存在负环 . . .
可以运用动态规划输出路径的方法输出负环 . . .

传递闭包

在交际网络中 , , , 给定若干个元素和若干对二元关系 , , , 且关系具有传递性 . . . " " " 通过传递性推导出尽量多的元素之间的关系 " " " 的问题叫做传递闭包 . . .

建立邻接矩阵 d , d, d, 其中 d i , j = 1 d_{i,j}=1 di,j​=1 表示 i i i 与 j j j 有关系 , , , d i , j = 0 d_{i,j}=0 di,j​=0 表示 i i i 与 j j j 没有关系 . . . 特别的 , , , d i , i d_{i,i} di,i​ 始终为 1. 1. 1. 使用 F l o y d Floyd Floyd 算法可以解决 . . .

	for(register int k=1;k<=n;k++)
		for(register int i=1;i<=n;i++)
			for(register int j=1;j<=n;j++)
				Dp[i][j]|=Dp[i][k]&Dp[k][j];

B e l l m a n F o r d B f s BellmanFordBfs BellmanFordBfs 算法

最短路

判负环

普通算法 O ( n m ) O(nm) O(nm)

千万小心 , , , s i z e v sizev sizev 是连通块中点的个数 . . .

T o t Tot Tot 和 C n t Cnt Cnt 是互相独立的 , , , 可以只留一个 , , , C n t Cnt Cnt 效率更高 . . .

const int MaxN=2100;
const int MaxM=5100;
ShortestPathGraphs<int,MaxN,MaxM>G;
Queues<int,1100>Q;
bool Visit[MaxN];
int Dist[MaxN],Cnt[MaxN],Tot[MaxN];

inline bool BellmanFord(int start,int sizev){
	memset(Tot,0,sizeof(int)*(sizev+1));Tot[start]=1;//入队次数 
	memset(Cnt,0,sizeof(int)*(sizev+1));//从start出发到 i 的最短路的边数 
	memset(Dist,0x3f,sizeof(Dist));Dist[start]=0;
	memset(Visit,false,sizeof(Visit));
	Q.Clear();Q.Push(start);
	while(!Q.Empty()){
		int from=Q.Front();Q.Pop();Visit[from]=false;
		for(register int k=G.Last[from];k!=-1;k=G.Next[k]){
			if(Dist[G.To[k]]>Dist[from]+G.Cost[k]){
				Dist[G.To[k]]=Dist[from]+G.Cost[k];
				Cnt[G.To[k]]=Cnt[from]+1;
				if(Cnt[G.To[k]]>sizev)return true;
				if(!Visit[G.To[k]]){
					Visit[G.To[k]]=true;
					Q.Push(G.To[k]);
					if(++Tot[G.To[k]]==sizev)return true;
				}
			}
		}
	}
	return false;
}

int n,m;
int main(){
	int Test=1;Read(Test);
	while(Test--){
        Read(n),Read(m);
		G.Clear();
        for(register int i=1,x,y,c;i<=m;i++){
            Read(x),Read(y),Read(c);
            Insert(G,x,y,c);
			if(c>=0)Insert(G,y,x,c);
        }
        if(BellmanFord(1,n))printf("YES\n");
        else printf("NO\n");
	}
	return 0;
}
B i t s e t Bitset Bitset 优化 O ( n 2 m ω ) O(\frac{n^2m}{\omega}) O(ωn2m​)
const int MaxN=2100;
const int MaxM=5100;
bitset<MaxN>Cnt[MaxN];
ShortestPathGraphs<int,MaxN,MaxM>G;
Queues<int,1100>Q;
bool Visit[MaxN];
int Dist[MaxN];
inline bool BellmanFord(int start,int sizev){
	for(register int i=1;i<=sizev;i++)
		Cnt[i].reset(); 
	//Cnt[i]代表的是start到i的最短路的经过的点 
	memset(Dist,0x3f,sizeof(int)*(sizev+1));
	memset(Visit,false,sizeof(bool)*(sizev+1));
	Q.Clear();Q.Push(start);
	Cnt[start].set(start);
	Dist[start]=0;
	while(!Q.Empty()){
		int from=Q.Front();Q.Pop();Visit[from]=false;
		//防止有自环权值为负 
		for(register int k=G.Last[from];k!=-1;k=G.Next[k]){
			if(Dist[G.To[k]]>Dist[from]+G.Cost[k]){
				if(Cnt[from][G.To[k]])return true;
				Dist[G.To[k]]=Dist[from]+G.Cost[k];
				Cnt[G.To[k]]=Cnt[from];
				Cnt[G.To[k]].set(G.To[k]);
				if(Visit[G.To[k]]==false){
					Visit[G.To[k]]=true;
					Q.Push(G.To[k]);
				}
			}
		}
	}
	return false;
}

T a r j a n Tarjan Tarjan 算法优化

const int MaxN=3e3;
const int MaxM=6e3;

int Last[MaxN];
int Next[MaxM],To[MaxM],cnt;
long long Cost[MaxM];

inline void Insert(int from,int to,long long cost){
	To[cnt]=to;Cost[cnt]=cost;
	Next[cnt]=Last[from];Last[from]=cnt++;
}

int Dfn[MaxN],Low[MaxN],Belong[MaxN],tot,scc;
int Size[MaxN];
bool InSta[MaxN];
Stacks<int,MaxN>S;

inline void Tarjan(int from){
	Dfn[from]=Low[from]=++tot;
	S.Push(from);InSta[from]=true;
	for(int k=Last[from];k!=-1;k=Next[k]){
		if(!Dfn[To[k]]){
			Tarjan(To[k]);
			Low[from]=Min(Low[from],Low[To[k]]);
		}
		else if(InSta[To[k]])
			Low[from]=Min(Low[from],Dfn[To[k]]);
	}
	if(Low[from]==Dfn[from]){
		int now;scc++;
		do{
			now=S.Top();S.Pop();
			Belong[now]=scc;
			Size[scc]++;
			InSta[now]=false;
		}while(now!=from);
	}
}
long long Dist[MaxN];
int Cnt[MaxN];
bool Visit[MaxN];
Queues<int,MaxN>Q;
inline void Join(int from){
	Q.Push(from);Dist[from]=0;
	Cnt[from]=0;Visit[from]=true;
	for(int k=Last[from];k!=-1;k=Next[k])
		if(!Visit[To[k]])Join(To[k]);
}
inline bool BellmanFord(int sizev){
	memset(Visit,false,sizeof(Visit));
	Q.Clear();Join(1);
	while(!Q.Empty()){
		int from=Q.Front();Q.Pop();Visit[from]=false;
		for(int k=Last[from];k!=-1;k=Next[k]){
			if(Belong[from]!=Belong[To[k]])continue;
			if(Dist[To[k]]>Dist[from]+Cost[k]){
				Dist[To[k]]=Dist[from]+Cost[k];
				Cnt[To[k]]=Cnt[from]+1; 
				if(Cnt[To[k]]>=Size[Belong[To[k]]])return true;
				if(!Visit[To[k]]){
					Visit[To[k]]=true;
					Q.Push(To[k]);
				}
			}
		}
	}
	return false;
}
inline void ReInit(){
	cnt=tot=scc=0;
	memset(Last,-1,sizeof(Last));
	memset(Dfn,0,sizeof(Dfn));
	memset(Low,0,sizeof(Low));
	memset(InSta,false,sizeof(InSta));
	memset(Size,0,sizeof(Size));
	memset(Belong,0,sizeof(Belong));
}

D i j k s t r a Dijkstra Dijkstra 算法

正权最短路 O ( m log ⁡ n ) / O ( n 2 ) O(m\log n)/O(n^2) O(mlogn)/O(n2)

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;

const int InSize=(1<<20)+1;
const long long LInf=0x3f3f3f3f3f3f3f3f;

int input=InSize;
char InPut[InSize];
inline char GetChar()
{
    if(input>=InSize)fread(InPut,1,InSize,stdin),input=0;
    return InPut[input++];
}
#define GetChar() getchar()
template<typename Typename>
inline void Read(Typename& s)
{
	s=0;register char c=GetChar();
	while(c>'9'||c<'0')c=GetChar();
	while(!(c>'9'||c<'0')){s=s*10+c-48;c=GetChar();}
}

template<typename Typename>
inline Typename Min(const Typename&x,const Typename&y){
	if(x<y)return x;return y;
}
template<typename Typename>
inline Typename Max(const Typename&x,const Typename&y){
	if(x>y)return x;return y;
}
template<typename Typename>
inline void Swap(Typename&x,Typename&y){
	Typename t=x;x=y;y=t;
}

template<typename Typename,int MaxCnt>
struct Heaps{
	private:
		Typename Data[MaxCnt];
		int size;
		inline void UpFix(int now){
			int i=now>>1,j=now;//Dad[j]=i;
			while(i!=0){
				if(Data[i]<Data[j])break;
				Swap(Data[i],Data[j]);
				i>>=1;j>>=1;
			}
		}
		inline void DownFix(int now){
			int i=now,j=now<<1;
			while(j<=size){
				if(j+1<=size&&Data[j+1]<Data[j])j++;
				if(Data[i]<Data[j])break;
				Swap(Data[i],Data[j]);
				i=j;j<<=1;
			}
		}
	public:
		Heaps(){
			size=0;
		}
		inline void Clear(){size=0;}
		inline void Push(const Typename&x){
			if(size==MaxCnt-1)puts("Error Heap");
			else{
				Data[++size]=x;
				UpFix(size);
			}
		}
		inline void Pop(){
			Data[1]=Data[size--];
			DownFix(1);
		}
		inline Typename Top(){
			if(size==0){puts("Error Heap");return Typename();} 
			else return Data[1];
		}
		inline bool Empty(){return size==0;}
		inline int Size(){return size;}
};

template<typename TypenameC,int MaxN,int MaxM>
struct ShortestPathGraphs{
	typedef TypenameC costtype;
	int Last[MaxN],cntn;
	int Next[MaxM],To[MaxM],cntm;
	costtype Cost[MaxM];
	ShortestPathGraphs(){
		cntn=cntm=0;
		memset(Last,-1,sizeof(Last));
	}
	inline void Clear(){
		cntn=cntm=0;
		memset(Last,-1,sizeof(Last));
	}
};

template<typename TypenameG>
inline void Insert(TypenameG&G,int from,int to,typename TypenameG::costtype cost){
	G.To[G.cntm]=to;G.Cost[G.cntm]=cost;
	G.Next[G.cntm]=G.Last[from];G.Last[from]=G.cntm++;
}

template<typename Typename1,typename Typename2>
struct Pairs{
	Typename1 x;Typename2 y;
	Pairs(){}
	Pairs(const Typename1&_x,const Typename2&_y):
		x(_x),y(_y){}
	inline bool operator<(const Pairs&p){
		return x==p.x?y<p.y:x<p.x;
	}
};

const int MaxN=1e5+1e4;
const int MaxM=2e5+1e4;
ShortestPathGraphs<long long,MaxN,MaxM>G;
Heaps<Pairs<long long,int>,MaxN>H;
long long Dist[MaxM];

inline void Dijkstra(int start){
	memset(Dist,0x3f,sizeof(Dist));
	Dist[start]=0;H.Clear();
	H.Push(Pairs<long long,int>(Dist[start],start));
	while(!H.Empty()){
		while(!H.Empty()&&H.Top().x!=Dist[H.Top().y])H.Pop();
		if(H.Empty())break;
		int from=H.Top().y;H.Pop();
		for(register int k=G.Last[from];k!=-1;k=G.Next[k]){
			if(Dist[G.To[k]]>Dist[from]+G.Cost[k]){
				Dist[G.To[k]]=Dist[from]+G.Cost[k];
				H.Push(Pairs<long long,int>(Dist[G.To[k]],G.To[k]));
			}
		}
	}
}
int n,m,srt;
int main()
{
	Read(n);Read(m);Read(srt);
	for(register int i=1;i<=m;i++)
	{
		register int a,b;
		register long long c;
		Read(a);Read(b);Read(c);
		Insert(G,a,b,c);
	}
	Dijkstra(srt);
	for(register int i=1;i<=n;i++)
		if(Dist[i]==LInf)printf("2147483647 ");
		else printf("%lld ",Dist[i]);
	return 0;
}

原始对偶算法

K t h P a t h KthPath KthPath 问题

黑科技

O ( n + m ) O(n+m) O(n+m) 最短路

实战指南:彻底清除TIA Portal卸载后遗留的SQL Server WinCC实例 本文详细介绍了如何彻底清除TIA Portal卸载后遗留的SQL Server WinCC实例,解决重新安装时的冲突问题。通过控制面板排查、注册表验证、安全卸载操作流程和注册表深度清理等步骤,确保完全移除残留组件,避免系统崩溃。文章还提供了安装环境重建策略和预防措施,帮助工程师高效管理西门子自动化软件。 阅读详情

相关推荐

用OpenNI2获取奥比中光Astra Pro及 Astra Pro SM输出的深度图(win,linux arm64 x64平台)

搞了一个奥比中光Astra Pro,想在windows平台,和linux rk3588 上获取深度信息,之前的驱动下载已经不好用了。

babytiger的专栏 1302

ACM-ICPC 2018 沈阳赛区网络预赛 D Made In Heaven (k短路 :最短路 + 可持续化堆/A*)

https://nanti.jisuanke.com/t/31445 #include &amp;amp;lt;algorithm&amp;amp;gt; #include &amp;amp;lt;iostream&amp;amp;gt; #include &amp;amp;lt;cstring&amp;amp;gt; #include &amp;amp;lt;cstdio&amp;amp;gt; #include &amp;amp

sb的博客 375

【MediaPipe实战】从零构建实时人脸关键点检测与表情分析系统

本文详细介绍了如何使用MediaPipe框架从零构建实时人脸关键点检测与表情分析系统。通过Python代码实现,系统能够精准检测468个3D人脸关键点,并实时分析用户表情,适用于智能交互应用。文章包含环境配置、核心实现、可视化技巧及性能优化等实战内容,帮助开发者快速掌握深度学习在计算机视觉中的应用。

weixin_30836759的博客 73

第K短路

单源最短路+A*算法==第K短路A*算法是一种启发式搜索方法,与bfs,dfs的区别在于它可以利用一个启发函数进行选择,使搜索的时间复杂度被大大的优化。 A*主要的公式表达式为f(n)=g(n)+h(n); 其中 f(n) 是从初始点经由节点n到目标点的估价函数, g(n) 是在状态空间中从初始节点到n节点的实际代价, h(n) 是从n到目标节点最佳路径的估计代价。 那么在第K短路问题中,

magical_qting的博客 790

STK相关总结

STK简介 一.SIM卡应用工具包(SIM Application Toolkit),又名CAT/USAT,它包含一系列终端与SIM卡的交互指令,SIM卡可以应用卡内的小应用程序和终端交互,从而实现增值服务的目的,STK包括三种类,STK-imsi切换,STK –OTA,STK-BIP 功能: (1) Profile download:配置下载,开机初始化SIM卡过程中,终端告诉SIM卡终端支持哪些功能,STK中download指终端将数据发送给SIM卡 (2) Proactive command: 主动式

jingjing_2的博客 3356

PyQt5 使用QSqlDatabase连接Mysql数据库时Driver not loaded Driver not loaded

PyQt5 使用QSqlDatabase连接Mysql数据库时Driver not loaded Driver not loaded

睡觉不打呼噜的博客 1562

POJ3463 Sightseeing(dijkstra求最短路+次短路)

传送门:http://poj.org/problem?id=3463 题意:给你n个点和m条单向边,和起点s,终点t。问你从s到t的最短路和比最短路大1的路一共有几条。 思路:改造一下dijkstra,一开始只记录了一个点是否访问过,但是wa了,因为一个点可以通过一个点的最短距离和次短距离访问过来,所以要记录每个点的最短路和次短路是否都访问过了,需要一个vis[maxn][2]。因此,朴素dij

xtttgo的博客 820

相场断裂模型中的各向异性机制:从裂纹密度到驱动力的数值实现

断裂力学是研究材料在载荷作用下裂纹萌生与扩展规律的基础学科,其核心在于理解材料失效的能量准则与路径选择。传统方法通常预设裂纹路径,而相场断裂模型通过引入连续的相场变量,将裂纹模拟转化为一个能量最小化问题,能够自发预测裂纹的萌生、扩展与分叉,在工程失效分析中具有重要价值。当材料具有显著的方向依赖性时,如单晶、复合材料或轧制金属板,各向同性假设会失效,此时需引入各向异性机制。该机制的核心在于改造两个关键部分:一是裂纹密度函数,通过引入各向异性张量来定义不同方向上形成裂纹微结构的能量成本;二是临界能量释放率(断裂

weixin_31421613的博客 297

poj 2449 Remmarguts' Date(最短路+A*)

POJ - 2449点我点我:-) Remmarguts' Date Time Limit: 4000MS   Memory Limit: 65536KB   64bit IO Format: %lld & %llu Submit Status Description "Good man never make

Free Cat~~~ 跳动的喵 420

C#串口通信从入门到精通(27)——高速通信下解决数据处理慢的问题(20ms以内)

本文介绍如何在高速通信情况下解决串口接收的数据来不及处理的问题,由高级工程师多年经验总结而成,绝对是串口领域的实战经验!

qq_34059233的博客 6807

​ISP算法及架构分析介绍

ISP算法及架构分析介绍ISP即Image Signal Processor,是一种图像处理架构,不是我们用的下载器。ISP其实算是图像处理的一个特例,一般应用于前端设备(相对于SENSOR),从结果上看就是将RAW数据转换成压缩后的RGB(一般)数据,供后续CPU使用(识别、压缩等)。市面上很少有直接介绍ISP的书籍或者资料,今天我们主要是聊一聊ISP算法的架构,这样大...

OpenFPGA的博客 5404

有向无环图的最小路径点覆盖

有向无环图的最小路径点覆盖问题解法1.1.1. 拆点二分图定义2.2.2. 定理1113.3.3. 拓展问题 问题 给定一张有向无环图 ,,, 要求用尽量少的不相交的简单路径((( 不是有向边 ))) ,,, 覆盖有向无环图的所有顶点 ((( 也就是每个顶点恰好被覆盖一次 ).).). 这个问题被称为有向无环图的最小路径点覆盖... 解法 1.1.1. 拆点二分图定义 设原来的有向无环图为 G=(V,E),n=∣V∣.G=(V,E),n=|V|.G=(V,E),n=∣V∣. 把 GGG 中的每一个 xx

Darkside的博客 501

华为OD机试真题 新系统 【社交网络相同爱好好友查询】

华为od机试真题 新系统【社交网络相同爱好好友查询】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为od机试真题【社交网络相同爱好好友查询】多语言题解实现。

qq_45776114的博客 1336

专题·最短路【including Dijkstra, SPFA,Floyd,传递闭包,二维最短路,分层图最短路,最短路计数……

DIj算法,堆优化版本,线段树优化版本; SPFA算法,Floyd算法,传递闭包; 如标题的各种最短路的应用

樱狸✨愿携清风归来处 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

kuangbin最短路专题Silver Cow Party (POJ - 3268)

kuangbin最短路专题4 传送门 题面 思路 老方法dijkstra。单向图。正向反向的图都建一遍。正向的图跑奶牛去参加聚会的最短路,反向的图跑回家的最短路。不建反向图就得跑n遍dij 代码 #include <bits/stdc++.h>//poj不能用万能头,这里是为了看起来简洁点 typedef long long ll; #define mP make_pair #define pii pair<int, int> using namespace std; int n

Sivannn的博客 279

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

[kuangbin带你飞]专题四 最短路 题解+总结

kuangbin带你飞:点击进入新世界 总结: 本人算是初学者中的初学者,欢迎交流~ kuangbin的专题确实是理解最短路的一大途径,这篇博客主要记录题解,顺便总结最短路的题型。 A.模板题 参考1 B.变形最短路 (求最大边权的最小值or最小边权的最大值) 参考2 . 3 文章目录总结:1.Til the Cows Come Hom2.Frogger3. Heavy Transportati...

放荡者的茶会 4730

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【专题】最短路算法

介绍了三种常用的最短路算法:Floyd, Dijkstra, Bellman-Ford。

WillHou的博客 484

专题训练——最短路练习

最短路练习 0. Til the Cows Come HomePOJ - 2387 完美的模板题 1 //#include<Windows.h> 2 #include<iostream> 3 #include<algorithm> 4 #include<cstring> 5 #include<cst...

weixin_30925411的博客 209

专题四 最短路练习

文章目录专题四 最短路练习POJ 2387 Til the Cows Come HomePOJ 2253 FroggerPOJ 1797 Heavy TransportationPOJ 3268 Silver Cow PartyPOJ 1860 Currency ExchangePOJ 3259 WormholesPOJ 1502 MPI MaelstromPOJ 3660 Cow ContestPOJ 2240 ArbitragePOJ 1511 Invitation CardsPOJ 3159 Cand

m0_49959202的博客 459

Kuangbin最短路专题

菜鸡第一篇博客 整理一下kuangbin的最短路专题(主要是ide出问题了没事干 目录 一、POJ 2387 Till the Cows HomeSPFA板子 二、POJ 2253 FroggerDij最大边最短路 三.POJ 1797 Heavy TranspotationDij最小边最长路 四、POJ 3268 Sliver Cow Party反向建图 五、POJ 1860 Currency ExchangeSPFA判正环 六、POJ 3259 Wormhole...

qq_62338494的博客 899

图论专题总结—最短路

时间非常有限,但还是强忍着对这个专题进行总结。一方面阶段性总结是“磨刀不误砍柴工”的最有效方法之一;二是在学习这个专题的时候看到很多大牛们的总结帖都是受益匪浅的,让其他人少走了很多弯路,自己也可以随时进行温故而知新。废话少说,看第一个小专题最短路问题。        常见的最短路算法有Dijkstra、Floyd、Bellman-Ford、SPFA等这几种,由于网上的知识讲解和算法分析都非常详细

VoidSun 605

[kuangbin带你飞]专题四 最短路练习

今天开始做专题四了,刷题的顺序是看某位知乎大佬大佬的回复,现在完成了专题一,希望可以把剩下的做完吧。 [kuangbin带你飞]专题一 简单搜索 [kuangbin带你飞]专题四 最短路练习 [kuangbin带你飞]专题五 并查集 [kuangbin带你飞]专题六 最小生成树 [kuangbin带你飞]专题十二 基础DP1 [kuangbin带你飞]专题十四 数论基础 [kuangbin带你飞]...

Geek_的博客 3878

最短路专题练习

D - Silver Cow Party 思路:求两次s到各点的最短路径(一次正向建图,一次反向建图) 代码: //#include<bits/stdc++.h> #include <algorithm> #include <iostream> #include <cstring> #include <cstdio> using name...

柯微 196
上一篇: Cpp泛型
下一篇: P4408 [NOI2003] 逃学的小孩 题解
DarksideCoder
博客等级 码龄7年 34粉丝 29原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值