水星湖 @ 2024-03-13 22:47:56
本来就是一道二维差分的板子,题解区一翻全都是说数据水然后直接暴力的
by scp020 @ 2024-03-13 23:28:35
@小粉兔 2.4ghz
by scp020 @ 2024-03-13 23:29:56
@Zemu_Ooo 不争论了。wssb。
by scp020 @ 2024-03-13 23:31:11
我电脑cpu太差了。
by 小粉兔 @ 2024-03-13 23:33:35
2.4 GHz 就是一秒 2.4e9 个指令吧。还不包括循环展开乱序发射什么的
X86-64 一个循环数组自增编译成
.L3:
movdqa xmm0, XMMWORD PTR [rax]
add rax, 16
paddd xmm0, xmm1
movaps XMMWORD PTR [rax-16], xmm0
cmp rdx, rax
jne .L3
类似物
每 6 条指令 2 次内存操作、1 次跳转,L1 缓存命中可以认为不消耗额外时间,分支预测成功率很高
by 小粉兔 @ 2024-03-13 23:33:55
别跑啊我电脑也才 3.20 GHz
by scp020 @ 2024-03-13 23:36:55
雾,貌似是的,我才疏学浅
by 小粉兔 @ 2024-03-13 23:37:39
这段代码可以看各个 OJ 评测机型号
#include <stdint.h>
#include <iostream>
#include <cpuid.h>
static void cpuid(uint32_t func, uint32_t sub, uint32_t data[4]) {
__cpuid_count(func, sub, data[0], data[1], data[2], data[3]);
}
int main() {
uint32_t data[4];
char str[48];
for(int i = 0; i < 3; ++i) {
cpuid(0x80000002 + i, 0, data);
for(int j = 0; j < 4; ++j)
reinterpret_cast<uint32_t*>(str)[i * 4 + j] = data[j];
}
std::cout << str;
}
by scp020 @ 2024-03-13 23:39:05
我只查到了洛谷cpu的缓存是33m,不知道三级缓存各是多少。。。反正我电脑L1才320kb
by scp020 @ 2024-03-13 23:39:53
Platinum 8360H,24核,恐怖如斯
by scp020 @ 2024-03-13 23:43:12
简而言之:我呆在家里不知道外面cpu变化多块,就小丑了