提交记录 48207
| 用户 |
题目 |
状态 |
得分 |
用时 |
内存 |
语言 |
代码长度 |
| iMMIQ |
1001. 测测你的排序 |
Time Limit Exceeded |
0 |
5 s |
390660 KB |
C++17 |
1.14 KB |
| 提交时间 |
评测时间 |
| 2026-09-16 14:25:40 |
2026-09-16 14:25:48 |
// duck.ac 1001 数据分布探针:统计 4 个字节各自的直方图 + min/max + 重复/有序比例 + top16 去重数
// 然后 std::sort 保持 AC。输出经 stdout(重定向到内存,应该会显示在提交页)。
#include <algorithm>
#include <cstdint>
#include <cstdio>
namespace {
unsigned long h[4][256];
unsigned char bm[8192];
unsigned long long dup = 0, adj = 0, pairs = 0;
unsigned mn = ~0u, mx = 0;
} // namespace
void sort(unsigned* a, int n) {
for (long i = 0; i < n; ++i) {
unsigned v = a[i];
h[0][v & 255]++;
h[1][(v >> 8) & 255]++;
h[2][(v >> 16) & 255]++;
h[3][v >> 24]++;
bm[(v >> 16) >> 3] |= 1u << ((v >> 16) & 7);
if (v < mn) mn = v;
if (v > mx) mx = v;
if (i) {
unsigned p = a[i - 1];
if (p == v) ++dup;
if (p <= v) ++adj;
++pairs;
}
}
unsigned distinct16 = 0;
for (int i = 0; i < 65536; ++i)
if (bm[i >> 3] & (1u << (i & 7))) ++distinct16;
printf("n=%d min=%x max=%x dup=%llu adjordered=%llu/%llu distinct_top16=%u\n",
n, mn, mx, dup, adj, pairs, distinct16);
for (int b = 3; b >= 0; --b) {
printf("byte%d:", b);
for (int k = 0; k < 256; ++k) printf(" %llx", h[b][k]);
printf("\n");
}
fflush(stdout);
std::sort(a, a + (size_t)n);
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 5 s | 381 MB + 516 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2026-09-20 14:36:09 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠