news 2026/3/20 19:37:21

国际贸易统计pta

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
国际贸易统计pta

相关知识:类,sort cmp我爱你么么哒类的指针(好方法是把它当作一种数据类型)

这里给出N个国家之间进行国际贸易的记录,请你统计这些国家进行国际贸易的收益。

输入格式:

输入第一行给出一个正整数N(≤104),即参与国际贸易的国家数量,则这些国家从1到N编号。随后N行,第i行给出编号为i的国家在贸易中卖出商品的记录,格式如下:kN1​P1​⋯Nk​Pk​,
其中k(0≤k≤20)是买入商品国家的个数,Ni​是买入商品国家的编号,Pi​>0是其买入商品的金额(整数表示,以万元为单位)。注意:一次贸易对于买入和卖出国家的贸易次数都会增加1次。

输出格式:

按照收入金额从高到低的递减顺序输出每个国家的编号和收入金额(整数表示,以万元为单位)。每个国家的信息占一行,两数字间有1个空格。如果收入金额有并列,则按参与国际贸易的次数递减输出;如果还有并列,则按国家编号递增输出。

10 3 2 22 10 58 8 125 5 1 345 3 211 5 233 7 13 8 101 1 7 8800 2 1 1000 2 1000 2 4 250 10 320 6 5 11 9 22 8 33 7 44 10 55 4 2 1 3 8800 2 1 23 2 123 1 8 250 4 2 121 4 516 7 112 9 10
4 1232 10 326 5 326 9 218 6 167 7 -169 3 -211 2 -363 8 -363 1 -1163
#include <bits/stdc++.h> using namespace std; class Country { public: Country() : id(0), income(0), count(0) {} // 默认构造函数 int income = 0, count = 0, id; }; bool cmp(Country &a, Country &b) { if (a.income != b.income) { return a.income > b.income; // 收入从高到低 } else if (a.count != b.count) { return a.count > b.count; // 贸易次数从高到低 } else { return a.id < b.id; // 国家编号从小到大 } } int main() { int N; cin >> N; Country *country = new Country[N + 1]; for (int i = 1; i <= N; i++) { //第i个国家 country[i].id = i; int J;//贸易次数 cin >> J; country[i].count += J; for (int j = 1; j <= J; j++) { int id; cin >> id; //参与交易国家 country[id].count++; int money; cin >> money; country[id].income -= money; country[i].income += money; } } Country *result = country + 1; // 指向数组第二个元素(下标1) sort(result, result + N, cmp); for (int i = 1; i <= N; i++) { cout << country[i].id << " " << country[i].income << endl; } delete[] country;//好习惯 return 0; }

之前定义这样 Country(int i) : id(i), income(0), count(0) {}

创建country的时候但报错了

带参数构造函数更高级不会系统自动默认构造
// 根本原因是你定义了带参数的构造函数,但没有定义默认构造函数,
// 导致在创建对象数组时编译器找不到合适的构造函数。
// 解决方法是添加一个默认构造函数,或者使用其他方式初始化对象。

Country *country=new Country[N+1]; delete[] country;//100年之内0人会懂

MyClass *ptr = &obj;//类指针用法
Country *result=country+1;//因为country是类数组

刚才又去看了几个other代码,觉得这个东西写的越容易理解越好初学阶段嘛,

不同意的罚你们做题只能ac一半

ai终于被我调成了!ta可以正确完成主人的人物了(欣慰

#include <bits/stdc++.h> using namespace std; class Country { public: int id, income, count; Country() : id(0), income(0), count(0) {} }; bool cmp(const Country &a, const Country &b) { if (a.income != b.income) return a.income > b.income; if (a.count != b.count) return a.count > b.count; return a.id < b.id; } int main() { int N; cin >> N; // 注意:这里创建了 N+1 个元素,下标0未使用 vector<Country> country(N + 1); for (int i = 1; i <= N; i++) { // 从1开始,跳过下标0 // 修正:使用小写的 country,而不是大写的 Country country[i].id = i; // 正确写法 int J; cin >> J; country[i].count += J; for (int j = 1; j <= J; j++) { int id, money; cin >> id >> money; // 买方:支出 money,交易次数+1 country[id].income -= money; country[id].count++; // 卖方:收入 money country[i].income += money; } } // 关键修改:只排序实际有效的部分(下标1到N) sort(country.begin() + 1, country.end(), cmp); // 输出排序后的结果(同样只输出下标1到N) for (int i = 1; i <= N; i++) { cout << country[i].id << " " << country[i].income << endl; } return 0; }

最后这个处理或者

// 创建用于排序的 vector,包含 country[1] 到 country[N]
vector<Country> result(country.begin() + 1, country.end());

sort(result.begin(), result.end(), cmp);

// 输出排序后的结果
for (const auto &c : result) {
cout << c.id << " " << c.income << endl;
}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/19 20:00:04

HackRF射频前端优化设计:低噪声放大器匹配策略与性能验证

HackRF射频前端优化设计&#xff1a;低噪声放大器匹配策略与性能验证 【免费下载链接】hackrf low cost software radio platform 项目地址: https://gitcode.com/gh_mirrors/ha/hackrf 在软件定义无线电系统设计中&#xff0c;射频前端架构的优化直接影响系统整体性能。…

作者头像 李华
网站建设 2026/3/14 16:36:48

完整示例展示:嘉立创PCB布线全过程(基于EasyEDA)

从原理图到打样&#xff1a;我在嘉立创用EasyEDA搞定一块STM32最小系统板的全过程 最近在做一个嵌入式项目&#xff0c;需要快速出一块控制板原型。时间紧、预算少&#xff0c;还希望尽量一次成功——这种情况下&#xff0c; 嘉立创 EasyEDA 的组合几乎成了我首选的“电子设…

作者头像 李华
网站建设 2026/3/19 22:34:43

深度剖析JLink驱动兼容性对STM32芯片的影响

深度剖析JLink驱动兼容性对STM32芯片的影响&#xff1a;从连接失败到高效调试的实战指南 在嵌入式开发的世界里&#xff0c;你是否曾经历过这样的场景&#xff1f; 代码逻辑清晰、编译无误&#xff0c;硬件焊接完整、电源稳定&#xff0c;SWD引脚也一一对应。可当你点击“Dow…

作者头像 李华
网站建设 2026/3/20 6:44:32

青龙面板终极指南:快速掌握多语言定时任务自动化管理

在当今自动化运维时代&#xff0c;如何高效管理各种脚本和定时任务成为了每个开发者和运维工程师必须面对的挑战。青龙面板作为一款强大的定时任务管理平台&#xff0c;能够帮你轻松驾驭Python3、JavaScript、Shell、Typescript等多种编程语言的自动化任务&#xff0c;让你的运…

作者头像 李华
网站建设 2026/3/14 17:04:21

YOKOGAWAWT3000 横河 WT3000功率分析仪

YOKOGAWA横河 WT系列功率分析仪中&#xff0c;WT3000具有最高的精度。WT3000基本功率精度达到读数的0.02%&#xff0c;测量带宽为DC和0.1Hz~1MHz&#xff1b;提供4路测量通道&#xff0c;最多同时可配置4个输入单元&#xff1b;可提供高精度的输入/输出效率测量&#xff0c;各个…

作者头像 李华
网站建设 2026/3/15 22:29:58

Dify平台支持异步任务队列处理长耗时操作

Dify平台如何用异步任务队列化解AI长耗时操作的“阻塞困局” 在构建AI应用的过程中&#xff0c;你是否遇到过这样的场景&#xff1a;用户上传了一份上百页的PDF文档&#xff0c;点击“构建知识库”后&#xff0c;页面开始转圈&#xff0c;30秒未响应&#xff0c;浏览器提示超时…

作者头像 李华