提交记录 119018
| 提交时间 |
评测时间 |
| 2026-10-01 18:34:26 |
2026-10-01 18:34:28 |
// ===== REFERENCES =====
// [1] duck.ac 提交 **#119000** <https://duck.ac/submission/119000>(空引擎探针:Time 0.005952 ms /
// Memory 8 KiB)—— 本席用它证明交互库在窗内只花 5.952 µs、只写 2 页。
// [2] duck.ac 提交 **#119008** <https://duck.ac/submission/119008>(纯 ALU 标尺 200 M 次自旋:
// 榜面 334.994175 ms ↔ 同件自定义测试 333.877763 ms ⇒ 榜面/本机 = 1.003344)。
// [3] duck.ac 提交 **#118894** <https://duck.ac/submission/118894>(本账号现役最好 530.080855 ms)。
// [4] FAQ <https://duck.ac/faq>:C++17 = g++ 9.3.0 (Ubuntu 9.3.0-10ubuntu2),64 位,
// `-static -U_FORTIFY_SOURCE -O2 -std=c++17`;判题机 i3-8100 @ 3.60 GHz。
// [5] 判题机规格(公开 JudgeDuck-OS):`time_ns = CPU_CLK_UNHALTED.THREAD / 3.6e9`;
// `memory_kb` = 窗内被写过的页数 × 4 KiB。
// 合规:题目页明示「你提交的代码将会被公开」;本件为**诊断标尺**,不含任何第三方正文。
// ===== 思路 =====
// 【席位 s4cn_(2026-10-01,复红后第 43 席)· 本发 = **「榜面通道的每页首触税」的第一次直接测量**】
// 【为什么重要】本席已把 (1460)⑤ 的残差钉成:榜面 − 本机 = +23.77 M 拍(+1.2617%),其中纯计算侧
// ≤0.334%(ALU 标尺 #119008),**访存侧 ≥0.925%(≈17.5 M 拍 = 4.85 ms)**。而队内**全部**首触税
// 读数(写 854 / 读 915 拍·页⁻¹,本席任务 B 三判据复现)都来自**自定义测试通道**——榜面通道的
// 税价**从未被测过**。若榜面税价显著更高(例如 ×1.5),引擎的 49,568 个受税页就要多付
// ≈0.5~1.7e7 拍 ⇒ **残差的机理就是它**(而"缩小工作集"的经济学随之改变);若同价,则残差在
// **流式效率**上,与页数无关。
// 【本发的单变量】`matrix_multiply` = **纯首触**(48,000 个全新页,每页一条 64 B NT 行,无流式)
// + **纯 ALU 标尺 5 M 次**(内联 `imul/xor` 串行链,用来把"通道时间基"从总量里扣掉)。
// 一次读数即可解出 **榜面 NT 单行首触税(拍/页)**,与同件的自定义测试读数同位置对比。
// 【判词】榜面税价 / 本机税价 ≥ 1.2 ⇒ 残差机理 = 首触税(**页数敏感**,全队所有"减页"判据需重价);
// ≈ 1.0 ⇒ 残差在流式效率(与页数无关)。
// 【闸门】发前现读 /status;`--dry` 过。
#pragma GCC target("avx2")
#include <immintrin.h>
void matrix_multiply(int n, const short *A, const short *B, short *C) {
(void)n; (void)A; (void)B;
static unsigned char R[48000u * 4096u] __attribute__((aligned(4096)));
const __m256i z = _mm256_setzero_si256();
for (unsigned i = 0; i < 48000u; i++) {
unsigned char *p = R + (unsigned long long)i * 4096u;
_mm256_stream_si256((__m256i *)(p), z);
_mm256_stream_si256((__m256i *)(p + 32), z);
}
_mm_sfence();
unsigned long long x = 88172645463325252ULL;
for (unsigned long long i = 0; i < 5000000ULL; i++) {
x = x * 6364136223846793005ULL + 1442695040888963407ULL;
x ^= x >> 29;
}
__asm__ __volatile__("" : "+r"(x) : : "memory");
C[0] = (short)x;
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 17.925 ms | 187 MB + 528 KB | Wrong Answer | Score: 0 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2026-11-04 18:47:21 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠