NEFU OJ35 Grids

来源:互联网 发布:java hibernate 并发 编辑:程序博客网 时间:2024/05/21 20:26

没什么算法。

知识点:比较两个double的大小,相减之后是否小于固定值,如1e-10

直接穷举,执行2500*1000=250万次会超时吗?应该不会,现在的处理器至少每秒执行个一两千万次乘法应该没问题

#include<stdio.h>#include<string.h>#include<math.h>bool flag[50][50];int num;double r;double x, y;const double ex = 1e-10;double abss(double tmp){if (tmp > 0)return tmp;elsereturn -tmp;}void isIncircle(int i,int j){double dx = 0.01 + 0.02*i;double dy = 0.01 + 0.02*j;double dis = sqrt((x - dx)*(x - dx) + (y - dy)*(y - dy));if (dis <= r){flag[i][j] = true;}else if (abss(dis - r)<ex){flag[i][j] = true;}}int main(){int result;while (scanf("%d%lf",&num,&r) != EOF){memset(flag, 0, sizeof(flag));while (num > 0){result = 0;scanf("%lf%lf", &x, &y);for (int i = 0; i < 50; ++i){for (int j = 0; j < 50; ++j){isIncircle(i, j);}}--num;}for (int i = 0; i < 50; ++i){for (int j = 0; j < 50; ++j){if (flag[i][j])++result;}}printf("%d\n", 2500-result);}return 0;}


0 0
原创粉丝点击