UVALive 5873 (几何+思维)】的更多相关文章

UVALive.3708 Graveyard (思维题) 题意分析 这标题真悲伤,墓地. 在周长为1e4的圆周上等距分布着n个雕塑,现在要加入进来m个雕塑,最终还要使得这n+m个雕塑等距,那么原来的n个雕塑移动的最小距离是多少. W=W 依旧没思路,看了题解学习此种技巧. 首先原先给出的n个雕塑中有一个假定不动.然后剩余的n-1的个雕塑移动到最近的目标点.目标点的定义如下: 将原圆周等距分为n+m份,每一份的分界点为一个位置,即目标点.那么难点就在于如何判断是最近的呢,这里用到的方法就是按比例扩…
唉 被秀了... 还是太弱,说好的数形结合呢,列个式子出来后就被吓到了,然后就懵逼了. 题意: 有一条狗,从原点出发,沿n个向量走,每个向量只走一次,沿着一个向量(x,y)走时,既可以往(x,y)方向走,也可以往(-x,-y)方向走. 然后问这条狗离原点最远的距离. 如果写成方程: n个向量分别表示为: (x1,y1) (x2,y2) (x3,y3) ... (xn,yn) 第i个向量往(xi,yi)方向则ai=1,否则ai=-1 则ans = (a1*x1+a2*x2+...+an*xn)^2…
http://www.lightoj.com/volume_showproblem.php?problem=1058 题意:给你顶点,问能够成多少个平行四边形. 思路:开始想使用长度来扫描有多少根,但是好像坐标太大似乎不可行.其实我们可以通过找所有线段的中点的重合个数来计算有几个平行四边形,这种通过别的性质来判断几何关系的思维是解几何题的基础,当作入门? /** @Date : 2016-12-02-21.49 * @Author : Lweleth (SoungEarlf@gmail.com)…
题目链接:http://codeforces.com/gym/101149/problem/K 题目大意: 给你两个点a,b.一个人在a点,一个人在b点,b点的人要追杀a的点,他的跑步速度是a的两倍.如果a点的人能在b点追击到之前回到a点这个位置,那么这个人就是安全的(b点的人追击a点的人的追击方案是:一直朝着a点的人所在的位置奔跑过去).问,这个人的安全区域是多少? 思路:几何果然不会= =,连sb题都没想到 因为是面积,所以说两点之间的距离就决定了最后的结果.因为题目给出的是单位面积.所以对…
题目链接:https://vjudge.net/contest/241341#problem/I 题目大意:给你一个有N个点等距的环,编号[0,N-1],然后有些点上有一个或多个硬币,通过移动这些硬币使得所有的硬币在环上等距地放置且每个点只能放一个硬币,求每个硬币的移动距离中最长的那个移动距离的最小值. 解题思路:先对这m个硬币所在的初始位置排下序,然后我们可以随便假设它们等距要放的位置,比如0,n/m,1*n/m,……,(m-1)*n/m.然后依次计算这m个硬币移动到它们相应的位置所要移动的距…
题目链接:https://vjudge.net/contest/241341#problem/A 题目大意,给你n个数字,让你分成m组,每组的花费为每组的最大值-最小值,总的花费就是各组花费相加,要求总花费最小,并输出. 比如这8个数字:5, 2, 3, 10, 7, 2, 6 , 8. 对于Figure 1:总花费为= (5 - 2) + (10 - 2) + (8 - 6) = 3 + 8 + 2 = 13. 对于Figure 2:总花费为= (8 - 2) + (6 - 5) + (10…
题目链接:https://vjudge.net/contest/241341#problem/F 题目大意:给你一个字符串,你可以用任意单个字符代替其中的一个子串,使它形成一个回文串,要求形成的回文串长度最长. 例如:S=‘ABCADDABCA’这个字符串 你可以令a= ‘ABCA’,b= ‘DD’,则S='aba',长度为3: 你可以令a= ‘ABCA’,b='D',则S=‘abba’,长度为4: 你也可以令a= ‘A’,b= ‘BC’,c= ‘D’,则S=’abaccaba',长度为8: 8…
描述 是否存在面积为S/2的整点锐角三角形?存在输出Yes并输出三个整点坐标,否则输出No. 注意如果存在输出的坐标必须在long long范围内. Input 第一行一个整数S(1<=S<=1018),表示锐角三角形面积. Output 第一行一个字符串. 若存在接下去三行,每行两个整数X,Y,表示三角形三个点的坐标. Examples input 9 output Yes 0 0 3 0 1 3 input 3 output Yes 1 0 0 1 2 2 题意 如上 题解 首先1和2不行…
大致题意: 给出N个红点和M个蓝点,问可以有多少个红点构成的三角形,其内部不含有蓝点 假设我们现在枚举了一条线段(p[i],p[j]),我们可以记录线段下方满足(min(p[i].x,p[j].x)<x<=max(p[i].x,p[j].x) 的数量  时间复杂度为O(N*N*M) 那么我们就可以枚举三角形O(1)判断三角形内有无红点. #include<cstdio> #include<iostream> #include<cstring> #includ…
题意:给出了你由n个数组成的序列,让你将这个序列分为成m个集合,使得每一个集合的最大值减最小值的差相加最小.(如果某集合只有一个数字,则最大值减最小值为0) . 思路:首先我们不难想到,最优的分配方法一定是先给这n个数排序,然后将排序好的数分成m段.因为和一个数相差最小的数,就是在有序序列中与它相邻的数. 然后,要使得每段中最大值减最小值尽量小,那就应该尽量在相差较大的数字之间分段,这样就相当于抛弃了这一段差值. 比如,1,2,4,5,9,10.这六个数两两之间的差值分别为1,2,1,4,1.所…
#include <bits/stdc++.h> using namespace std; int main() { int T,n,a,b; while(cin>>T) { while(T--) { cin>>n; ; ;i<=n-;i++) { cin>>a>>b; ans=min(ans,a+b); } cout<<ans<<endl; } } ; } C. Captcha Cracker题目大意:给一个字符串…
题目 题意: 给出 n,m,k ,让你在长为 n,宽为 m 的坐标系里构建一个三角形,使得面积= n*m/k.如果存在,输出“YES”,输出三角形三个顶点的坐标:  如果不存在,输出“NO”. 思路: 参考其他人博客. 设长为a ,宽为b,所以要 a*b/2 = (n*m)/k ,要使有解,必须 2*n*m/k 是整数,所以只要讨论 2*n*m/k 就可.如果k=1,a<=n和b<=m范围内 一定  a*b/2 != n*m,所以 k >=2 . 设g= gcd( 2*n, k ): 如…
转自:http://www.math.org.cn/forum.php?mod=viewthread&tid=14819&extra=&page=1 原作者: wcboy 现在的论坛质量比以前差了,大部分都是来解题问答的,而且层次较低.以前论坛中,Qullien很令人印象深刻,但愿他能在国外闯出一片天空.现在 基础数学版代数&数论子版中那几个讨论代数几何的还不错.不期望目前论坛出现很多高层次高手,高层次高手应该站在好课题上高观点讨论数学,出 现这样的网友,看他们的言论非常过…
原文网址:http://blog.csdn.net/ch_soft/article/details/7351896 第一部分.前几天做动画,使用到了CATransform3D ,由于没有学过计算机图形学,矩阵中m11--m44的各个含义都不清楚,经过几天研究总结如下:(供和我一样的菜鸟学习) struct CATransform3D { CGFloat m11(x缩放), m12(y切变), m13(), m14(); CGFloat m21(x切变), m22(y缩放), m23(), m24…
一.期末考试成绩班级前十名 宁盛臻(100).朱民哲(92).徐钰伦(86).范凌虎(85).沈伊南(84).何陶然(84).丁知愚(83).焦思邈(83).董瀚泽(82).钱信(81) 二.总成绩计算方法 平时成绩根据交作业的次数决定,本学期共交作业13次,10次以上(包括10次)100分,少一次扣10分. 总成绩=平时成绩*20%+期中考试成绩*20%+期末考试成绩*60% 三.最终成绩及人数 最终成绩 人数 A 25 A- 10 B+ 35 B 16 B- 16 C+ 6 C 5 C- 2…
原文地址 http://blog.csdn.net/ch_soft/article/details/7351896 第一部分.前几天做动画,使用到了CATransform3D ,由于没有学过计算机图形学,矩阵中m11--m44的各个含义都不清楚,经过几天研究总结如下:(供和我一样的菜鸟学习) { CGFloat m11(x缩放), m12(y切变), m13(), m14(); CGFloat m21(x切变), m22(y缩放), m23(), m24(); CGFloat m31(), m3…
A - Choosing Capital for Treeland CodeForces - 219D 题意:有一颗单向边的树,要选取一个结点作为首都.要求是这个结点到其它结点,总共需要翻转的路径数量最少(因为是单向边,翻转了才能到达另一个结点). 做法:树形dp. 代码:待补. B - Maximal Intersection CodeForces - 1029C 题意:给出n个区间,然后你可以删除一个区间,问你剩下的区间的交集的最大长度是多少. 思路:首先我们得先知道n条线段公共的线段一定是…
文章首发于微信公众号:几何思维 1.故事起源 有一只蚂蚁出去寻找食物,无意中进入了一个迷宫.蚂蚁只能向上.下.左.右4个方向走,迷宫中有墙和水的地方都无法通行.这时蚂蚁犯难了,怎样才能找出到食物的最短路径呢? 2.思考 蚂蚁在起点时,有4个选择,可以向上.下.左.右某一个方向走1步. 如果蚂蚁走过了一段距离,此时也依然只有4个选择. 当然要排除之前走过的地方(不走回头路,走了也只会更长)和无法通过的墙和水. 蚂蚁想,还好我会影分身.如果每一步都分身成4个蚂蚁,向4个方向各走1步,这样最先找到食物…
题目传送门 /* 题意:本来有n个雕塑,等间距的分布在圆周上,现在多了m个雕塑,问一共要移动多少距离: 思维题:认为一个雕塑不动,视为坐标0,其他点向最近的点移动,四舍五入判断,比例最后乘会10000即为距离: 详细解释:http://www.cnblogs.com/zywscq/p/4268556.html */ #include <cstdio> #include <iostream> #include <algorithm> #include <cmath&…
UVALive - 3263 That Nice Euler Circuit (几何) ACM 题目地址:  UVALive - 3263 That Nice Euler Circuit 题意:  给出一个点,问连起来后的图形把平面分为几个区域. 分析:  欧拉定理有:设平面图的顶点数.边数.面数分别V,E,F则V+F-E=2  大白的题目,做起来还是非常有技巧的. 代码: /* * Author: illuz <iilluzen[at]gmail.com> * File: LA3263.cp…
UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There Was One / POJ 3517 And Then There Was One / Aizu 1275 And Then There Was One (动态规划,思维题) Description Let's play a stone removing game. Initially, n ston…
UVALive.2995 Image Is Everything (思维题 三维坐标转换) 题意分析 这题实在是没思路,就照着打了一遍,把不理解的地方,写了注释. #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #define REP(i,n) for(int i = 0; i<(n) ;++i)// 宏定义一个for循环 #define nma…
B. Tell Your World time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Connect the countless points with lines, till we reach the faraway yonder. There are n points on a coordinate plane, the i…
Problem   UVALive - 5135 - Mining Your Own Business Time Limit: 5000 mSec Problem Description John Digger is the owner of a large illudium phosdex mine. The mine is made up of a series of tunnels that meet at various large junctions. Unlike some owne…
题目链接 题目大意:有n个按钮排成一条直线,你的任务是通过左右移动按下所有按钮,按钮如果一段时间没有被按下就会被弹开. 以下是我的推论(不一定正确): 直观地看的话,如果选择的是最优路径,那么路径的形状必然是若干条区域逐渐缩小的折线,如图所示: 而不可能出现这个样子: 因为,如果这样走的话,那么中间从A到B一段反复经过的区域就全都浪费了,不如直接从C走到D划算. 进一步观察可以发现,每一个按钮只有最后一次被按下的时候是有效的,因此答案序列应当是一个从两边向中间聚合的过程. 设dp[L][R][f…
题意:x=[-200,200],y=[-200,200]的平面,一天中太阳从不同角度射到长椅(原点(0,0))上,有一些树(用圆表示),问哪个时刻(分钟为单位)太阳光线与这些圆所交的弦长总和最长.太阳距离原点总是500m.(这些圆不会互相相交,每个圆都不包括原点或者不经过原点) 解法:直接暴力24*60分钟,找出此时的角度,然后求出直线方程,再枚举每个圆,求出弦长.注意这里每个圆都不包括原点,所以直线与圆的交点一定在同一侧,所以..我当时想多了,没看清题目.把他当成可以包含原点了,代码超长,幸好…
题目传送门 题意:一个多边形,A点和B点,满足PB <= k * PA的P的范围与多边形的公共面积. 分析:这是个阿波罗尼斯圆.既然是圆,那么设圆的一般方程:(x + D/2) ^ 2 + (y + E/2) ^ 2 = (D ^ 2 + E ^ 2 - 4 * F)  / 4,通过PB == PA * k解方程来求解圆心以及半径.然后就是套模板啦,上海交大的红书. #include <bits/stdc++.h> using namespace std; #define lson l,…
题目传送门 题意:给了一些点,问组成两个不相交的矩形的面积和最大 分析:暴力枚举,先找出可以组成矩形的两点并保存起来(vis数组很好),然后写个函数判断四个点是否在另一个矩形内部.当时没有保存矩形,用for来找矩形,结果写糊涂了忘记判断回形的情况... /************************************************ * Author :Running_Time * Created Time :2015/11/6 星期五 17:00:44 * File Name…
题意:给定n*m个座椅,然后有b个是坏的,要做人,并且两个人不能相邻,问你最多坐多少人,最少坐多少人. 析:这个题其实并不难,只要当时一时没想清楚,结果就一直WA,就是最少的情况时,其实一个人可以占三个座位,而不是两个,就是这一点没想清楚,其他的就简单了. 代码如下: #include <cstdio> #include <string> #include <cstdlib> #include <cmath> #include <iostream>…
题意:给定 n 个点,让你用最长的周长把它们严格包围起来,边长只能用小格子边长或者是小格子对角线. 析:先把每个点的上下左右都放到一个集合中,然后求出一个凸包,然后先边长转成题目的方式,也好转两个点的最小的*根号2加上两者差*1. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <cstdli…