本文献给那些把c当作自己主要编程语言而且有一定c++基础,想做topcoder的人

1.topcoder的题目不需要标准输入输出cin,cout,scanf,printf,所有的参数都是通过函数参数传递的形式输入

输出通过return返回。例如:

一般topcoder题都有如下的说明:

Class: Substitute

Method:getValue

Parameters:String, String

Returns:int

Method signature:

int getValue(String key, String code)

在这里你需要建一个类,名字叫Substitute,类里有一个函数

int getValue(String key, String code)

数据通过函数参数key和code传入,类似输入

通过return 返回,类似输出

所以topcoder的题都可以有这样一个模板:

#include <string>
#include <vector>
using namespace std;class   //这儿加上题目中具体的类名
{
public://这儿加上题目中具体的函数
};

2.vector类

topcoder的数组是用vector这个类定义的,关于这个类常用的函数有size( ),功能像字符数组的strlen一样,获取数组的长度。

比如你要定义一个int型数组你可以:vector <int> array;

array.size(); //获取array的长度

定义一个字符数组你可以:vector <char> array;

array的默认长度是0

其他类型以此类推

还有一点需要注意,那就是用vector定义的数组可以任意长,而且可以像c的数组那样访问具体元素

比如你可以通过array[0]访问array的第一个元素,通过array[i]访问array的第i个元素

3.string类

在topcoder里字符串是通过用string定义的变量传入函数的,也是通过string定义的变量返回的

它也有一个常用函数size( ),用来获取字符串长度。

它也可以像c里的数组那样访问字符串里的每个字符。

string s = "Hello";

s[0] = 'H'; //s变成了"hello"

以下是一个具体的topcoder程序,不必理会程序具体功能,只是告诉你topcoder的程序应该是什么格式

#include <string>
#include <vector>
using namespace std;class Chooser {
public:int numSets(vector<int> a, vector<int> b, vector<int> c) {int sum = 0;for (int i = 0; i < a.size(); i++) {for (int j = 0; j < b.size(); j++) {for (int k = 0; k < c.size(); k++) {int n = a[i] + b[j] + c[k];if (n >= 60 && n <= 75) {sum++;}}}}return sum;}
};

除去模板,你会发现在函数体里的具体实现,语法和c差不多

有了上述知识,你可以像写c程序一样在类里的函数里写程序了

做TopCoder应注意什么相关推荐

  1. 用网页做斯特鲁普效应(Stroop effect) 的实验(待完善)

    斯特鲁普效应(Stroop effect)在心理学中指干扰因素对反应时间的影响.例如当测试者被要求说出某个颜色和其覆盖的文字字面意义不符的词语时,被测者往往会反应速度下降,出错率上升. 准确的表述是当 ...

  2. 第一次做topcoder

    知道topcoder是很早前的事了,但是一直没去做过.昨晚是TCC2007(Algorithm) 资格赛的第一场,就去做了一把,感觉不错,虽然有点小遗憾(被人challenged了一道). 昨晚第一次 ...

  3. 不可用于python编程开发的是_Python编程语言可做而不应做的一些事是什么_Python视频_Python视频教程_编程语言_课课家...

    在 -5 ~ 256 之间的整型数值可以进行互换 当我在考虑这个能用在什么地方的时候,我有点迷茫了.撇开这点,你在此之前知道 Python 中的数字是可以改变其实际含义的吗? 之所有会有这种情况,是因 ...

  4. 领导应该怎么当?盯目标、抓计划、管时间、做农夫、当仆人……

    哈佛商学院,被称为培养商人.老板和总经理的"工厂".在美国500家最大公司里担任最高职位的经理中,有1/5毕业于这所学院. 哈佛认为:一个成功的总经理应该是一个全才,至少应具备三种 ...

  5. GPIO做输出还能作外部中断输入吗?

    偶尔会有人问起STM32芯片的GPIO做输出时还是否可能作为外部中断触发输入,这里一起聊聊该话题. 作为STM32芯片,其外部中断触发源可以是硬件模式或软件模式.所谓软件模式就是通过操作相关寄存器产生 ...

  6. 我在德国做SAP CRM One Order redesign工作的心得

    时间过得很快,今天是我到德国工作的第四周,刚好一个月.Prototype的框架已经搭起来了,现在Order能够在新的框架下正常读写,能跑一些简单的scenario,这些scenario对于end us ...

  7. 我在德国做SAP CRM One Order redesign工作的心得 1

    时间过得很快,今天是我到德国工作的第四周,刚好一个月.Prototype的框架已经搭起来了,现在Order能够在新的框架下正常读写,能跑一些简单的scenario,这些scenario对于end us ...

  8. 我们为什么用GO语言来做区块链?

    作者:思想的苇草 在区块链公链的开发圈子里,我们找到了一些流行的编程语言,有C++.Golang.Python和最近新起的Rust等等. 我们稍微对比较有名的项目采用的编程语言做个统计,如下图: 老一 ...

  9. topcoder 第一次比赛

    说来惭愧,,自己虽然也是topcoder的一员,,,今天才算是在topcoder上的第一次比赛.......刚开始一直感觉水平不够,,就一直没在topcoder平台上做过题.大一暑假过后,实力提升了一 ...

最新文章

  1. Go的50坑:新Golang开发者要注意的陷阱、技巧和常见错误[2]
  2. Android EditText如何去除边框添加下划线
  3. 032_jdbc-mysql批量操作
  4. cloudwatch_将CloudWatch Logs与Cloudhub Mule集成
  5. Android逆向笔记-Unity3D逆向一般思路(静态分析)
  6. ubuntu系统重启后桌面分辨率减小的原因及解决方法
  7. 基于光流模型的图像运动分析
  8. 程序员必知的前端演进史
  9. 您已经成为CSDN博客专家
  10. (转)“领导者”沈南鹏:逼着自己不断思考,作为VC没有选择
  11. 使用Java生成验证码
  12. C语言实现三种死循环
  13. 第九届GIS应用技能大赛上午(试题及答案含数据)
  14. 工程经济有何难,思维导图来助阵
  15. JavaScript中ubound函数
  16. 今年Android面试必问的这些技术面,面试心得体会
  17. 持续迭代、永久更新的WIN NFT HORSE,具有无穷无尽的生命力
  18. 对seed()的个人理解
  19. mastercam数控编程经验分享,建议收藏
  20. 网络天才网页中文版_网络天才网页版(在线玩)-网络天才手游网页版下载v2.2.3-72游戏网...

热门文章

  1. 火绒规则 禁止所有软件的安装_用火绒的自定义规则 彻底告别流氓软件
  2. jodd忽略ssl证书_2.使用jodd 操作mysql数据库
  3. 基于springboot智慧物业管理系统(完美运行,数据库源代码,可远程调试)
  4. Python课程内容回顾
  5. 问题:jupyterbook打印行数不全
  6. 解决Adobe cs6系列软件在Windows10操作系统中无法正常运行问题
  7. EMC Data Domain 存储系统的日常健康检查
  8. 我的showkey 刷挂了。
  9. python复数的实部和虚部的数字类型_Python数据类型之数字
  10. 如何使用Android Studio来申请百度地图密钥