这道题我在csp考试时候,当时没有做出来,当时没用debug,不知道怎么错的。
今天重新做一次,发现memset我用错了。
memset只能置0或者-1,其他的要用for循环进行。
题目思路:
这个题还是挺简单的。既然球一开始不会重合,只要判断某个位置上有两个球的时候,就改变这两个球的方向。
如果在边缘,也要改变方向,这样使得球可以正常移动。
用一个循环表示时间的流逝,遍历每一个球。
1 #include2 #include 3 4 using namespace std; 5 6 int main() 7 { 8 int n, L, t;//小球的个数、线段长度和t秒 9 cin>>n>>L>>t;10 int location[n+1];11 int direction[n+1];12 int LL[L];13 14 memset(LL,0,L*sizeof(int));15 16 for(int i=0; i >location[i];22 LL[location[i]]++;23 }24 //memset(direction,1,sizeof(int));25 26 for(int j=0; j