Still 2 wa, but different ones.
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#define EPSILON 1e-6
|
||||||
|
|
||||||
double A[5051] = {0};
|
double A[5051] = {0};
|
||||||
double point_xs[101] = {0};
|
double point_xs[101] = {0};
|
||||||
@@ -19,7 +20,7 @@ double set_num(int row, int col, double content) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool compare_double(double a, double b) {
|
bool compare_double(double a, double b) {
|
||||||
return (a - b > 0 ? a - b : -(a - b)) < 0.000001;
|
return (a - b > 0 ? a - b : -(a - b)) < EPSILON;
|
||||||
}
|
}
|
||||||
|
|
||||||
double evaluate(double x, int highest) {
|
double evaluate(double x, int highest) {
|
||||||
@@ -34,6 +35,7 @@ double evaluate(double x, int highest) {
|
|||||||
int main() {
|
int main() {
|
||||||
int n = 0, m = 0;
|
int n = 0, m = 0;
|
||||||
int valid_point_num = 0;
|
int valid_point_num = 0;
|
||||||
|
freopen("lambdaeight19.in", "r", stdin);
|
||||||
scanf("%d", &n);
|
scanf("%d", &n);
|
||||||
scanf("%d", &m);
|
scanf("%d", &m);
|
||||||
double read_x, read_y;
|
double read_x, read_y;
|
||||||
@@ -58,9 +60,6 @@ int main() {
|
|||||||
for (int row = 0; row < valid_point_num; row++) {
|
for (int row = 0; row < valid_point_num; row++) {
|
||||||
set_num(row, 0, 1);
|
set_num(row, 0, 1);
|
||||||
for (int col = 1; col <= row; col++) {
|
for (int col = 1; col <= row; col++) {
|
||||||
// double prev = get_num(row, col - 1);
|
|
||||||
// double coefficient = point_xs[row] - point_xs[col - 1];
|
|
||||||
// set_num(row, col, prev * coefficient);
|
|
||||||
set_num(row, col, get_num(row, col - 1) * (point_xs[row] - point_xs[col - 1]));
|
set_num(row, col, get_num(row, col - 1) * (point_xs[row] - point_xs[col - 1]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -70,7 +69,12 @@ int main() {
|
|||||||
for (int i = 0; i < row; i++) {
|
for (int i = 0; i < row; i++) {
|
||||||
t[row] -= t[i] * get_num(row, i);
|
t[row] -= t[i] * get_num(row, i);
|
||||||
}
|
}
|
||||||
t[row] /= get_num(row, row);
|
if (!compare_double(t[row], 0)) {
|
||||||
|
t[row] /= get_num(row, row);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
t[row] = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find for highest exponent
|
// Find for highest exponent
|
||||||
@@ -79,9 +83,6 @@ int main() {
|
|||||||
if (!compare_double(t[highest], 0)) {
|
if (!compare_double(t[highest], 0)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// if (t[highest] != 0) {
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("%d\n", highest);
|
printf("%d\n", highest);
|
||||||
|
|||||||
Reference in New Issue
Block a user