转载:http://trinklee.blog.163.com/blog/static/23815806020150155296528/

问题描述:

众所周知,在国王胖哥的带领下,K国国泰民安,空前繁荣,但今天K国却遇到了空前的危机。

在K国境内同时发现了n个未知的病毒,每个病毒会从它被发现的位置开始感染K国的土地,K国可以看做是一个无限大的二维平面,而病毒的感染形状可以看做是一个不断扩大的圆形区域,即在t时间这个病毒会感染半径为t的圆形土地,这个圆形的圆心为发现这个病毒的位置。

但是万幸的是,K国有独特的病毒防护带可以杀死这些病毒,所以K国国王胖哥在刚发现病毒之时就开始着手进行杀毒工作,所谓的病毒防护带可以看成是一条直线,可以选定建立在K国的任意位置,即可以放置在K国所表示的平面上的任意位置,一旦病毒在扩散的过程中接触到这个防护带,病毒就会死亡,它感染的土地面积就固定为这个病毒死亡时所占的土地面积。注意由于防护带的建立十分昂贵,K国最多只能建立一条病毒防护带。

现在胖哥想知道要如何设立这个病毒防护带,才能使每个病毒感染的平均面积最小,即被感染的总土地面积除以病毒数n,每个病毒可以独立看待,即任意一个病毒的死亡不会影响到其他的病毒。注意如果同一个区域被多个病毒感染,那么在计算被感染的土地面积时需要计算多次,即若有一个病毒在位置(0,0)被发现,一个病毒在位置(1,1)被发现,它们都在t=1时接触到防护带死亡,那么此时K国被感染的面积为pi*2,病毒感染的平均面积为pi。

由于K国有举世无双的安全监测系统和卫生防护系统,可以认为在病毒防护带建立完毕之后病毒才开始进行扩散。若病毒出现在病毒防护带上,他感染的土地面积可以看做0。

★编程任务:

请编程输出在最优决策下,这些病毒感染的平均面积。

★数据输入:

输入文件名为vir.in。

文件的第1行中给出正整数Q,表示该组数据中有多少组测试样例。

每组样例首先输入一个整数n (0 < n ≤ 1000000),表示该组样例中病毒的个数,之后一行输入两个正整数x,y,表示第一个病毒的坐标,之后一行输入三个正整数a,b,c,如果第i个病毒的坐标为(x, y),那么第i+1个病毒的坐标为(x’, y’),其中x’=(a*x*x + b*x + c)%107,y’=(a*y*y + b*y + c)%107,其中%是取模运算符号

输入数据保证:

20%的数据满足n≤3;

50%的数据满足n≤1000;

100%的数据满足Q≤10,n≤1000000,0 ≤x, y, a, b, c≤100。

★结果输出:

输出文件名为vir.out。

首先输出样例编号,之后输出在最优决策下,这些病毒会感染的K国的土地面积,答案保留5位小数,详见输出示例,请严格按照输出实例中的格式输出

输入示例

输出示例

2
2
0 0
0 0 1
3
1 2
3 4 5

Case 1: 0.00000

Case 2: 58.42574

 

【分析】
(转载)

不错的题目...想不到省选会出这么有(sang)趣(bing)的数学题

 #include<cstdio>
#include<cmath>
int t,n,x,y,a,b,c,i,ii;double ans,tmp,A,B,C,sx,sx2,sy,sy2,sxy,pi=acos(-);
double abs(double x){return x>?x:-x;}
int main()
{
for(scanf("%d",&t),ii=;ii<=t;printf("Case %d: %.5lf\n",ii,ans*pi/n),ii++)
{
scanf("%d%d%d%d%d%d",&n,&x,&y,&a,&b,&c);
sx=x,sy=y,sx2=x*x,sy2=y*y,sxy=x*y;
for(i=;i<=n;i++)
{
x=(a*x*x+b*x+c)%;
y=(a*y*y+b*y+c)%;
sx+=x,sy+=y,sx2+=x*x,sy2+=y*y,sxy+=x*y;
}
if(abs(sx*sy/n-sxy)<=1e-)ans=;
else
{
C=(sy2-sx2+(sx*sx-sy*sy)/n)/(sx*sy/n-sxy);
B=(-C+sqrt(C*C+))/;
A=(sy-B*sx)/n;
ans=(sy2+n*A*A+B*B*sx2-*A*sy-*B*sxy+*A*B*sx)/(+B*B);
B=(-C-sqrt(C*C+))/;
A=(sy-B*sx)/n;
tmp=(sy2+n*A*A+B*B*sx2-*A*sy-*B*sxy+*A*B*sx)/(+B*B);
if(ans>tmp)ans=tmp;
}
}
}

【FJOI2014】【偏导+数学】病毒防护带的更多相关文章

  1. MathType二次偏导怎么表示

    求导以及求偏导运算在数学中是很重要的一个部分,尤其是在高等数学中,基本都由函数的导数与偏导组成,很多公式定理也是关于这方面的,如果少了这一部分,数学将会黯然失色.因此在文档中涉及到这些内容时,必然会少 ...

  2. 矩阵的f范数及其求偏导法则

    转载自: http://blog.csdn.net/txwh0820/article/details/46392293 矩阵的迹求导法则   1. 复杂矩阵问题求导方法:可以从小到大,从scalar到 ...

  3. 矩阵的 Frobenius 范数及其求偏导法则

    cr:http://blog.csdn.net/txwh0820/article/details/46392293 一.矩阵的迹求导法则   1. 复杂矩阵问题求导方法:可以从小到大,从scalar到 ...

  4. Maths | 二次型求偏导

  5. BZOJ 5059: 前鬼后鬼的守护 可并堆 左偏树 数学

    https://www.lydsy.com/JudgeOnline/problem.php?id=5059 题意:将原序列{ai}改为一个递增序列{ai1}并且使得abs(ai-ai1)的和最小. 如 ...

  6. 矩阵的frobenius范数及其求偏导法则

    例子: http://www.mathchina.net/dvbbs/dispbbs.asp?boardid=4&Id=3673

  7. 用tensorflow求偏导

    # coding:utf-8 from __future__ import absolute_import from __future__ import unicode_literals from _ ...

  8. 一些对数学领域及数学研究的个人看法(转载自博士论坛wcboy)

    转自:http://www.math.org.cn/forum.php?mod=viewthread&tid=14819&extra=&page=1 原作者: wcboy 现在 ...

  9. 机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)

    版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 前言: ...

随机推荐

  1. bzoj 3226 [Sdoi2008]校门外的区间(线段树)

    3226: [Sdoi2008]校门外的区间 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 615  Solved: 227[Submit][Stat ...

  2. 转 wordpress搭建

    新建一个博客文件 在搭建博客的过程中,我们需要创建一个文件,用来存储博客的相关信息.这些信息包括域名的信息,主机空间服务器ip,FTP登录名和密码,空间面板登录信息等等,只要是与该博客有关的信息,全部 ...

  3. IT项目管理的六种错误思维

    导读:在软件行业,在界面设计没有正式展现给客户之前,所有的工作都处于需求调研阶段.很多IT项目经理因为年轻,初生牛犊不怕虎,胆量大,勇气足,敢于在实践中引入新的工具.方法.敢于尝试不是坏事,但试验的风 ...

  4. 微信开发第5章 通过accesstoken获取用户基本信息并修改用户备注

    在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同).公众号可通过本接口来根据Op ...

  5. iOS实用技能扩展-集成支付宝

    前奏 现在随着移动开发的快速发展,移动支付变得越来越流行与必不可少.最近做了一个关于支付宝支付功能的应用,在使用支付宝的过程中,遇到一些不必要的弯路,因此,写了这篇文章总结一下关于iOS中如何开发使用 ...

  6. Jsp学习(1)

    Servlet的用作:用java语言开发动态资源的技术: Jsp的作用:用java语言(+html)开发动态的资源,其实jsp就是servlet演化而来的. Jsp的执行过程: 我们先来做一个实验,首 ...

  7. Fastjson介绍

    简单介绍 Fastjson是一个Java语言编写的高性能功能完好的JSON库. 高性能 fastjson採用独创的算法,将parse的速度提升到极致,超过全部json库,包含以前号称最快的jackso ...

  8. CGI与FastCGI 转

    CGI与FastCGI 当我们在谈到cgi的时候,我们在讨论什么 最早的Web服务器简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HTML文件返回给浏览器,也就是静态html.事物总是不 断 ...

  9. Linux下查看系统配置

    CPU 1. lscpu:显示cpu架构信息 [xxx@localhost ~]$ lscpu Architecture: x86_64 CPU op-mode(s): -bit, -bit Byte ...

  10. 使用Broadcast实现android组件之间的通信 分类: android 学习笔记 2015-07-09 14:16 110人阅读 评论(0) 收藏

    android组件之间的通信有多种实现方式,Broadcast就是其中一种.在activity和fragment之间的通信,broadcast用的更多本文以一个activity为例. 效果如图: 布局 ...