`
CrazyMizzz
  • 浏览: 24247 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
社区版块
存档分类
最新评论

acm实用小技巧

阅读更多
在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"
   这样就可以将多种数值转换成字符串



2
0
分享到:
评论

相关推荐

    ACM大赛一些技巧做题小技巧

    在准备ACM(国际大学生程序设计竞赛)的过程中,掌握一些做题技巧是非常重要的。以下是一些关键点: 1. **编程语言选择**:通常选择C语言来节省内存,因为它的语法简洁。但若需要使用C++库函数或STL,可以部分使用...

    ACM做题时的小技巧

    ACM做题过程中的一些小技巧。 1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout、cin和printf、scanf最好不要混用。 大数据输入输出时最好不要用cin、cout,防止超时。 2.有时候int型不够用,可以用...

    acm相关算法设计及技巧

    在ACM(国际大学生程序设计竞赛)中,算法设计与技巧是至关重要的,尤其是在面对复杂的编程挑战时。本文将深入探讨ACM相关算法设计及STL(标准模板库)的实现,同时分享一些巧妙的解题思路。 首先,ACM算法设计主要...

    ACM.zip_ACM实用小算法

    总之,"ACM.zip_ACM实用小算法"提供的代码实例,是动态规划在实际问题中的具体应用,对于学习和理解动态规划算法,以及提升ACM比赛中的编程技巧都有极大的帮助。通过深入研究这两个算法,不仅可以加深对动态规划的...

    ACM刷题技巧及一些题目解答

    文件"ACM做题过程中的一些小技巧 .txt"可能包含如快速查找、排序算法(如冒泡排序在"讲座2 - 数组、强制类型转换与冒泡排序(release).ppt"中可能有详细介绍)、动态规划、图论等常见问题的解决方法。了解这些基本...

    acm试题答案acm

    【标题】"acm试题答案acm" 涉及的主要知识点是ACM(国际大学生程序设计竞赛,International Collegiate Programming Contest,简称ICPC或ACM/ICPC)的解题策略与技巧,以及如何寻找和理解比赛题目答案。ACM是一项...

    ACM.zip_ACM_acm比较大小

    总的来说,ACM编程挑战中涉及的“比较数的大小”问题要求参赛者掌握基本的算法和数据结构,以及高效的编程技巧。通过不断地练习和学习,参赛者可以提高解决这类问题的能力,并在竞赛中取得好成绩。

    ACM考试题 ACM程序设计

    课程的主要目的是介绍ACM程序设计的基础概念及入门技巧。 - **在线平台**: 学生可以通过访问学校专属的ACM在线评测系统(网址:acm.nefu.edu.cn)进行练习和测试。 - **教学资源**: 课件可通过特定地址下载(acm....

    简单acm小模板

    本篇文章将详细讲解ACM中的基础算法和小技巧,包括位运算、完全数以及幂运算。 位运算在ACM中扮演着重要的角色,因为它们在处理整数操作时能提供高效的方法。例如,`x&-x`是一个常见的位运算技巧,用来获取整数`x`...

    2016年ACM常用算法总结

    13. **概率与随机算法**:在解决某些问题时,可能需要使用概率知识,或者设计随机算法来避免最坏情况的发生,提高算法的平均效率。 由于文档中提供的内容有限,以上提到的算法知识点只是基于给出的部分标题进行的...

    湖南大学acm经典课件

    这些课件不仅在湖南大学使用,还被其他高校如南开大学采纳为教学材料,体现了其高质量和实用性。 【描述】:“湖南大学的acm课件,被多个大学作为acm教程,包括南开。”这段描述揭示了这些课件的广泛影响力和权威性...

    杭电acm培训课件

    【杭电ACM培训课件】是一套专为新手设计的教育资源,旨在引导学习者深入理解和掌握ACM(国际大学生程序设计竞赛)的竞赛规则、编程技巧以及算法基础。ACM竞赛是全球知名的大学生编程比赛,它强调团队合作、快速编程...

    ACM java编程感悟

    本文主要讨论了在ACM竞赛中使用Java编程的一些心得和技巧。 首先,Java作为一种面向对象的编程语言,因其简洁的语法和丰富的库支持,成为了很多参赛者的首选。在处理大数运算时,Java提供了BigInteger和BigDecimal...

    acm比赛注意事项

    - **适时跟风**:比赛中后期可根据其他队伍的表现来选择题目,但要谨慎对待看似复杂的题目,有时可能只需要简单的技巧即可解决。 - **合理安排做题顺序**:根据题目的难易程度和个人强项来安排做题顺序,优先解决...

    ACM竞赛技巧自学.pdf

    ACM竞赛技巧自学 本文档旨在总结ACM竞赛技巧的要点,涵盖了调试和测试、算法设计、数据处理等方面的经验...ACM竞赛技巧需要掌握调试和测试、算法设计、数据处理等方面的经验总结,并且需要注意一些小技巧和经验总结。

    acm基础之--acm常用代码2

    10. **优化技巧**:包括代码优化(减少不必要的计算,使用合适的数据结构等)、输入/输出优化(如使用scanf代替cin,预处理大文件等)以及时间复杂度分析,这些都是提高程序运行效率的关键。 在学习"ACM常用代码2...

    ACM算法精品(ACM菜鸟必看)

    2. **数学知识**:数论、组合数学、线性代数等在ACM中的应用,例如模幂运算、费马小定理等。 3. **数学建模**:将实际问题转化为数学模型,如网络流、线性规划等。 4. **位操作**:高效地进行整数操作,如异或、与、...

    ACM黑书_ACM_

    《ACM黑书》是针对ACM(国际大学...总的来说,《ACM黑书》是一本全面而实用的教材,无论你是初学者还是有经验的参赛者,都能从中受益匪浅。通过深入学习和实践书中的内容,可以提高你在算法设计和编程竞赛中的竞争力。

Global site tag (gtag.js) - Google Analytics