1133 Splitting A Linked List

本文介绍了一个使用 C++ 编写的程序,该程序能够读取一组链表节点,并根据节点值将其分为三类:负数、0 到 k 之间的数和其他数。通过将节点推入不同的向量中实现分类,最后按顺序输出这些节点。
#include<iostream>
#include<vector>
using namespace std;
struct 	Node{
	int value;
	int next;
	int address;
}node[100010];
int main()
{
	#ifdef ONLINE_JUDGE
	#else
	freopen("in.txt","r",stdin);
	#endif
	int n,k;
	int f;
	cin>>f>>n>>k;
	vector<Node> a,b,c;
	for(int i=0;i<n;i++){
		int add,nex;
		int data;
		cin>>add>>data>>nex;
		node[add].next=nex;
		node[add].value=data;
		node[add].address=add;
	}
	int p;
	for(p=f;p!=-1;p=node[p].next){
		if(node[p].value<0){
			a.push_back(node[p]);
		}else if(node[p].value<=k&&node[p].value>=0){
			b.push_back(node[p]);
		}else{
			c.push_back(node[p]);
		}
	}
	for(int i=0;i<a.size();i++){
		if(i<=a.size()-2){
			a[i].next=a[i+1].address;
			printf("%05d %d %05d\n",a[i].address,a[i].value,a[i].next);
			//cout<<a[i].address<<' '<<a[i].value<<' '<<a[i].next<<endl;
		}else if(b.size()!=0){
			a[i].next=b[0].address;
			printf("%05d %d %05d\n",a[i].address,a[i].value,a[i].next);
			//cout<<a[i].address<<' '<<a[i].value<<' '<<a[i].next<<endl;
		}else{
			a[i].next=-1;
			printf("%05d %d %d\n",a[i].address,a[i].value,a[i].next);
			//cout<<a[i].address<<' '<<a[i].value<<' '<<a[i].next<<endl;
		}
	}
	for(int i=0;i<b.size();i++){
		if(i<=b.size()-2){
			b[i].next=b[i+1].address;
			printf("%05d %d %05d\n",b[i].address,b[i].value,b[i].next);
			//cout<<b[i].address<<' '<<b[i].value<<' '<<b[i].next<<endl;
		}else if(c.size()!=0){
			b[i].next=c[0].address;
			printf("%05d %d %05d\n",b[i].address,b[i].value,b[i].next);
			//cout<<b[i].address<<' '<<b[i].value<<' '<<b[i].next<<endl;
		}else{
			b[i].next=-1;
			printf("%05d %d %d\n",b[i].address,b[i].value,b[i].next);
			//cout<<b[i].address<<' '<<b[i].value<<' '<<b[i].next<<endl;
		}
	}
	for(int i=0;i<c.size();i++){
		if(i<=c.size()-2){
			c[i].next=c[i+1].address;
			printf("%05d %d %05d\n",c[i].address,c[i].value,c[i].next);
			//cout<<c[i].address<<' '<<c[i].value<<' '<<c[i].next<<endl;
		}else{
			c[i].next=-1;
			printf("%05d %d %d\n",c[i].address,c[i].value,c[i].next);
			//cout<<c[i].address<<' '<<c[i].value<<' '<<c[i].next<<endl;
		}
	}
	return 0;
}

 

STM32电机库无感代码注释无传感器版本龙贝格观测三电阻双AD采样前馈控制弱磁控制斜坡启动内容概要:本文档为一份关于STM32电机控制的无传感器版本代码注释资源,聚焦于龙贝格观测器在永磁同步电机(PMSM)无感控制中的应用。内容涵盖三电阻双通道AD采样技术、前馈控制、弱磁控制及斜坡启动等关键控制策略的实现方法,旨在通过详细的代码解析帮助开发者深入理解基于STM32平台的高性能电机控制算法设计与工程实现。文档适用于从事电机控制开发的技术人员,重点解析了无位置传感器控制下的转子初始定位、速度估算与系统稳定性优化等问题。; 适合人群:具备一定嵌入式开发基础,熟悉STM32平台及电机控制原理的工程师或研究人员,尤其适合从事无感FOC开发的中高级技术人员。; 使用场景及目标:①掌握龙贝格观测器在PMSM无感控制中的建模与实现;②理解三电阻采样与双AD同步采集的硬件匹配与软件处理机制;③实现前馈补偿提升动态响应、弱磁扩速控制策略以及平稳斜坡启动过程;④为实际项目中调试和优化无感FOC系统提供代码参考和技术支持; 阅读建议:建议结合STM32电机控制硬件平台进行代码对照阅读与实验验证,重点关注观测器设计、电流采样校准、PI参数整定及各控制模块之间的协同逻辑,建议配合示波器进行信号观测以加深对控制时序与性能表现的理解。
### FFmpeg 中 `error splitting the argument list: Option not found` 的解决方法 在使用 FFmpeg 时,若遇到 `error splitting the argument list: Option not found` 错误,通常是因为 FFmpeg 命令中使用了不被当前版本支持的选项。解决此问题的核心方法是确保使用的是最新版本的 FFmpeg,并正确配置其运行环境。 #### 更新 FFmpeg 版本 某些旧版本的 FFmpeg 不支持较新的命令行参数,例如 `-vbsf` 或 `deadline` 等选项。更新到最新版本可以解决此类问题。可以通过从官方源下载最新版本的 FFmpeg 并进行安装[^1]。 ```bash # 下载最新版本的 FFmpeg wget https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 --no-check-certificate tar xjf ffmpeg-snapshot.tar.bz2 cd ffmpeg/ ``` #### 正确配置 FFmpeg 环境路径 如果系统中存在多个 FFmpeg 版本,确保默认调用的是最新版本。例如,在 Conda 环境中,若默认版本过旧,可通过修改脚本指定使用系统中最新安装的 FFmpeg 版本。在 `utils.py` 文件中,可以设置 `ffmpeg_path` 为最新版本的路径[^2]。 ```python ffmpeg_path = max(ffmpeg_paths, key=ffmpeg_suitability) ``` #### 验证 FFmpeg 安装 安装完成后,验证是否成功可以通过以下命令检查 FFmpeg 版本信息。 ```bash ffmpeg -version ``` #### 编译时启用必要的编码器 如果使用了特定编码器(如 `libx264`)而遇到问题,确保在编译 FFmpeg 时启用了相关编码器。配置命令应包含 `--enable-libx264` 和 `--enable-gpl` 等选项,并正确设置 `x264` 的头文件和库路径[^3]。 ```bash ./configure --prefix=/usr/local/ffmpeg --enable-shared --enable-yasm --enable-libx264 --enable-gpl --enable-pthreads --extra-cflags=-I/usr/local/x264/include --extra-ldflags=-L/usr/local/x264/lib make make install ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值