hrbust oj 1025 (计算几何+近似计算)

  这是我第一次只要可以这么做,题目中给的精度范围较大,所以可以把圆形的区域直接用小方块拼接近似来表示,maps地图开的越大,精度越高,但同时耗时也更多。

  代码如下:

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    double x,y,r;
    int maps[101][101],num,i,j,n;
    while(~scanf("%d",&n))
    {
        num = 10201;
        memset(maps,0,sizeof(maps));
        for(int k = 0;k < n;k++)
        {
            scanf("%lf%lf%lf",&x,&y,&r);
            x=x*100+50;
            y=y*100+50;
            r=r*100;
            for(i=0; i<=100; i++)
                for(j=0; j<=100; j++)
                    if(maps[i][j]==0 && (i-x)*(i-x)+(j-y)*(j-y) <= r*r)
                    {
                        maps[i][j]=1;
                        num--;
                    }
        }
        printf("%.3f\n",1.0*num/10201.0);
    }
    return 0;
}
时间: 2024-10-17 15:59:37

hrbust oj 1025 (计算几何+近似计算)的相关文章

hrbust oj 1536 Leonardo&#39;s Notebook 置换群问题

题目大意: 给出一个A~Z的置换G,问能否找到一个A~Z的置换G' 能够用来表示为 G = G'*G' 由定理: 任意一个长为 L 的置换的k次幂,都会把自己的每一个循环节分裂成gcd(L, K)份,并且每一份的长度都为L/gcd(L,K) 这里是置换的平方,所以G'长度为偶数的循环节必然会分裂为两个相等的循环节,长度为奇数的循环节还是一个循环节长度不变 那么得到的G中长度为偶数的循环节必然是由G'中偶数的循环节分裂得到,奇数的循环节可以不多做考虑,就认为它是原来的奇数循环节保持不变所得 所以这

Light OJ 1025 - The Specials Menu(动态规划-区间dp)

题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1025 题目大意:一串字符, 通过删除其中一些字符, 能够使这串字符变成回文串. 现在给你一串字符,问能够得到多少种不同的回文串: 注意:字符串"abba", 可以得到9串回文串,分别为'a', 'a', 'b', 'b', 'aa', 'bb', 'aba', 'aba', 'abba'. 解题思路:声明dp[i][j]为字符串[i,j]区间中通过删除可以得到不同回

hrbust oj 1526+2028 树状数组

冒泡排序中 如果一个数的后面的某个数和这个数不符合排序规则 那么这个数就会在未来的某次冒泡中与那个数进行交换 这里用到了 树状数组求逆序数的办法来做 需要注意的是2028并不可以改完数组大小后直接套1526代码 因为会超出int的范围 树状数组求逆序对的耗时要比归并排序长一些 不过简单.. 之所以要记录下来这道题是因为在其中并没有说 每一个数都是独一无二的 那么当我们离散化的时候就需要做出一些小的调整 1526 #include<stdio.h> #include<string.h>

hdu 1116 并查集和欧拉路径

---恢复内容开始--- 把它看成是一个图 只是需要欧拉路径就可以了 首尾能连成一条线即可 如果要判断这个图是否连通 得用并查集 在hrbust oj里面看答案学到的方法 不用各种for循环套着判断能否循环 只需要在union的时候做做调整 让比较大的父亲节点的父亲节点等于小的父亲节点 向1靠拢就可以 但是在这里面 是向出现过的最小的字母的排序靠拢 所以要记录 而且for循环26个字母的时候 只对出现过的字母做判断它是否与最小的字母可以连通 #include<stdio.h> #include

hrbust/哈理工oj 1617 回家【BFS+BFS】

回家 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 35(9 users) Total Accepted: 10(8 users) Rating: Special Judge: No Description 寒假里,大家经常会遇上同学聚会,ikki也不例外. ikki所在的城市可以看成是一个正方形的布局,分为n*n个小方格区域.ikki每次聚会的场所都在城市的西北角,即方格 (1,1)表示的位置,而家位于城市的东南角,即(n,n)

hrbust/哈理工oj 1677 一个函数【栈】【水题】

一个函数 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 49(38 users) Total Accepted: 39(36 users) Rating:  Special Judge: No Description 现在用一个函数来处理一个字符串(该字符串只包含x和y). 函数的两个操作如下. 1.  在字符串中找到两个连续的字符(可以不相邻),并且第一个字符是'y',第二个字符是'x',然后交换它们.如果一次存在多种满足该条件

hdoj Pipe&amp;&amp;南阳oj管道问题&amp;&amp;poj1039(计算几何问题...枚举)

Pipe Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 240    Accepted Submission(s): 99 Problem Description The GX Light Pipeline Company started to prepare bent pipes for the new transgalactic l

【算法学习笔记】52.一道题的三种方法..二分答案、动态规划、计算几何 SJTU OJ 1250 BestSubsequence

---恢复内容开始--- 1250. BestSubsequence Description LL有n个妹子,他给妹子们编号排成一排.据说今天天气大好,LL要去春游了,他决定要选定至少F个妹子一起去玩. 为了让妹子们开心,他决定选连续一段的妹子们.然后LL有个特殊的癖好,他喜欢体重比较厉害一些的妹子. 那你可以帮LL选妹子吗,使得选出来的这些妹子的平均体重最大. Input Format 输入第一行两个整数,n和F. 接下来n行,每行一个整数,表示妹子的体重. 对前50%的数据:1<=n<=2

【算法学习笔记】32.计算几何 求含最多给定点的直线 SJTU OJ 1350 穿越沙漠

1350. 穿越沙漠 Description 塞尔达公主又又又又被抓走了.林克为了找到她需要穿过拉纳鲁沙漠,坏消息是林克可能没有足够的体力穿越沙漠,好消息是沙漠中分布着N个力之果实,坏消息是我们的林克只能走直线.为了穿越沙漠,林克希望能够吃到尽可能多的力之果实.现在请你帮他规划一条直线,使他能够获得尽可能多的力之果实. Input Format 输入第一行有一个数N,表示沙漠中果实的数量. 接下来的N行每行两个正整数x,y,表示每个力之果实的坐标. Output Format 输出一个数,表示林