题目链接是:http://codeforces.com/problemset/problem/484/A
我的代码的链接是:http://codepad.org/1U9HLfXD
代码的第7行 ,我原本是写 int a[300];然后在OJ上提交后显示 超时;
后来 改成 long long a[300];后就被AC了。
我觉得在这道题目中 数组a的每个元素的值并不大,为什么不能用int呢?
int arr[100];定义了数组arr,包含100个元素,如果你写成int arr[100]=0;想将数组全部内容初始化为0,是不行的,连编译都不能通过。这种情况的初始化,有两种方法,一种是一个一个的初始化,如for(int i=0;i<100;i++)arr[i]=0;就完成了数组的初始化。另一种方法,就是使用memset:一个语句就够了--memset(arr,0,sizeof(int)*100);
各参数解释如下:arr是数组的首地址,0就是要讲这些地址的内容赋值为0,sizeof(int)求出int类型的长度,乘以100就表示arr数组的整个长度。
文章http://blog.csdn.net/ypb455360299/article/details/6412923
long型占用空间小
这个不同机器实现应该是不一样的,甚至编译器的变量大小好像都不一样,当然我我觉的a题的时候很多情况,都是申请足够大的全局变量空间来做,一般都是这样的
亲,说个题外话,你的代码的注释是不是要 加强啦 ,本想给你看看什么问题的,看是没有注释哎,可读性减弱了。以后留意哦,fighting。
与数值范围有关, 用int超出了它的表示范围, 用long long就可以.
问一下那为啥会显示超时呀