提交记录 11798


用户 题目 状态 得分 用时 内存 语言 代码长度
AwD 1001. 测测你的排序 Wrong Answer 0 2.44 s 390636 KB C++ 858 B
提交时间 评测时间
2020-02-14 19:16:36 2020-08-01 02:48:01
#include <algorithm>

#define U unsigned int
#define UL unsigned long long
#define LOG2(x) ((U)(8 * sizeof (UL) - __builtin_clzll((x)) - 1))
UL fast_sqrt(UL n)
{
    if (n < 4) return (n == 0 ? 0 : 1);
    U nl = LOG2(n); nl -= nl & 1;
    static const U P[] = {8, 4, 11, 9, 14, 15, 14, 13, 19, 18, 14, 29};
    static const U Q[] = {8, 4, 9, 7, 10, 10, 9, 8, 11, 10, 7, 15};
    UL p = P[(n >> (nl - 2)) - 4], q = Q[(n >> (nl - 2)) - 4], t;
    if ((n >> (nl - 2)) - 4 == 1) if (n >> (nl - 3)) p = 10, q = 9; else p = 14, q = 12;
    t = (q * q * n >> nl) + p * p; q *= 2 * p;
    if (t * t << nl >= n * q * q) t --;
    p = (q * q * n >> nl) + t * t; q *= 2 * t;
    UL l = (p << (nl >> 1)) / q + 1;
    if (l * l > n) l --;
    if (l * l > n) l --;
    return l;
}

void sort(unsigned *a, int n) {
	for (int i = 0; i < n; ++ i) a[i] = fast_sqrt(a[i]);

}

CompilationN/AN/ACompile OKScore: N/A

Testcase #12.44 s381 MB + 492 KBWrong AnswerScore: 0


Judge Duck Online | 评测鸭在线
Server Time: 2026-03-27 03:14:34 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠