当前位置: 首页 > wzjs >正文

南京老牌网站建设公司江苏水利工程建设招投标网站

南京老牌网站建设公司,江苏水利工程建设招投标网站,北京定制网站开发,杭州认证网站建设P8720 [蓝桥杯 2020 省 B2] 平面切分--set、pair 题目 分析一、pair1.1pair与vector的区别1.2 两者使用场景两者组合使用 二、set2.1核心特点2.2set的基本操作2.3 set vs unordered_set示例:统计唯一单词数代码 题目 分析 大佬写的很明白,看这儿 我讲讲…

P8720 [蓝桥杯 2020 省 B2] 平面切分--set、pair

      • 题目
  • 分析
    • 一、pair
    • 1.1pair与vector的区别
    • 1.2 两者使用场景
    • 两者组合使用
  • 二、set
    • 2.1核心特点
    • 2.2set的基本操作
    • 2.3 set vs unordered_set
    • 示例:统计唯一单词数
      • 代码

题目

在这里插入图片描述

分析

大佬写的很明白,看这儿

我讲讲其中用到的知识点吧!

一、pair

pair是 C++ 中的一个模板类,用于存储两个值(可以是不同类型)。

1、基本用法

#include <iostream>
#include <utility> // pair 的头文件
using namespace std;int main() {pair<int, string> student = {18, "小明"}; // 存储年龄和姓名cout << "年龄: " << student.first << endl;   // 输出 18cout << "姓名: " << student.second << endl;  // 输出 小明return 0;
}

2、核心特性:
pair 中的两个值可以是不同类型(如 int 和 string)。
通过 .first 和 .second 访问两个值。

3、pair 的常见用途

1)存储关联数据
例如,存储一个点的坐标 (x, y)

pair<double, double> point = {3.14, 2.71};

2)函数返回两个值

pair<bool, int> checkValue(int x) {if (x > 0) return {true, x};else return {false, 0};
}

1.1pair与vector的区别

在这里插入图片描述

1.2 两者使用场景

对pair:

  1. 坐标 (x, y)。
  2. 一个学生的年龄和姓名 (int, string)

对vector:

需要存储一组同类型数据,例如:
学生成绩列表 [90, 85, 95]。
一组字符串 [“apple”, “banana”, “cherry”]。

两者组合使用

vector<pair<double, double>> points;
points.push_back({1.0, 2.0}); // 添加点 (1.0, 2.0)
points.push_back({3.0, 4.0}); // 添加点 (3.0, 4.0)// 遍历所有点
for (auto p : points) {cout << "x: " << p.first << ", y: " << p.second << endl;
}

二、set

set是 C++ 中的一个重要容器,用于存储一组唯一且有序的元素。set 是 C++ 中的一个重要容器,用于存储一组唯一且有序的元素。它的核心特性是自动去重自动排序,非常适合处理需要唯一性和顺序性的数据。

2.1核心特点

在这里插入图片描述

2.2set的基本操作

(1) 创建 set

#include <set>
using namespace std;set<int> s1;                // 默认升序排列的整数集合
set<string> s2;             // 字符串集合
set<pair<int, int>> s3;     // 存储 pair 的集合

(2) 插入元素

s1.insert(3);       // 插入元素 3
s1.insert(1);       // 插入元素 1
s1.insert(2);       // 插入元素 2
s1.insert(3);       // 重复插入 3,会被自动忽略
// 此时 s1 = {1, 2, 3}

(3) 遍历 set

//若set<pair<int,int>> s1;
//for(auto &i:s1) cout<<num;
for (auto num : s1) {cout << num << " ";   // 输出 1 2 3
}

(4) 查找元素

auto it = s1.find(2);
if (it != s1.end()) {cout << "元素 2 存在!" << endl;
}

(5) 删除元素

s1.erase(2);        // 删除元素 2
s1.erase(s1.begin()); // 删除第一个元素(即 1)

2.3 set vs unordered_set

在这里插入图片描述

示例:统计唯一单词数

#include <iostream>
#include <set>
using namespace std;int main() {set<string> uniqueWords;string word;while (cin >> word) {  // 输入单词,按 Ctrl+Z (Windows) 或 Ctrl+D (Mac) 结束uniqueWords.insert(word);}cout << "唯一单词数: " << uniqueWords.size() << endl;return 0;
}
//输入:apple banana apple cherry banana
//输出:唯一单词数: 3

代码

#include <iostream>
#include <vector>
#include <set>
#include <string>
#include <algorithm>
#include <math.h>
#include <queue>
#include <climits>  // 包含INT_MAX常量
#include <cctype>
using namespace std;
int n;
typedef pair<long double, long double> DL;
set<DL> f;
DL a[1010];int main() {cin >> n;for (int i = 0; i < n; i++) {int k, b;cin >> k >> b;f.insert({k, b});}int cnt = 0;for (auto &i : f) {a[cnt++] = i;}int ans = 1;for (int i = 0; i < cnt; i++) {set<DL> d;for (int j = 0; j < i; j++) {long double k1 = a[i].first;long double b1 = a[i].second;long double k2 = a[j].first;long double b2 = a[j].second;if (k1 == k2)continue;//注意,交点的x,y值是浮点型,别定义成int了!!!long double x = (b2 - b1) / (k1 - k2);long double y = k1 * x + b1;d.insert({x, y});}ans += d.size() + 1;}cout << ans << endl;return 0;
}

文章转载自:

http://GP0cTNJV.tfmrt.cn
http://2hstnXU2.tfmrt.cn
http://ykca9kqW.tfmrt.cn
http://yDTizE1t.tfmrt.cn
http://5GZ8TE1R.tfmrt.cn
http://X3Iat8yt.tfmrt.cn
http://NQIZHiht.tfmrt.cn
http://lyDkEcE6.tfmrt.cn
http://dmTCJ76y.tfmrt.cn
http://R1a3MR2v.tfmrt.cn
http://cF92AYen.tfmrt.cn
http://a0TqZpYL.tfmrt.cn
http://N1PMVVX2.tfmrt.cn
http://fMBcme7w.tfmrt.cn
http://szbWGdkF.tfmrt.cn
http://BCcneDwt.tfmrt.cn
http://8pQNuJrC.tfmrt.cn
http://plafEK2o.tfmrt.cn
http://Gcp8K5w1.tfmrt.cn
http://UO2lfzvx.tfmrt.cn
http://DcFsoJGt.tfmrt.cn
http://J1TtKQBQ.tfmrt.cn
http://Vcekg06K.tfmrt.cn
http://Au3zuVYx.tfmrt.cn
http://Y4Tpz94S.tfmrt.cn
http://MtiA0UgA.tfmrt.cn
http://Jsiux8mA.tfmrt.cn
http://MakO98OD.tfmrt.cn
http://692ue1xN.tfmrt.cn
http://WufZi7lK.tfmrt.cn
http://www.dtcms.com/wzjs/658517.html

相关文章:

  • 盐山做网站价格甘德网站建设
  • 网站建设 源代码响应式手机网站制作
  • 全球优秀企业网站宣传渠道有哪些
  • flash静态网站北京电商网站建设外包
  • 中山网站推广词调节wordpress手机样式
  • 专做国外采购的网站网站建设服务都包含
  • 网站建设怎么改首页的标题网站可以做315认证吗
  • 网页制作与网站建设教程微盟商户助手
  • 怎样看网站的建设时间网文网站
  • 门户网站建设和运行招标文件福田附件网站建设公司
  • 民权县住房和城乡建设局网站郑州网站优化推广方案
  • 外贸建站网站公司北京注册建设公司网站
  • 网站开发 经济可行性常州城乡建设学校网站
  • 大连免费营销型建站网络推广重庆观音桥步行街
  • 湖北建设厅网站安全员名单百度线上推广
  • 手机棋牌网站大全wordpress为什么放弃
  • 网站建设语言如何用 ftp上传网站
  • 公司网站运营注意事项深圳做棋牌网站建设哪家公司收费合理
  • 网站关键词的布局关键词排名方法
  • 长春市长春网站建设网织梦cms是什么
  • 酷炫网站设计柳州网站建设找哪家
  • 建设h网站风险大吗建设银行内部审批哪些网站
  • 物流公司网站建设模板网站开发中间商怎么做
  • 网站建站域名解析最后做个体户备案网站可以做企业站吗
  • 做网站租用数据库seo关键词优化推广
  • 做短视频的网站收益api接口开发网站开发
  • 青岛网站制作企业网站主体负责人和网站负责人
  • 广东君冠建设有限公司网站你会怎么做外国的网站吗
  • 网站怎么添加后台顺德公司做网站
  • 南京市住房和城乡建设部网站做电子商务网站 语言