C++海港(port)

📋 个人简介

🎉大家好,我是3月份新人榜排名第三的 ༺Blog༒Hacker༻
💬支持我:点赞👍+收藏⭐️+留言📝
🌺格言:༺永做优质༒programmer༻

📣海港(port)

🔥【问题描述】

❄️小K是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客。

❄️小K对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一艘船只情况:对于第i艘到达的船,他记录了这艘船到达的时间t_i(单位:秒),船上的乘客数量ki,以及每名乘客的国籍x_i,1,x_i,2,…,x_i,k

❄️小K统计了n艘船的信息,希望你帮忙计算出以每一艘船到达时间为止的24小时(24小时=86400秒)内所有乘船到达的乘客来自多少个不同的国家。

❄️形式化地讲,你需要计算n条信息。对于输出的第i条信息,你需要统计满足t_i−86400<t_p≤t_i的船只p,在所有的x_p−j中,总共有多少个不同的数。

🔥【输入格式】

❄️第一行输入一个正整数n,表示小K统计了n艘船的信息。

❄️接下来n行,每行描述一艘船的信息:

❄️前两个整数t_i和k_i分别表示这艘船到达海港的时间和船上的乘客数量,接下来k_i个整数x_i,j表示船上乘客的国籍。

❄️保证输入的t_i是递增的,单位是秒:表示从小K第一次上班开始计时,这艘船在第t_i秒到达海港。

❄️保证1≤n≤105,k_i≥1,∑k_i≤3×105, 1≤x_i,j≤105,1≤t_i−1≤t_i≤109

❄️其中∑k_i表示所有的k_i的和,∑k_i=k_1+k_2+…+k_n.

🔥【输出格式】

❄️输出n行,第i行输出一个整数表示第i艘船到达后的统计信息。

🔥【样例1输入】
3
1  4  4  1  2  2
2  2  2  3
10  1  3
🔥【样例1输出】
3
4
4

🔥【样例1说明】

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
如果你是指通过C++编写一个类似AccessPort软件的串口调试工具,那么这个工作量比较大,需要涉及到图形界面、串口通信、数据解析等多个方面的知识。但是,我可以给你提供一个简单的串口通信代码,可以作为你实现一个串口调试工具的基础。 ```c++ #include <iostream> #include <Windows.h> int main() { HANDLE hCom; char buffer[1024]; DWORD bytesRead; // 打开COM1串口 hCom = CreateFileA("COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); if (hCom == INVALID_HANDLE_VALUE) { std::cout << "Failed to open COM port!\n"; return 1; } // 配置串口参数 DCB dcb; memset(&dcb, 0, sizeof(DCB)); dcb.DCBlength = sizeof(DCB); if (!GetCommState(hCom, &dcb)) { std::cout << "Failed to get COM port state!\n"; CloseHandle(hCom); return 1; } dcb.BaudRate = CBR_9600; dcb.ByteSize = 8; dcb.Parity = NOPARITY; dcb.StopBits = ONESTOPBIT; if (!SetCommState(hCom, &dcb)) { std::cout << "Failed to set COM port state!\n"; CloseHandle(hCom); return 1; } // 不断从串口读取数据并输出 while (true) { if (!ReadFile(hCom, buffer, sizeof(buffer), &bytesRead, NULL)) { std::cout << "Failed to read from COM port!\n"; CloseHandle(hCom); return 1; } if (bytesRead > 0) { std::cout << "Received " << bytesRead << " bytes: " << buffer << "\n"; } // 从标准输入读取数据并发送到串口 if (fgets(buffer, sizeof(buffer), stdin) != NULL) { DWORD bytesWritten; if (!WriteFile(hCom, buffer, strlen(buffer), &bytesWritten, NULL)) { std::cout << "Failed to write to COM port!\n"; CloseHandle(hCom); return 1; } std::cout << "Sent " << bytesWritten << " bytes: " << buffer; } } CloseHandle(hCom); return 0; } ``` 这个代码使用了Windows API函数来进行串口通信,包括打开串口、配置串口参数、读取串口数据和发送数据到串口等操作。你可以将此代码编译运行后,向串口发送数据并通过标准输入输入数据,就能进行简单的串口通信了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

༺Blog༒Hacker༻

您的鼓励将是我更新最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值