在acm题目中经常会有十分麻烦的问题,有时候这些问题可以用一些已有的方法进行解决,不需要自己写算法。所以我在这里记录下来,也是作为学习笔记。
一、memset 头文件 cstring
这个函数可以用来初始化,例如:
int x[100];
memset(x,0,sizeof(x));
二、c++中string类的用法
getline(istream &in,string &s);用来把一行的内容写入s中
find(char *c, int pos = 0);从pos开始查找字符c在当前字符串的位置,返回值为字符c的位置,若找不到,返回值为 string::npos
insert(int pos, const char *s);从pos位置插入字符串s
erase(int pos = 0, int n = npos);删除pos开始的n个字符,返回修改后的字符串
三、sort 函数 头文件 algorithm
sort可以对任意对象进行排序
在数组中,用sort(a,a+n)调用
在vector中,用sort(v.begin(),v.end())调用
四、set 集合 头文件 set
set中元素已从小到大排好序,且集合中相同元素最多只出现一次
五、map 映射 头文件 map
map就是从键(key)到值(value)的映射,且重载了[]运算符,
可以用 map<string,int> name_id 来表示名字到id的映射
可以用 name_id["mzh"]=25 这样的方式赋值
六、栈、队列和优先队列
栈:符合 后进先出 规则的数据结构 有push和pop两种操作 头文件 stack
队列:符合 先进先出 的公平队列 头文件 queue 用push和pop进行入队和出队操作
七、随机生成
cstdlib 中的 rand 函数可以生成一个[0,RAND_MAX]闭区间内的均匀随机整数
可以用rank()%n 产生一个 [0,n-1]内的随机整数
需要随机数的程序在最开始时要执行一次 srand(time(NULL)),目的是初始化“随机数种子”,而不可以多次调用
八、断言
assert 宏
用法是 assert(表达式) 当表达式为假时强行终止程序,并给出错误提示。
九、用stringstream完成数据转换 头文件 sstream
stringstream可以用来把string类型的字符串转换成int
例如:string s("12345");
int x=1; //x=1
stringstream ss(s);
ss>>x; //x=12345
也可以
string s("12345");
int x=1; //x=1
stringstream ss;
ss<<s;
ss>>x; //x=12345
还可以用str()的方法:
typename x=5.222;
cin>>x;
stringstream ss;
ss<<x;
string s;
s=ss.str(); //s="5.222"
这样就可以将多种数值转换成字符串
分享到:
相关推荐
在准备ACM(国际大学生程序设计竞赛)的过程中,掌握一些做题技巧是非常重要的。以下是一些关键点: 1. **编程语言选择**:通常选择C语言来节省内存,因为它的语法简洁。但若需要使用C++库函数或STL,可以部分使用...
ACM做题过程中的一些小技巧。 1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout、cin和printf、scanf最好不要混用。 大数据输入输出时最好不要用cin、cout,防止超时。 2.有时候int型不够用,可以用...
在ACM(国际大学生程序设计竞赛)中,算法设计与技巧是至关重要的,尤其是在面对复杂的编程挑战时。本文将深入探讨ACM相关算法设计及STL(标准模板库)的实现,同时分享一些巧妙的解题思路。 首先,ACM算法设计主要...
总之,"ACM.zip_ACM实用小算法"提供的代码实例,是动态规划在实际问题中的具体应用,对于学习和理解动态规划算法,以及提升ACM比赛中的编程技巧都有极大的帮助。通过深入研究这两个算法,不仅可以加深对动态规划的...
文件"ACM做题过程中的一些小技巧 .txt"可能包含如快速查找、排序算法(如冒泡排序在"讲座2 - 数组、强制类型转换与冒泡排序(release).ppt"中可能有详细介绍)、动态规划、图论等常见问题的解决方法。了解这些基本...
【标题】"acm试题答案acm" 涉及的主要知识点是ACM(国际大学生程序设计竞赛,International Collegiate Programming Contest,简称ICPC或ACM/ICPC)的解题策略与技巧,以及如何寻找和理解比赛题目答案。ACM是一项...
总的来说,ACM编程挑战中涉及的“比较数的大小”问题要求参赛者掌握基本的算法和数据结构,以及高效的编程技巧。通过不断地练习和学习,参赛者可以提高解决这类问题的能力,并在竞赛中取得好成绩。
课程的主要目的是介绍ACM程序设计的基础概念及入门技巧。 - **在线平台**: 学生可以通过访问学校专属的ACM在线评测系统(网址:acm.nefu.edu.cn)进行练习和测试。 - **教学资源**: 课件可通过特定地址下载(acm....
本篇文章将详细讲解ACM中的基础算法和小技巧,包括位运算、完全数以及幂运算。 位运算在ACM中扮演着重要的角色,因为它们在处理整数操作时能提供高效的方法。例如,`x&-x`是一个常见的位运算技巧,用来获取整数`x`...
13. **概率与随机算法**:在解决某些问题时,可能需要使用概率知识,或者设计随机算法来避免最坏情况的发生,提高算法的平均效率。 由于文档中提供的内容有限,以上提到的算法知识点只是基于给出的部分标题进行的...
这些课件不仅在湖南大学使用,还被其他高校如南开大学采纳为教学材料,体现了其高质量和实用性。 【描述】:“湖南大学的acm课件,被多个大学作为acm教程,包括南开。”这段描述揭示了这些课件的广泛影响力和权威性...
【杭电ACM培训课件】是一套专为新手设计的教育资源,旨在引导学习者深入理解和掌握ACM(国际大学生程序设计竞赛)的竞赛规则、编程技巧以及算法基础。ACM竞赛是全球知名的大学生编程比赛,它强调团队合作、快速编程...
本文主要讨论了在ACM竞赛中使用Java编程的一些心得和技巧。 首先,Java作为一种面向对象的编程语言,因其简洁的语法和丰富的库支持,成为了很多参赛者的首选。在处理大数运算时,Java提供了BigInteger和BigDecimal...
- **适时跟风**:比赛中后期可根据其他队伍的表现来选择题目,但要谨慎对待看似复杂的题目,有时可能只需要简单的技巧即可解决。 - **合理安排做题顺序**:根据题目的难易程度和个人强项来安排做题顺序,优先解决...
ACM竞赛技巧自学 本文档旨在总结ACM竞赛技巧的要点,涵盖了调试和测试、算法设计、数据处理等方面的经验...ACM竞赛技巧需要掌握调试和测试、算法设计、数据处理等方面的经验总结,并且需要注意一些小技巧和经验总结。
10. **优化技巧**:包括代码优化(减少不必要的计算,使用合适的数据结构等)、输入/输出优化(如使用scanf代替cin,预处理大文件等)以及时间复杂度分析,这些都是提高程序运行效率的关键。 在学习"ACM常用代码2...
2. **数学知识**:数论、组合数学、线性代数等在ACM中的应用,例如模幂运算、费马小定理等。 3. **数学建模**:将实际问题转化为数学模型,如网络流、线性规划等。 4. **位操作**:高效地进行整数操作,如异或、与、...
《ACM黑书》是针对ACM(国际大学...总的来说,《ACM黑书》是一本全面而实用的教材,无论你是初学者还是有经验的参赛者,都能从中受益匪浅。通过深入学习和实践书中的内容,可以提高你在算法设计和编程竞赛中的竞争力。