BZOJ 3564

先顺时针转a度,再暴力三分套三分,光荣TLE,不过数据测应该还有80

正解是最小圆覆盖

#include <cstdio>
#include <cmath>
#include <iostream>using namespace std;const int MAXN = 50001;
const int INF = 1000000000;
const double eps = 1e-6;
const double pi = 3.14159265358979323;struct Point
{double x,y;
};typedef Point Vector;struct Line
{Point p;Vector v;Line(Point _p,Vector _v):p(_p),v(_v){}
};Point operator + (Point A,Point B){return (Point){A.x+B.x,A.y+B.y};}
Point operator - (Point A,Point B){return (Point){A.x-B.x,A.y-B.y};}
Point operator * (double k,Point A){return (Point){A.x*k,A.y*k};}
double dot(Point A,Point B){return A.x*B.x+A.y*B.y;};
double cross(Point A,Point B){return A.x*B.y-A.y*B.x;}int n;
double a,p,ans;
Point P[MAXN];
Point Center;
double r;Point LineInsection(Line A,Line B)
{Point P = A.p, Q = B.p;Vector v = A.v, w = B.v;Vector u = P-Q;double t = cross(w,u)/cross(v,w);return P+t*v;
}inline void rotate(Point &P,double a)
{a = a*pi/180;double ang = atan2(P.y,P.x);ang += a;double len = sqrt(dot(P,P));P.x = len*cos(ang);P.y = len*sin(ang);
}/*double get_max(Point vec)
{double _max = -INF;for (int i=1;i<=n;i++){double x0 = P[i].x-vec.x;double y0 = P[i].y-vec.y;_max = max(_max,(x0*x0+p*p*y0*y0)/(p*p));}return _max;
}double calc(double x,double &y)
{double l = -INF, r = INF;while (r-l > eps){double mid_l = l+(r-l)/3;double mid_r = r-(r-l)/3;if (get_max((Point){x,mid_l}) > get_max((Point){x,mid_r})) l = mid_l;else r = mid_r;}y = l;return get_max((Point){x,l});
}Point trisearch()
{double L = -INF, R = INF;double y;while (R-L > eps){double MID_L = L+(R-L)/3;double MID_R = R-(R-L)/3;if (calc(MID_L,y) > calc(MID_R,y)) L = MID_L;else R = MID_R;}calc(L,y);return (Point){L,y};
}*/inline double dist(Point A,Point B)
{return sqrt((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y));
}Point Get_Center(Point p,Point q,Point r)
{Vector VA = q-p;swap(VA.x,VA.y);VA.x = -VA.x;Point PA = 0.5*(p+q);Line A = (Line){PA,VA};Vector VB = q-r;swap(VB.x,VB.y);VB.x = -VB.x;Point PB = 0.5*(q+r);Line B = (Line){PB,VB};return LineInsection(A,B);
}void FindMinCircle()
{Center = P[1];for (int i=1;i<=n;i++) if (dist(P[i],Center) > r+eps){Center = P[i];r = 0;for (int j=1;j<i;j++) if (dist(P[j],Center) > r+eps){Center = 0.5*(P[i]+P[j]);r = dist(P[i],P[j])/2;for (int k=1;k<j;k++) if (dist(P[k],Center) > r+eps){Center = Get_Center(P[i],P[j],P[k]);r = dist(P[i],Center);}}}
}int main()
{scanf("%d",&n);if (n == 1){printf("0.000");return 0;}for (int i=1;i<=n;i++) scanf("%lf%lf",&P[i].x,&P[i].y);scanf("%lf%lf",&a,&p);for (int i=1;i<=n;i++) rotate(P[i],-a);for (int i=1;i<=n;i++) P[i].x = P[i].x/p;FindMinCircle();printf("%.3lf",r);return 0;
}

BZOJ 3565

嗯没有搞懂逆元有什么意义,直接暴力树状数组

BZOJ 3566

很简单的一个树形dp,我脑残概率都是加上的……

#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>using namespace std;const int MAXN = 500001;
const double eps = 1e-7;struct Node
{int v;double per;Node(int _v,double _per):v(_v),per(_per){};
};int n;
double p[MAXN];
double dp[MAXN];
double direct[MAXN];
double ans;
vector <Node> G[MAXN];void dfs(int u,int fa)
{p[u] = direct[u]/100.0;for (int i=0;i<G[u].size();i++){int v = G[u][i].v;if (v != fa){dfs(v,u);p[u] += p[v]*G[u][i].per-p[u]*p[v]*G[u][i].per;}}
}double down(int u,int fa)
{ans += dp[u];for (int i=0;i<G[u].size();i++){int v = G[u][i].v;if (v != fa){double temp = 1-p[v]*G[u][i].per;  if(temp < eps) dp[v]=1.0;  else  {  double y = (dp[u]-p[v]*G[u][i].per)/temp;  dp[v] =p[v]+y*G[u][i].per-p[v]*y*G[u][i].per;  }  down(v,u);  }}
}int main()
{scanf("%d",&n);for (int i=1;i<n;i++){int u,v,per;scanf("%d%d%d",&u,&v,&per);G[u].push_back((Node){v,per/100.0});G[v].push_back((Node){u,per/100.0});}for (int i=1;i<=n;i++) scanf("%lf",&direct[i]);dfs(1,0);dp[1] = p[1];down(1,0);printf("%lf\n",ans);return 0;
}

SHOI 2014 全相关推荐

  1. HTML和CSS仿唯品会首页,ecshop仿唯品会2014全模板带团购品牌特卖

    ecshop仿唯品会2014全模板带团购品牌特卖,一款简洁时尚的综合通用类模板,特别适用于品牌特卖类电商.整站右侧悬浮式导航特效,头部下拉切换式商品分类树功能.首页多个大幅轮播广告图切换,热销商品功能 ...

  2. mysql2014 三合一_SQL Server 2014 全系列 MSDN iso镜像

    SQL Server 2014 全系列 MSDN iso镜像. 2014年4月1号,微软开放了SQL Server 2014 RTM的MSDN官方iso光盘镜像的下载,目前收集到了简体中文,英文的32 ...

  3. UCanCode发布升级E-Form++可视化源码组件库2014 全新版 (V20.01)

    2014年2月. 成都 UCanCode发布升级E-Form++可视化源码组件库2014 全新版 (V20.01)! --- UCanCode有史以来最强大的版本发布! E-Form++可视化源码组件 ...

  4. [凯立德]2014全分辨率C-Car 4.0机车C2610版完美懒人包

    凯立德2014全分辨率C-Car 4.0机车C2610版完美懒人包                                          一.地图信息:     运行环境:Android ...

  5. New Moto X 2014 全版本RSDFastboot刷官方底包教程

    本来我是不想写教程的,因为这样的教程实在是太多了,基本上大家也都会了,为什么还要多次一举,发来发去的呢?实在没什么意义! 但是我觉得吧,别人的教程写的都太过简单,太过明了了,有时候我们很难理解,这到底 ...

  6. 单机rust怎么设置白天_rust怎么设置全屏 | 手游网游页游攻略大全

    发布时间:2016-02-08 连连看游戏很简单,不过如果能全屏的话玩家玩起来会更好更容易.但是有些玩家不知道怎么设置全屏,不知道在哪能设置全屏.下面99单机网小编就来分享连连看游戏设置全屏的方法,供 ...

  7. 看完SQL Server 2014 Q/A答疑集锦:想不升级都难!

    看完SQL Server 2014 Q/A答疑集锦:想不升级都难! 转载自:http://mp.weixin.qq.com/s/5rZCgnMKmJqeC7hbe4CZ_g 本期嘉宾为微软技术中心技术 ...

  8. DP(动态规划)进阶

    一些非典型的动态规划串讲: •状态压缩进阶 •期望概率进阶 •数位DP •换根DP •基环树DP 主要是介绍思想,要提升必须靠练习 状态压缩  •什么是状态压缩呢 •当一道题的状态很复杂,但是很少的时 ...

  9. DCGAN及其TensorFlow源码

    上一节我们提到G和D由多层感知机定义.深度学习中对图像处理应用最好的模型是CNN,那么如何把CNN与GAN结合?DCGAN是这方面最好的尝试之一.源码:https://github.com/Newmu ...

最新文章

  1. eclipse 无法使用注解的两个解决方法
  2. VS2019配置PCL
  3. ecplise常用快捷键
  4. python无向加权图_图:无向图(Graph)基本方法及Dijkstra算法的实现 [Python]
  5. 如何构建行业知识图谱 (以医疗行业为例)
  6. iview选择月份 月初月末 时间戳格式
  7. java查找链表中间元素_如何通过Java单次查找链表的中间元素
  8. 作者:汪疆平(1970-),男,北明软件有限公司技术研究院高级工程师、副院长。...
  9. 前端开发 get请求与post请求 0228
  10. PHP notice/warning 对性能的影响
  11. 商业认知,你每天出门看天气吗?
  12. Technical Art Director
  13. Process Explorer简易图文教程(下)
  14. 阿里面试官最新分享的Java面试宝典,含8大核心内容讲解
  15. 微信小程序如何保存图片到相册
  16. jquery视频播放器_jQuery插入QuickTime视频播放器
  17. bzoj2876: [Noi2012]骑行川藏 :拉格朗日乘数法
  18. 某计算机采用lcd显示器 玩大型游戏,[1]. 液晶显示器(LCD)作为计算机的一种图文输出设备,已逐渐普及,下列关于液晶显示器的叙述中错误的是_______。...
  19. Verilog转电路图
  20. B 最强DE 战斗力(大数+数论)

热门文章

  1. 测试设计-基于规格说明
  2. jointjs使用总结
  3. 【技术写作】风格:走向清晰和优雅——写作、编辑和出版指南| Style: Toward Clarity and Grace
  4. 生物等效性试验样本量,效能,置信区间计算神器之R包——PowerTOST
  5. 关于TCAX做卡拉OK特效字幕时的单双引号的处理方式
  6. status header not present 解决办法
  7. pythonword编辑报告模板_【2018-2019】python日志-word范文模板 (14页)
  8. 张瑞敏:中国式管理的三个终极难题
  9. 边玩游戏边学php,HTML5边玩边学(1)画布实现方法
  10. 约单APP——互联网创业好项目