csp 小中大 踩雷总结

在CSP竞赛中,处理有序数据时需注意可能的升序或降序,仅处理一种顺序可能导致丢分。同时,输出中位数时要确保符合题目要求,精确到一位小数。在C++中,可以利用iomanip库的setprecision和setiosflags(ios::fixed)来控制小数点后的位数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.注意题目虽然说是有序,但是有可能升序也可能降序,所以需要进行判断,只处理某一个情况得一半分
2.注意中位数输出位数要加以控制,题目要求输出一位小数,如果有小数的话,没有的话只输出整数部分。

使用到C++的控制精度方法,头文件为iomanip,方法为setprecision(n),必须要和setiosflags(ios:fixed)合用才能控制小数点之后的位数,单用setprecision(n)只是控制总共输出几位数

#include<iostream>
#include<iomanip>
#include<algorithm>
using namespace std;
int main(){
   
   
	int n,pre=1;
	double mid1;
	cin>>n;
	int *t=new 
### 关于CCF CSP考试中的C++大中小知识点解析 #### 1. **字符串处理** 在CCF CSP考试中,字符串是一个重要的考点。考生需要掌握常见的字符串操作方法并能迅速实现编码。例如,在实际题目中可能会遇到类似“067-0-821162-4”的输入情况,此时需要注意如何正确识别和跳过特定字符(如`'-'`)。尽管某些情况下系统的判定可能忽略细节上的差异[^2],但在编写程序时仍需注意潜在的风险点。 对于此类问题,可以考虑使用标准模板库(STL)中的string类来进行更安全的操作,而不是依赖传统的C风格字符串。这样不仅可以减少内存管理错误的可能性,还能利用丰富的成员函数简化逻辑复杂度较高的部分。 #### 2. **STL容器——Vector** 另一个高频考察领域就是向量(vector),它属于动态数组的一种形式。了解其基本用法至关重要: - 初始化方式; - 插入删除元素的方法; - 访问指定位置数据的能力等等。 具体而言,当涉及到多维结构存储的时候,则要熟悉如何通过嵌套vectors模拟二维甚至更高维度的表格布局[^3]。下面给出一段简单的演示代码展示vector的基础运用场景: ```cpp #include <iostream> #include <vector> int main(){ std::vector<int> v; // 添加元素到末尾 v.push_back(1); v.emplace_back(2); // 输出第一个元素 if(!v.empty()) { std::cout << "First element: " << v.front() << "\n"; } return 0; } ``` 此外还需留意迭代器失效等问题以及性能方面的考量因素。 #### 3. **哈希表——Unordered_Set** 为了提高查找效率,无序集合(unordered_set)也是经常被提及的内容之一。主要学习要点如下所示: - 创建实例对象及其参数配置选项; - 掌握常用API接口的功能特性比如insert(), find(), erase(); - 明确返回值类型为iterator而非bool型结果; 这里附上一小段示例帮助理解unordered_set的实际应用价值所在: ```cpp #include <iostream> #include <unordered_set> int main(){ std::unordered_set<std::string> uset {"apple", "banana"}; auto search = uset.find("orange"); if(search != uset.end()){ std::cout << *search << " found!\n"; }else{ std::cout << "Not Found\n"; } return 0; } ``` 上述片段展示了如何查询某个键是否存在其中,并依据实际情况作出相应反馈动作. 综上所述,针对ccf csp竞赛准备期间围绕着c++语言展开复习计划应当覆盖但不限于以下几个方面:高效便捷的数据结构选取原则;精准可靠的算法设计思路;严谨细致的边界条件检验习惯. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值