Merge remote-tracking branch 'upstream/main'

This commit is contained in:
static
2025-06-16 04:43:17 +00:00
11 changed files with 205 additions and 197 deletions

View File

@@ -52,15 +52,17 @@ int graph_dijkstra(int n, int nonce) {
graph_dijkstra_visited[v] = 1; graph_dijkstra_visited[v] = 1;
for (int i = 0; i < n; ++i) { for (int i = 0; i < n; ++i) {
if (graph_dijkstra_visited[i]) continue; if (graph_dijkstra_visited[i])
if (graph_dijkstra_dist[i] != -1 && graph_dijkstra_dist[i] < dist + graph_weight[v][i]) continue; continue;
if (graph_dijkstra_dist[i] != -1 && graph_dijkstra_dist[i] < dist + graph_weight[v][i])
continue;
graph_dijkstra_dist[i] = dist + graph_weight[v][i]; graph_dijkstra_dist[i] = dist + graph_weight[v][i];
} }
} }
int result = 0; int result = 0;
for (int i = 0; i < n; ++i) { for (int i = 0; i < n; ++i) {
result += graph_dijkstra_dist[i]; result ^= graph_dijkstra_dist[i];
} }
return result; return result;
@@ -76,12 +78,15 @@ int graph_floyd_warshall(int n, int nonce) {
for (int k = 0; k < n; ++k) { for (int k = 0; k < n; ++k) {
for (int i = 0; i < n; ++i) { for (int i = 0; i < n; ++i) {
if (graph_weight[i][k] == -1) continue; if (graph_weight[i][k] == -1)
continue;
for (int j = 0; j < n; ++j) { for (int j = 0; j < n; ++j) {
if (graph_weight[k][j] == -1) continue; if (graph_weight[k][j] == -1)
continue;
int weight = graph_weight[i][k] + graph_weight[k][j]; int weight = graph_weight[i][k] + graph_weight[k][j];
if (graph_weight[i][j] != -1 && graph_weight[i][j] < weight) continue; if (graph_weight[i][j] != -1 && graph_weight[i][j] < weight)
continue;
graph_weight[i][j] = weight; graph_weight[i][j] = weight;
} }
} }
@@ -90,7 +95,7 @@ int graph_floyd_warshall(int n, int nonce) {
int result = 0; int result = 0;
for (int i = 0; i < n; ++i) { for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) { for (int j = 0; j < n; ++j) {
result += graph_weight[i][j]; result ^= graph_weight[i][j];
} }
} }
return result; return result;

View File

@@ -30,7 +30,7 @@ int matrix_mul(int n, int nonce) {
for (int k = 0; k < n; ++k) { for (int k = 0; k < n; ++k) {
matrix_c[i][j] += matrix_a[i][k] * matrix_b[k][j]; matrix_c[i][j] += matrix_a[i][k] * matrix_b[k][j];
} }
result += matrix_c[i][j]; result ^= matrix_c[i][j];
} }
} }
@@ -50,7 +50,7 @@ int matrix_add(int n, int nonce) {
for (int i = 0; i < n; ++i) { for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) { for (int j = 0; j < n; ++j) {
matrix_c[i][j] = matrix_a[i][j] + nonce * matrix_b[i][j]; matrix_c[i][j] = matrix_a[i][j] + nonce * matrix_b[i][j];
result += matrix_c[i][j]; result ^= matrix_c[i][j];
} }
} }

View File

@@ -56,7 +56,7 @@ int verify_median(int n, int* test) {
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
int v = test[i]; int v = test[i];
result += v; result ^= v;
} }
return result; return result;

View File

@@ -14,8 +14,8 @@ void multiply_data_init(int nonce) {
int y = nonce; int y = nonce;
for (i = 0; i < 100; i++) { for (i = 0; i < 100; i++) {
x = (x * 97 + 17) % 10009; x = (x * 97 + 17) % 1009;
y = (y * 17 + 23) % 10007; y = (y * 17 + 23) % 1007;
input1_multiply[i] = x; input1_multiply[i] = x;
input2_multiply[i] = y; input2_multiply[i] = y;
} }
@@ -26,6 +26,9 @@ int multiply(int x, int y) {
int result = 0; int result = 0;
for (i = 0; i < 32; i++) { for (i = 0; i < 32; i++) {
if (x == 0)
break;
if ((x & 0x1) == 1) if ((x & 0x1) == 1)
result = result + y; result = result + y;
@@ -47,7 +50,7 @@ int verify_multiply(int n, int* test) {
if (t0 * t1 != v) if (t0 * t1 != v)
return 1; return 1;
result += v; result ^= v;
} }
return result; return result;

View File

@@ -12,7 +12,7 @@ void qsort_data_init(int nonce) {
int x = nonce; int x = nonce;
for (i = 0; i < 16384; i++) { for (i = 0; i < 16384; i++) {
x = (x * 97 + 17) % 100000009; x = (x * 97 + 17) % 100009;
input_qsort_data[i] = x; input_qsort_data[i] = x;
} }
} }
@@ -115,7 +115,7 @@ int verify_qsort(int n, int* test) {
if (t0 > t1) if (t0 > t1)
return 1; return 1;
result += t0; result ^= t0;
} }
return result; return result;

View File

@@ -12,7 +12,7 @@ void rsort_data_init(int nonce) {
int x = nonce; int x = nonce;
for (i = 0; i < 2048; i++) { for (i = 0; i < 2048; i++) {
x = (x * 97 + 17) % 10000007; x = (x * 97 + 17) % 100007;
input_rsort_data[i] = x; input_rsort_data[i] = x;
} }
} }
@@ -101,7 +101,7 @@ int verify_rsort(int n, int* test) {
if (t0 > t1) if (t0 > t1)
return 1; return 1;
result += t0; result ^= t0;
} }
return result; return result;

View File

@@ -74,7 +74,7 @@ int verifyDouble(int n, double* test) {
int result = 0; int result = 0;
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
result += (int) (test[i]); result ^= (int) (test[i]);
} }
return result; return result;

View File

@@ -11,7 +11,7 @@ int two_dimension_array(int n, int nonce) {
for (int i = 0; i < n; ++i) { for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) { for (int j = 0; j < n; ++j) {
two_dimension_array_arr[i] += two_dimension_array_arr[j]; two_dimension_array_arr[i] ^= two_dimension_array_arr[j];
} }
} }

View File

@@ -35,7 +35,7 @@ int verify_vvadd(int n, int* test) {
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
int v = test[i]; int v = test[i];
result += v; result ^= v;
} }
return result; return result;