`
CrazyMizzz
  • 浏览: 23286 次
  • 性别: 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时才用C++; cout、cin和printf、scanf最好不要混用。 大数据输入输出时最好不要用cin、cout,防止超时。 2.有时候int型不够用,可以用...

    ACM比赛经验与常见问题对应的解题技巧总结

    接下来我们将对上述内容进行更详细的展开,以提供更具实践性的ACM比赛经验分享: 一、赛前准备 基础知识储备的具体实施: 对于C++等编程语言,深入理解指针、模板、面向对象设计等内容,这些在解决某些复杂问题时...

    ACM巨全模板 .pdf

    小技巧: 1.关于int,double强转为string 2.输入输出挂 3.低精度加减乘除 4.一些组合数学公式 5.二维坐标的离散化 6.消除向下取整的方法 7.一些常用的数据结构 (STL) 8.Devc++的使用技巧 9.封装好的一维离散化 10....

    如何学习ACM,看后受益匪浅

    这要求大家尽快掌握“以空间换时间”的原则策略,能用哈希表来存储的数据一定不要到时候再去查找,如果实在不能建哈希表,再看看能否建二叉查找树等等——这都是争取时间的策略,掌握这些技巧需要大家对数据结构尤其...

    python ACM judge online python(ACM在线判题系统) .zip

    Python使用技巧,实战应用开发小系统参考资料,源码参考。经测试可运行。 详细介绍了一些Python框架的各种功能和模块,以及如何使用Python进行GUI开发、网络编程和跨平台应用开发等。 适用于初学者和有经验的开发者...

    竞赛资料源码-ACM 算法竞赛的一些模版.zip

    竞赛准备:适用于各种教育部认可的竞赛,如全国电子设计大赛、全国大学生智能汽车竞赛等,他们可以借助这些资料了解竞赛的规则、要求和技巧。 学习与项目开发:可以用作毕设、课设、作业和竞赛项目的开发基础,可以...

    该项目为一个集数据抓取与展示一体的ACM队员数据系统,基于Django、python实现。.zip

    Python使用技巧,实战应用开发小系统参考资料,源码参考。经测试可运行。 详细介绍了一些Python框架的各种功能和模块,以及如何使用Python进行GUI开发、网络编程和跨平台应用开发等。 适用于初学者和有经验的开发者...

    Java语言的科学与艺术(国外计算机科学经典教材)

     在本书中,斯坦福大学教授、著名的计算机科学教育领导者Eric S.Roberts着重强调了更适合于初学者的友好讲解方式,使用ACM Java库简化编程。本书简练清晰地介绍了传统CS1课程的内容,同时也包含了最近的Computing ...

    Java语言的科学与艺术 斯坦福大学经典教材

    5.3 方法调用过程的技巧 5.4 分解 5.5 算法方法 5.6 小结 5.7 复习题 5.8 编程练习 第6章 对象和类 6.1 使用RandomGenerator类 6.2 javadoc文档系统 6.3 定义自己的类 6.4 表示学生信息 6.5 有理数 6.6 扩展现有类 ...

    挑战程序设计竞赛(第2版)

    作者结合自己丰富的参赛经验,对严格筛选的110 多道各类试题进行了由浅入深、由易及难的细致讲解,并介绍了许多实用技巧。每章后附有习题,供读者练习,巩固所学。 本书适合程序设计人员、程序设计竞赛爱好者以及...

    高效算法:竞赛、应试与提高必修128例.[法] Christoph Dürr Jill-Jênn Vie(带书签文字版).pdf

    本书旨在探讨如何优化算法效率,详细阐述了经典算法和特殊算法的实现、应用技巧和复杂度验证过程,内容由浅入深,能帮助读者快速掌握复杂度适当、正确率高的高效编程方法以及自检、自测技巧,是参加ACM ICPC、Google...

    IOI国家集训队论文集1999-2019

    # 国家集训队论文列表(1999-2019) ... - _国家集训队论文列表(1999-2019)_ ...杨 弋 -《从“小H的小屋”的解法谈算法的优化》 朱晨光 -《浅析倍增思想在信息学竞赛中的应用》 李羽修 -《Hash函数的设计优化》 ...

    几个重要的c程序源码.rar

    2012-06-11 16:03 0 1.txt 2012-06-11 15:20 42,528 c#仿QQ好友界面.rar 2012-06-11 15:22 216,281 ChineseChessV1.rar ...2012-06-11 15:38 299,008 (HDUACM2010版_06)并查集(最小生成树).ppt

Global site tag (gtag.js) - Google Analytics