news 2026/4/18 8:25:28

国际贸易统计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/4/17 8:23:34

IDM激活终极指南:如何解除下载速度限制

还在为IDM的试用期烦恼吗&#xff1f;每次试用到期就要重新安装&#xff0c;下载速度直线下降&#xff0c;这种体验确实令人沮丧。今天我要分享一个完整的解决方案&#xff0c;让你轻松摆脱这些限制&#xff0c;享受无限期的高速下载体验&#xff01; 【免费下载链接】IDM-Acti…

作者头像 李华
网站建设 2026/4/18 3:33:42

Open Library API第三方集成完整指南:简单快速的数据同步方案

Open Library API第三方集成完整指南&#xff1a;简单快速的数据同步方案 【免费下载链接】openlibrary One webpage for every book ever published! 项目地址: https://gitcode.com/gh_mirrors/op/openlibrary Open Library作为"每本已出版图书的专属网页"项…

作者头像 李华
网站建设 2026/4/18 3:35:39

PC微信小程序解密终极指南:轻松获取源码的完整方案

PC微信小程序解密终极指南&#xff1a;轻松获取源码的完整方案 【免费下载链接】pc_wxapkg_decrypt_python PC微信小程序 wxapkg 解密 项目地址: https://gitcode.com/gh_mirrors/pc/pc_wxapkg_decrypt_python 在PC微信日益普及的今天&#xff0c;许多开发者希望深入了解…

作者头像 李华
网站建设 2026/4/18 3:36:04

终极图片批量下载神器:三引擎并行下载,效率提升500%

终极图片批量下载神器&#xff1a;三引擎并行下载&#xff0c;效率提升500% 【免费下载链接】Image-Downloader Download images from Google, Bing, Baidu. 谷歌、百度、必应图片下载. 项目地址: https://gitcode.com/gh_mirrors/im/Image-Downloader 还在为一张张手动…

作者头像 李华
网站建设 2026/4/18 3:25:36

Tesseract OCR语言数据包完整使用指南:免费构建多语言文本识别系统

Tesseract OCR语言数据包完整使用指南&#xff1a;免费构建多语言文本识别系统 【免费下载链接】tessdata 训练模型基于‘最佳’LSTM模型的一个快速变体以及遗留模型。 项目地址: https://gitcode.com/gh_mirrors/te/tessdata 想要快速构建支持100语言的文本识别系统吗&…

作者头像 李华
网站建设 2026/4/11 9:45:56

【开源神器Open-AutoGLM】:为何顶级开发者都在偷偷使用这个GitHub项目?

第一章&#xff1a;Open-AutoGLM的诞生背景与核心价值随着大语言模型在自然语言处理领域的广泛应用&#xff0c;自动化任务执行、智能推理与多步决策能力成为下一代AI系统的关键需求。传统模型往往依赖人工编写提示词或固定流程&#xff0c;难以应对复杂、动态的真实场景。在此…

作者头像 李华