UVA 10089 Repackaging 数学问题
大致题意:给出几个包裹,每个包裹都包装好了3种大小的杯子。现在要重新包装,使向量
a[1]*(s[1][1],s[1][2],s[1][3])+a[2]*(s[2][1],s[2][2],s[2][3])+.....+a[n]*(s[n][1],s[n][2],s[n][3])=(k,k,k). 就这样转化成了向量问题其中a[i]为非负整数,k为正整数。
虽然转化成了向量问题,但是三维向量和这么多变量有点棘手,所以我们可以先降维,将原等式变化成:
a[1]*(s[1][2]-s[1][1],s[1][3]-s[1][1])+ a[2]*(s[2][2]- s[2][1],s[2][3]- s[2][1])+.....+a[n]*(s[n][2]- s[n][1],s[n][3]- s[n][1])=(0,0).
把二维向量看成以平面坐标系中以原点为起点的向量。如果只有两个向量,因为a[i]为非负数,所以只有两个向量的时候夹角必须为PI。n个向量的话,只要相邻两个向量的夹角不大于PI即可满足上述等式。代码不长,但是需要数学思维T_T
- #include <iostream>
- #include <cstdio>
- #include <cmath>
- #include <algorithm>
- using namespace std;
- const int maxn=+;
- const double PI=acos(-);
- int main()
- {
- int n;
- double A[maxn];
- while(scanf("%d",&n),n)
- {
- int s1,s2,s3;
- for(int i=;i<n;i++)
- {
- scanf("%d%d%d",&s1,&s2,&s3);
- A[i]=atan2(s2-s1,s3-s1);
- }
- sort(A,A+n);
- double tmp=;
- for(int i=;i<n;i++)
- tmp=max(tmp,A[i]-A[i-]);
- tmp=max(tmp,A[]-A[n-]+*PI);
- if(tmp<=PI)
- printf("Yes\n");
- else
- printf("No\n");
- }
- return ;
- }
UVA 10089 Repackaging 数学问题的更多相关文章
- 紫书 例题 10-16 UVa 12230(数学期望)
感觉数学期望的和化学里面求元素的相对原子质量的算法是一样的 就是同位素的含量乘上质量然后求和得出 这道题因为等待时机是0到2*l/v均匀分配的,所以平均时间就是l/v 再加上过河的l/v, 最后加上步 ...
- UVa 10323 【数学】
UVa 10323 题目:计算阶乘在10000~6227020800之间的值,不在范围对应输出Under或者Over. 分析:简单题.数论.因为13!=6227020800,7!<10000&l ...
- UVA 12901 Refraction 数学
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=83008#problem/E Description HINT 题意: 给你一个 ...
- UVa第十章数学概念与方法
Bryce1010模板 10.1数论初步 1.欧几里得算法和唯一分解定理 2.Eratosthenes筛法 补充素数筛选 const int MAXN=1e6+10; ll prime[MAXN]; ...
- UVA 10025(数学)
The ? 1 ? 2 ? ... ? n = k problem The problem Given the following formula, one can set operators ' ...
- UVA 11346 - Probability 数学积分
Consider rectangular coordinate system and point L(X, Y ) which is randomly chosen among all pointsi ...
- UVA 11971 - Polygon 数学概率
Polygon John has been given a segment of lenght N, however he n ...
- 紫书 例题 10-17 UVa 1639(数学期望+分数处理+处理溢出)
设当前有k个,那么也就是说拿到其他图案的可能是(n-k)/n 那么要拿到一个就要拿n/(n-k)次 所以答案就是n(1/n + 1/(n-1) ......1/2 + 1 / 1) 看起来很简单,但是 ...
- 紫书 例题 10-17 UVa 1639(数学期望+对数保存精度)
设置最后打开的是盒子1, 另外一个盒子剩下i个 那么在这之前打开了n + n - i次盒子 那么这个时候的概率是C(2 * n - i, n) p ^ (n+1) (1-p)^ (n - i) 那么反 ...
随机推荐
- asp.net Web.config 在不同版本的IIS配置的IHttpHandler的访问路径,以及经典模式和集成模式不同的配置
如果IIS7.0使用.net4.0以上版本的框架,<system.web>中的httpHandlers节点就没有用了,而应该使用微软专为.net4.0以上版本设计的新节点<syste ...
- Android 实现应用升级方案(暨第三方自动升级服务无法使用后的解决方案)
第三方推送升级服务不再靠谱: 以前在做Android开发的时候,在应用升级方面都是使用的第三方推送升级服务,但是目前因为一些非技术性的问题,一些第三方厂商不再提供自动升级服务,比如友盟,那么当第三方推 ...
- SQL SERVER 查询性能优化——分析事务与锁(五)
SQL SERVER 查询性能优化——分析事务与锁(一) SQL SERVER 查询性能优化——分析事务与锁(二) SQL SERVER 查询性能优化——分析事务与锁(三) 上接SQL SERVER ...
- 百度地图 api
首先在百度开发者中心申请ak 在页面head中引用必要的css样式和js脚本 <script type="text/javascript" src="http:// ...
- 快速入门系列--MVC--05行为
Action执行包含内容比较多,主要有同步/异步Action的概念和执行过程,Authorationfilter, ActionFiltor, ResultFilter, ExceptionFilte ...
- 专为设计师而写的GitHub快速入门教程
专为设计师而写的GitHub快速入门教程 来源: 伯乐在线 作者:Kevin Li 原文出处: Kevin Li 在互联网行业工作的想必都多多少少听说过GitHub的大名,除了是最大的开源项目 ...
- poj 3352Road Construction(无向双连通分量的分解)
/* 题意:给定一个连通的无向图G,至少要添加几条边,才能使其变为强连通图(指的是边强联通). 思路:利用tarjan算法找出所有的双联通分量!然后根据low[]值的不同将双联通分量 进行缩点,最后图 ...
- Spring MVC 学习总结(七)——FreeMarker模板引擎与动态页面静态化
模板引擎可以让程序实现界面与数据分离,业务代码与逻辑代码的分离,这就提升了开发效率,良好的设计也使得代码复用变得更加容易.一般的模板引擎都包含一个模板解析器和一套标记语言,好的模板引擎有简洁的语法规则 ...
- Tools - Markdown
Markdown 轻量级标记语言,使用易读易写的纯文本格式和类似HTML的标记语法来编写具有一定的格式的文档. wiki - Markdown 三分钟学会书写格式良好的笔记(Markdown) 为知笔 ...
- 判断js数据类型和clone
判断返回js数据类型 function judgeType(arg){//判断返回js数据类型 return Object.prototype.toString.call(arg).slice(8,- ...