topcoder入门教程:http://hi.baidu.com/evilsham/item/8fd1f5ce6ae3672b449416b7
srm都是简答题,我的心得是:
第一:拼手速。第二题:拼英语理解能力。所以好好打基础
1:第一题简单模拟题,给定一个初值,遇到与之相等的,则自己变成自己的两倍,依次进行,求最后这个数为多少。
class AmebaDiv2{
public:
int simulate(vector <int> X, int A){
for(int i = 0; i < X.size(); i ++){
if(X[i] == A) {
A = A*2;
}
}
return A;
}
};
2:第二题从0位置开始往一个方向走到D,每次走一格或者B格,判断是否可以恰好T步到达D.
刚开始以为是搜索,结果发现一个二元方程组就可以解决。
class LongLongTripDiv2{
public:
string isAble(long long D, int T, int B){
double x = (D-T)*1.0/(B-1);
double y = T - x;
cout << x << " " << y << endl;
if(x >= 0 && y >= 0 && (long long)x == x && (long long)y == y)
return "Possible";
else return "Impossible";
}
};
3:第三题在一个半小时内没怎么想出来。