SQL
博客园 | 首页 | 发新随笔 | 发新文章 | 联系 | 订阅 订阅 | 管理

2007年10月4日

JLU1205
垃圾几何题 JLU的题目不是叙述奇怪就是数据奇怪
WA估计是精度问题
#include<stdio.h>
#include
<string.h>
#include
<math.h>

struct Point
{
    
float x, y;
}
;

float t;
float aB;
float moveA;
Point center;
float y;
float distan(Point p1, Point p2)
{
     
float dis=(float)sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
     
return dis;
}


float area()
{
    
float A;
    A
=(float)(2.0*acos(-1.0)-2.0*(acos(y/432000.0)));
    
float Area1=A/2.0*432000.0*432000.0;
    Area1
+=(float)(y*(432000.0*sin(acos(y/432000.0))));
    
float result=(Area1/(acos(-1.0)*432000.0*432000.0));
    
if(result<1)
        
return result;
    
else
        
return 1.0;
}


void run()
{
    
float A=aB-moveA;
    Point pc;
    pc.x
=(float)cos(A)*3950.0;
    pc.y
=-(float)sin(A)*3950.0;
    
float lineA=(float)(acos(-1.0)-(A-acos(-1.0)/2.0));

    
float k=tan(lineA);
    
if(tan(lineA)>acos(-1.0))k=tan(lineA-acos(-1.0));
    y
=k*(92900000.0-pc.x)+pc.y;
    
if(y<0)
    
{
        y
=-y;
        printf(
"%lf\n",1.0-area());
    }

    
else
        printf(
"%lf\n",area());
}


void begin()
{
    
float a1 ,a2;
    Point p1;
    p1.x
=92900000.0,p1.y=-432000.0;
    a1
=(float)acos(3950.0/distan(center,p1));
    a2
=(float)asin(432000.0/distan(center,p1));
    aB
=a1+a2;
}


int main()
{
    center.x
=0.0,center.y=0.0;
    begin();
    
while(scanf("%f",&t)==1)
    
{
        moveA
=2.0*t*acos(-1.0)/(24.0*3600.0);
        run();
    }

    
return 0;
}
posted @ 2007-10-04 20:38 sql172 阅读(5) | 评论 (0) | 编辑
 
pku3338

坐标系转换一下 求联通子图个数 内存时间都比较小

 

#include<string.h>
#include
<stdio.h>

int w, d, n, cnt;
bool e[21][21][2];//0 right || 1 up
bool v[21][21];
int x1, y1, x2, y2;

bool link(int i1, int j1, int i2, int j2)
{
    
if(i2==i1-1)
        
return e[i1][j1][0];
    
if(j2==j1-1)
        
return e[i1][j1][1];
    
if(i2==i1+1)
        
return e[i2][j2][0];
    
if(j2==j1+1)
        
return e[i2][j2][1];
}


void DFS(int i, int j)
{
    v[i][j]
=1;
    
if(i-1>=0 && v[i-1][j]==0 && !link(i,j,i-1,j))
        DFS(i
-1,j);

    
if(j-1>=0 && v[i][j-1]==0 && !link(i,j,i,j-1))
        DFS(i,j
-1);

    
if(i+1<w && v[i+1][j]==0 && !link(i,j,i+1,j))
        DFS(i
+1,j);

    
if(j+1<d && v[i][j+1]==0 && !link(i,j,i,j+1))
        DFS(i,j
+1);
}



void draw()
{
    
int i;
    
if((x1<x2 && y1<y2) || (x1>x2 && y1>y2))
    
{
        
if(x1>x2 && y1>y2)
        
{
            
int x,    y;
            x
=x1,    y=y1;
            x1
=x2,    y1=y2;
            x2
=x,    y2=y;
        }

        
for(i=x1;i<x2;i++)
        
{
            e[i][y1][
1]=e[i][y2][1]=1;
        }

        
for(i=y1;i<y2;i++)
        
{
            e[x1][i][
0]=e[x2][i][0]=1;
        }

    }


    
if((x1>x2 && y1<y2) || (x1<x2 && y1>y2))
    
{
        
if(x1>x2 && y1<y2)
        
{
            
int x,    y;
            x
=x1,    y=y1;
            x1
=x2,    y1=y2;
            x2
=x,    y2=y;
        }

        
for(i=x1;i<x2;i++)
        
{
            e[i][y1][
1]=e[i][y2][1]=1;
        }

        
for(i=y2;i<y1;i++)
        
{
            e[x1][i][
0]=e[x2][i][0]=1;
        }

    }

}

 
int main()
{

    
    
while(scanf("%d%d",&w,&d)==2)
    
{
        
if(w==0 && d==0)break;
        cnt
=0;
        scanf(
"%d",&n);
        memset(e,
0,sizeof(e));
        memset(v,
0,sizeof(v));
        
int i, j;
        
for(i=0;i<n;i++)
        
{
            scanf(
"%d%d%d%d",&y1,&x1,&y2,&x2);
            draw();
        }


        
for(i=0;i<w;i++)
            
for(j=0;j<d;j++)
            
{
                
if(!v[i][j])
                
{
                    cnt
++;
                    DFS(i,j);
                }

            }


        printf(
"%d\n",cnt);

    }



    

    
return 0;
}

                
posted @ 2007-10-04 10:59 sql172 阅读(28) | 评论 (0) | 编辑
 
随笔:47 文章:0 评论:17 引用:0
<2007年10月>
日一二三四五六
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

与我联系

  • 发短消息

搜索

 

常用链接

  • 我的随笔
  • 我的空间
  • 我的短信
  • 我的评论
  • 更多链接
  • 我的参与
  • 我的新闻
  • 最新评论
  • 我的标签

留言簿(1)

  • 给我留言
  • 查看留言

随笔档案

  • 2007年10月 (27)
  • 2007年9月 (20)

My ACteam ->SEU_COSE_ACM_FT2

  • Bear
  • NIC~ (rss)
  • 农夫
  • 钱丁

积分与排名

  • 积分 - 3896
  • 排名 - 6221

最新评论

  • 1. re: PKU3277离散化+线段树
  • 我用STL 的 map 做的离散化,不过在poj上耗时1000MS+
  • --JooPoo

阅读排行榜

  • 1. zju1484(328)
  • 2. ACM/ICPC要求的知识点(转)(328)
  • 3. PKU1151线段树解法(292)
  • 4. PKU2486所谓树型DP(232)
  • 5. PKU3277离散化+线段树(204)

评论排行榜

  • 1. 今天农夫布置的DP题(5)
  • 2. PKU2486所谓树型DP(3)
  • 3. PKU3277离散化+线段树(2)
  • 4. 不更新要遭人鄙视了。。。。(2)
  • 5. PKU3321(1)

Powered by: 博客园
模板提供:沪江博客
Copyright ©2008 sql172