跳过正文
  1. Posts/

hdu 5120 - Intersection

·665 字·2 分钟

题意:求两个相等的圆环的相交的面积…. 简单计算几何+容斥原理? 扇形面积公式记错调了半天2333333333 这题不难…倒是从学长那里收获了几点关于代码规范的问题… 听说了学长在北京区域赛时把PI定义错了一位结果一直WA的教训…. 以后还是写acos(-1)吧 局部变量和全局变量因为【想怎么其变量名想得整个人都不好了】就起成了一样的…被学长给了差评。 哦,对!还有一个就是发现了cmath库里有一个奇葩的函数名叫y1.。。。。。。。 —————————————————————————————————————————————— 竟然CE了 提示 error:pow(int,int) is ambiguous 看来我对语言的掌握程度还是不行呀…..

“就是一个函数声明为pow(double, double)你必须传两个double参数进去。但你传int也可以,int会转型会double,但c++有重载。声明了两个函数pow(double, double),pow(long long, double),你传两个int进去编译器不知道把int转为double还是转为long long” “解决办法是把int转型成double (xxx) 或者long long (xxx)” 也可以 简单粗暴的xxx.0

(int,int)->(double,int)?(double,double)

 1
 2
 3    #include <iostream>
 4    #include <cmath>
 5    #include <iomanip>
 6
 7    using namespace std;
 8
 9        int t,tt;
10        int rr,RR,x11,x22,y11,y22;
11        double ans;
12        const double PI=acos(-1);
13        const double C=10e-6;
14        double area(int x1,int y1,int x2,int y2,int R,int r);
15    int main()
16    {
17        cin>>t;
18        tt=t;
19        while (t--)
20        {
21            cin>>rr>>RR;
22            cin>>x11>>y11>>x22>>y22;
23            ans=area(x11,y11,x22,y22,RR,RR)-2*area(x11,y11,x22,y22,RR,rr)+
24                area(x11,y11,x22,y22,rr,rr);
25                cout<<"Case #"<<tt-t<<": "
26                <<fixed<<setprecision(6)<<ans<<endl;
27        }
28        return 0;
29    }
30    double area(int x1,int y1,int x2,int y2,int R,int r)
31    {
32         double d;
33         double A,a;
34         double st;
35          d=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
36         if (d>=r+R)
37            return 0;
38         if (R-r>=d)
39          return r*r*PI;
40          A=acos((R*R+d*d-r*r)/(2.0*d*R));
41          a=acos((r*r+d*d-R*R)/(2.0*d*r));
42          st=R*d*sin(A);
43          A=A*2;
44          a=a*2;
45          return  (A*R*R+a*r*r)/2.0-st;
46    }

相关文章

hdu 5119 - Happy Matt Friends(dp解法)

·820 字·2 分钟
Description Matt has N friends. They are playing a game together. Each of Matt’s friends has a magic number. In the game, Matt selects some (could be zero) of his friends. If the xor (exclusive-or) sum of the selected friends’magic numbers is no less than M , Matt wins.

hdu 5113 Black And White

·1018 字·3 分钟
题意是说用 k 种颜色填充 nm 的方格,第 i 种颜色要用 c[i] 次,保证 c[i](i 属于 1..k)的和为 nm,问是否有可行解,若有,输出任意一种。 第一感觉是 dfs,而且数据范围还那么小。但是鉴于我上次 dfs 写成汪的经历……嗯,不过群里有学长说似乎剪枝不太好想? 我一开始分了四类:o 行 o 列、e 行 e 列、e 行 o 列、o 行 e 列(o 是 odd,e 是 even),然后将 c[i] 排序,先填大的 c[i],感觉这样应该更容易找到解。交了一发,WA 掉了。发现当 k 较小的时候,也就是 c[i] 都相对较大的时候,先填大的 c[i] 的策略会出现错误。于是我换了下,按 c[i] 的大小从两边往中间填。然后我还发现其实 o 行 o 列和 e 行 e 列可以归为一类,同理,后两种也可以归为一类。又交,又 WA 2333333。然后想了好久,发现对于上面说的两类的处理顺序不同会得到不同的结果,只有一种是对的。于是加了个 judge 函数判断冲突,如果冲突就换个顺序。再交,A 了。

hdu 2138 How many prime numbers

·520 字·2 分钟
ACM STEPS里的…这题前面一道是求LCM….结果接下来就是这么一道。。。 朴素会超….筛法会爆….题目顺序真是按照难度来的? 于是想到 Miller-Rabin素数测试……. 这个方法是基于费马小定理 我的理解就是… 如果我要判断n是否为素数 只要取k个数 如果满足 a^(n-1)mod n =1 那么n就很可能为素数。 证明什么的…暂时还是算了吧…论文里貌似扯了一大堆 第一次用,竟然真的A了。。。。 感觉更好的办法也许是先打一个比较小的素数表,然后每次random选取若干个进行判断…那样应该更可靠些? 本来想WA掉之后再改的。。。没想到这么写就A掉了。。。。杭电数据略水?