UVA-10347 Medians 计算几何 中线定理】的更多相关文章

题面 题意:已知三角形三中线的长度nmp,求面积 题解:如果知道中线定理就比较简单了 三边长为 3*a=sqrt(8*mb*mb+8*mc*mc-4*ma*ma) 3*b=sqrt(8*ma*ma+8*mc*mc-4*mb*mb) 3*c=sqrt(8*ma*ma+8*mb*mb-4*mc*mc) 再利用海伦s=sqrt( p*(p-a)*(p-b)*(p-c) ); p=(a+b+c)/2; 所以 s=sqrt( t*(t-2*p)*(t-2*n)*(t-2*m ) ) / 3;       …
AC代码: #include<cstdio> #include<cmath> #include<algorithm> #include<iostream> #include<cstring> using namespace std; typedef long long ll; ; int sgn(double x) { ; ? - : ; } int main() { double a, b ,c; while(~scanf("%lf…
题目传送门 刷USACO偶然遇到的,可能是人生中第一道正儿八经的计算几何. 题目大意:在平面直角坐标系中给你一个以格点为顶点的三角形,求三角形中的整点个数. 因为必修5和必修2的阴影很快就想到了数学中的线性规划,求出两条直线的方程,然后枚举所有整点看是否满足条件.结果莫名其妙的挂掉了,样例过不了. 既然是计算几何萌新,那就看一看题解吧. 正解是一个定理-Pick定理,内容如下 “Pick定理是说,在一个平面直角坐标系内,如果一个多边形的顶点全都在格点上,那么这个图形的面积恰好就等于边界上经过的格…
题目描述 在本题中,格点是指横纵坐标皆为整数的点. 为了圈养他的牛,农夫约翰(Farmer John)建造了一个三角形的电网.他从原点(0,0)牵出一根通电的电线,连接格点(n,m)(0<=n<32000,0<m<32000),再连接格点(p,0)(p>0),最后回到原点. 牛可以在不碰到电网的情况下被放到电网内部的每一个格点上(十分瘦的牛).如果一个格点碰到了电网,牛绝对不可以被放到该格点之上(或许Farmer John会有一些收获).那么有多少头牛可以被放到农夫约翰的电网…
题意: 给出三角形ABC顶点的坐标,DEF分别是三边的三等分点.求交点所形成的三角形PQR的面积. 分析: 根据梅涅劳斯定理,我们得到: ,解得 另外还有:,解得 所以AR : RP : PD = 3 : 3 : 1 同理,BE和CF也被分成这样比例的三段. △ADC = (2/3)△ABC △CDR = (4/7)△ADC △CPR = (3/4)△CDR △PQR = (1/2)△CPR 所以:△PQR = (1/7)△ABC #include <cstdio> #include <…
题目链接: 传送门 Graph Construction Time Limit: 3000MS     Memory Limit: 65536K Description Graph is a collection of edges E and vertices V. Graph has a wide variety of applications in computer. There are different ways to represent graph in computer. It can…
题意:给定一个NxNxN的正方体,求出最多能选几个整数点,使得任意两点PQ不会使PQO共线. 思路:利用容斥原理,设f(k)为点(x, y, z)三点都为k的倍数的点的个数(要扣掉一个原点O),那么所有点就是f(1),之后要去除掉共线的,就是扣掉f(2), f(3), f(5)..f(n),n为素数.因为这些素数中包含了合数的情况,并且这些点必然与f(1)除去这些点以外的点共线,所以扣掉.但是扣掉后会扣掉一些重复的,比如f(6)在f(3)和f(2)各被扣了一次,所以还要加回来,利用容斥原理,答案…
直观感觉对角线重合的时候面积最大 然后可以根据方程和割补算出阴影部分的面积 注意知道两点坐标,可以求出与原点形成的三角形的面积 用叉乘,叉乘的几何意义以这两个向量为边的平行四边形的面积 所以用叉乘除以2就可以 (x1, y1), (x2, y2),叉乘为x1y2-y1x2 #include<cstdio> #include<cmath> #include<algorithm> #define REP(i, a, b) for(int i = (a); i < (b…
职务地址:POJ 2954 意甲冠军:三个顶点的三角形,给出,内部需求格点数. 思考:就像POJ 1265. #include <stdio.h> #include <math.h> #include <string.h> #include <stdlib.h> #include <iostream> #include <sstream> #include <algorithm> #include <set>…
题目来源:UVa 10294 Arif in Dhaka (First Love Part 2) 题意:n颗珠子t种颜色 求有多少种项链和手镯 项链不可以翻转 手镯可以翻转 [分析] 要开始学置换了. 置换是什么呢?  置换的广义概念在不同语境下有不同的形式定义: 在集合论中,一个集合的置换是从该集合映至自身的双射:在有限集的情况,便与上述定义一致. 在组合数学中,置换一词的传统意义是一个有序序列,其中元素不重复,但可能有阙漏.例如1,2,4,3可以称为1,2,3,4,5,6的一个置换,但是其中…
Problem ATriangle Fun Input: Standard Input Output: Standard Output In the picture below you can see a triangle ABC. Point D, E and F divides the sides BC, CA and AB into ratio 1:2 respectively. That is CD=2BD, AE=2CE and BF=2AF. A, D; B, E and C, F…
样例: 输入:123 16 39 28 49 69 98 96 55 84 43 51 3121000 10002000 10004000 20006000 10008000 30008000 80007000 80005000 40004000 50003000 40003000 50001000 300040 01000000 01000000 10000000 100000040 0100 0100 1000 100 输出: 21 25990001 999998000001 9801 分析…
题意:在方格图上打小怪,每次可以清除一整行或一整列的小怪,问最少的步数是多少,又应该在哪些位置操作(对输出顺序没有要求). 分析:最小覆盖问题 这是一种在方格图上建立的模型:令S集表示“行”,T集表示“列”,那么小怪站的位置w(i,j),就是二分图上的边.如此建图,那么每次清除,就是把与某个点相连的边全部清除,问最少选择多少个点.(这也是最小点覆盖的概念:选择尽量少的点,使得每条边至少有一个端点被选中) 这里有一个König定理:最大二分匹配数==最小覆盖点数. 既然是求最小点覆盖,那么自然是选…
这种1A的感觉真好 #include <cstdio> #include <vector> #include <cmath> using namespace std; typedef long long LL; struct Point { LL x, y; Point(LL x=, LL y=):x(x), y(y) {} }; Point operator - (const Point& A, const Point& B) { return Poi…
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2896 大概思路:A和B运动,以A(Posa)为参考点,求出B的运动轨迹(Posb -> Posb + Vb-Va); #include<cstdio> #include<cstring> #include<cmath> #include&l…
题意: 给你三角形三个点, 定理是 三个内角的三等分线相交得出 DEF三点, 三角新 DFE是等边三角形 然后要你输出 D E F 的坐标 思路 : 求出三个内角,对于D 相当于 BC向量逆时针旋转, CB向量顺时针旋转 ,相交得到的点: 同理可以求出其他点  (LRJ 模板真强大) #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cm…
这题和POJ-1286一样 题意: 给出t种颜色的n颗珠子 (每种颜色的珠子个数无限制,但总数必须是n), 求能制作出项链和手镯的个数 注意手镯可以翻转和旋转  而 项练只能旋转 解析: 注意Polya定理: 等价类的个数等于所有的置换f的km(f)的平均数 先考虑旋转,一共有n种情况,旋转1颗珠子构成循环,2颗,3颗·····n颗,那么对于旋转i颗珠子有gcd(i,n)个循环,那么根据Polya定理  置换的不动点的个数为 a = sum(tgcd(i, n)); 为什么又gcd(i, n)个…
题意:给定 n 和 m 表示要制作一个项链和手镯,项链和手镯的区别就是手镯旋转和翻转都是相同的,而项链旋转都是相同的,而翻转是不同的,问你使用 n 个珠子和 m 种颜色可以制作多少种项链和手镯. 析:一个很明显的 Polya 定理,先考虑旋转,如果逆时针旋转 i 个珠子,那么 0 i 2i 3i ... 是一个循环,这样的话就有 gcd(i, n) 个循环. 对于翻转,要考虑是奇偶,如果是奇数,肯定是要过一个珠子的,所以就一共有 n 个相同的,对于每一个会形成 n/2 个长度为 2 个的循环,和…
题目链接:https://cn.vjudge.net/problem/UVA-12304 题意: 作为题目大合集,有以下一些要求: ①给出三角形三个点,求三角形外接圆,求外接圆的圆心和半径. ②给出三角形三个点,求三角形内接圆,求内接圆的圆心和半径. ③给出一个圆,和一个点,求过该点的圆的切线与x轴的夹角(0<=angle<180): ④给出一条直线,一个点p,指定半径r,求经过点p的与直线相切的半径为r的圆: ⑤给出两条直线,求与这两条直线相切的圆: ⑥给出两个圆,求同时与这两个圆相切的圆:…
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4077 题意: 三角剖分是指用不相交的对角线把一个多边形分成若干个三角形.输入一个简单m(2<m<50)边形,找一个最大三角形面积最小的三角剖分.输出最大三角形的面积. 分析: 和“最优三角剖分”一样,设d(i,j)为子多边形i,i+1,…,j-1,j(i<j)的最…
/** 题目:Trees in a Wood. UVA 10214 链接:https://vjudge.net/problem/UVA-10214 题意:给定a,b求 |x|<=a, |y|<=b这个范围内的所有整点不包括原点都种一棵树.求出你站在原点向四周看到的树的数量/总的树的数量的值. 思路: 坐标轴上结果为4,其他四个象限和第一个象限看到的数量一样.所以求出x在[1,a]和y在[1,b]的x/y互质对数即可. 由于a比较小,所以枚举x,然后求每一个x与[1,b]的互质对数. 方法: 1…
链接:http://uva.onlinejudge.org/external/107/10733.pdf 题意: N 种颜色可以涂成多少种立方体~ 思路: 使正六面体保持不变的运动群总共有: 1.不变置换(1)(2)(3)(4)(5)(6), 共1个; 2.沿对面中心轴旋转 90度, 270度 (1)(2345)(6), (1)(5432)(6) 同类共 6个; 3.沿对面中心轴旋转 180度 (1)(24)(35)(6), 同类共 3个; 4.沿对角线轴旋转 120度, 240度 (152)(…
Lily: “Chantarelle was part of my exotic phase.”Buffy: “It’s nice. It’s a mushroom.”Lily: “It is? That’s really embarrassing.”Buffy: “Well, it’s an exotic mushroom, if that’s any comfort.”Joss Whedon, "Anne".A little girl whose name is Anne Spetri…
题意 项链和手镯都是由若干珠子串成的环形首饰,区别在于手环可以翻转,但项链不可以. 输入整数 $n$ 和 $t$,输出用 $t$ 中颜色 $n$ 颗珠子能制作成的项链和手镯的个数.($1\leq n \leq 50, 1 \leq t\leq 10$). 分析 这里共有两种置换,即旋转和翻转,项链只有其中一种,而手镯两种都有. 旋转:如果逆时针旋转 $i$ 颗珠子的间距,则 $0,i,2i,...$ 构成一个循环(大于 $n$ 时模 $n$),这个循环有 $n/gcd(i,n)$ 个元素.根据对…
什么是Pick定理(皮克定理) 来自wiki的介绍: 给定顶点座标均是整点(或正方形格子点)的简单多边形,皮克定理说明了其面积 \(A\)和内部格点数目 \(i\) .边上格点数目 \(b\) 的关系:\(A = i + \frac b 2 - 1\). 因为所有简单多边形都可切割为一个三角形和另一个简单多边形.考虑一个简单多边形 \(P\),及跟\(P\)有一条共同边的三角形\(T\).若\(P\) 符合皮克公式,则只要证明\(P\)加上\(T\) 的\(PT\)亦符合皮克公式(I),与及三角…
Problem D Morley's Theorem Input: Standard Input Output: Standard Output Morley's theorem states that that the lines trisecting the angles of an arbitrary plane triangle meet at the vertices of an equilateral triangle. For example in the figure below…
#include<cstdio> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> #include<queue> #include<vector> using namespace std; struct Point{ double x,y; Point(, ) : x(x),y(y){ } //构造函数 }; typedef…
题目大意:给出平面上许多矩形的中心点和倾斜角度,计算这些矩形面积占这个矩形点形成的最大凸包的面积比. 算法:GRAHAM,ANDREW. 题目非常的简单,就是裸的凸包 + 点旋转.这题自己不会的地方就是点旋转,另外,Andrew 算法还没有调试出来 .有一个非常细节的地方:给出的矩形有N个,但是点有4*N个. 直接上代码:GRAHAM #include <cstdio> #include <iostream> #include <algorithm> #include…
Problem B Board Wrapping Input: standard input Output: standard output Time Limit: 2 seconds The small sawmill in Mission, British Columbia, has developed a brand new way of packaging boards for drying. By fixating the boards in special moulds, the b…
题意: 把一个图分成两部分,要把点1和点2分开.隔断每条边都有一个花费,求最小花费的情况下,应该切断那些边.这题很明显是最小割,也就是最大流.把1当成源点,2当成汇点,问题是要求最小割应该隔断那条边. 思路: 最小割,就是在所有割中,容量之和最小的割,这就是我的理解,而最小割的值就是最大流的值,因为很容易想到,从源点s到汇点t的最大流必然会经过割边,那么就有最大流f<=c(割边的值),那么也就是说,当c==f的时候,就是c为小割,即最大流==最小割.第二点,怎么求出最小割的边:在求出最大流之后,…