对某些变量使用long long
时,Codeforces上的某些任务会导致“TLE”(超出时间限制),而将其更改为int
会导致“已接受”。
该问题如何影响代码?编译器如何处理它?使用int
时为什么代码更快?
答案 0 :(得分:6)
这在很大程度上取决于平台。以下是使用long long
可能会降低代码速度的两个实例:
long long
是64位且int
是32位),那么执行添加等操作会涉及更多工作。int
更改为long long
会产生很大影响,因为数据的数量是原来的两倍。将数据从磁盘或ram拉到CPU缓存是很昂贵的,如果数据类型是两倍大,CPU必须更频繁地请求数据。