NBUTOJ I can do it

本文探讨了排序算法和数据结构的应用,通过实例展示了如何使用排序扫描算法解决比赛题,涉及C++编程语言和结构体定义,实现高效的数据处理。

找最大值最小:上周的比赛题nboj上面的

排序扫描:

#include<cstdio>
#include<algorithm>
#include<string.h>
using namespace std;
struct node
{
 long long x;
 long long y;
}num[100002];
bool cmp(node a,node b)
{
 return a.x>b.x;
}
int main(){
	int t,n;
	scanf("%d",&t);
	for(int i=1;i<=t;i++){
	 scanf("%d",&n);
	 for(int k=0;k<n;k++)
	 {
	  scanf("%lld%lld",&num[k].x,&num[k].y);
	 }
	 sort(num,num+n,cmp);
	 long minx=num[0].x;
	 int tmp=-1111;
	 for(int k=1;k<n;k++)
	 {
	    if(num[k-1].y>tmp)
			tmp=num[k-1].y;
		num[k].x+=tmp;
		if( num[k].x<minx)
			minx=num[k].x;
	 }
	  //printf("%d\n",minx);
	 
	 printf("Case %d: %d\n",i,minx);
	}
	return 0;
}


### 问题分析 在 CMake 使用 `find_package` 查找 OpenCV 时,如果返回 `OpenCV_FOUND` 为 `FALSE`,通常表明 CMake 未能正确找到 OpenCV 库或其配置文件。以下是一些可能的原因及解决方案: --- ### 可能原因与解决方法 #### 1. OpenCV 未正确安装 如果系统中没有正确安装 OpenCV 库,CMake 将无法找到它。确保 OpenCV 已经正确安装,并且可以通过命令行访问到[^2]。 - **检查 OpenCV 安装**:通过以下命令确认 OpenCV 是否已安装: ```bash pkg-config --modversion opencv4 ``` 如果该命令返回版本号,则说明 OpenCV 已正确安装。 - **解决方法**:如果 OpenCV 未安装,请下载并安装 OpenCV 库。例如,使用以下命令安装(以 Ubuntu 系统为例): ```bash sudo apt-get install libopencv-dev ``` --- #### 2. OpenCV 路径未正确配置 即使 OpenCV 已安装,CMake 可能仍然找不到它,因为路径未正确配置[^3]。 - **设置 `CMAKE_PREFIX_PATH`**:如果 OpenCV 安装在非默认路径下,可以通过设置 `CMAKE_PREFIX_PATH` 指定路径: ```cmake set(CMAKE_PREFIX_PATH "/path/to/your/opencv/installation") find_package(OpenCV REQUIRED) ``` - **手动指定路径**:如果需要明确指定 OpenCV 的配置文件路径,可以设置 `OpenCV_DIR`: ```cmake set(OpenCV_DIR "/path/to/your/opencv/share/OpenCV") find_package(OpenCV REQUIRED) ``` --- #### 3. 配置文件缺失或损坏 CMake 使用 `OpenCVConfig.cmake` 或 `FindOpenCV.cmake` 来查找 OpenCV 库。如果这些文件不存在或损坏,可能导致查找失败[^1]。 - **检查配置文件**:确保安装路径下存在 `OpenCVConfig.cmake` 文件。例如,在 `/usr/local/share/OpenCV` 下应该有该文件。 - **解决方法**:如果文件缺失,重新编译 OpenCV 并确保生成了正确的配置文件。例如: ```bash cmake -D CMAKE_INSTALL_PREFIX=/usr/local .. make sudo make install ``` --- #### 4. 版本不匹配 如果指定了特定版本的 OpenCV(如 `find_package(OpenCV 3 REQUIRED)`),但系统中未安装该版本,也可能导致查找失败[^4]。 - **检查版本**:确认系统中安装的 OpenCV 版本是否满足要求。例如,使用以下命令检查版本: ```bash pkg-config --modversion opencv4 ``` - **解决方法**:如果版本不匹配,可以选择安装所需版本或调整 `find_package` 的版本要求。例如: ```cmake find_package(OpenCV 4 REQUIRED) # 如果需要 OpenCV 4.x ``` --- #### 5. CMake 内置模块问题 CMake 自带的 `FindOpenCV.cmake` 文件可能不支持最新版本的 OpenCV[^5]。 - **解决方法**:避免使用 CMake 自带的 `FindOpenCV.cmake` 文件,改为直接使用 `OpenCVConfig.cmake`: ```cmake find_package(OpenCV REQUIRED CONFIG) ``` --- ### 示例代码 以下是一个完整的 CMakeLists.txt 示例,展示如何正确查找 OpenCV: ```cmake cmake_minimum_required(VERSION 3.10) # 设置 CMAKE_PREFIX_PATH 如果 OpenCV 不在默认路径 set(CMAKE_PREFIX_PATH "/path/to/your/opencv/installation") # 查找 OpenCV find_package(OpenCV 4 REQUIRED) if(OpenCV_FOUND) message(STATUS "OpenCV found: ${OpenCV_INCLUDE_DIRS}") else() message(FATAL_ERROR "OpenCV not found!") endif() # 添加可执行文件并链接 OpenCV add_executable(my_opencv_app main.cpp) target_include_directories(my_opencv_app PRIVATE ${OpenCV_INCLUDE_DIRS}) target_link_libraries(my_opencv_app PRIVATE ${OpenCV_LIBS}) ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值