链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1154 题意: 有一块椭圆形的地.在边界上选n(0≤n<2^31)个点并两两连接得到n(n-1)/2条线段.它们最多能把地分成多少个部分? 分析: 本题需要用到欧拉公式:在平面图中,V-E+F=2,其中V是顶点数,E是边数,F是面数.因此,只需要计算V和E即可(注意还要减去外面…
圆上有n个点,位置不确定.问这些点两两连接成的线段,最多可以把圆划分成多少块平面? 欧拉公式:V-E+F = 2,V是点数,E是边数,F是面数. 答案是F=C(n,4)+C(n,2)+1,看的别人推的..我实在推不出来. 写这篇博客的原因是第一次用Java的BigInteger. import java.math.BigInteger; import java.util.*; public class Main{ static Scanner sc = new Scanner(System.in…
一个椭圆上有N个点,将这n个点两两相连,问最多能将这个椭圆分成多少片. 理清思路,慢慢推. 首先我们要想到欧拉公式:V+E-F=2 其中V为图上的顶点数,E为边数,F为平面数. 计算时的可以枚举点,从一个固定点出发的对角线(注意是对角,不包括与相邻点的连线),它的左边有i个点,那么右边就有n-2-i个点.左边与右边的点两两相连,能在这一条对角线上相交i*(n-2-i)各点. 一个固定点能与其他非相邻点连接n-3条对角线,那么一个固定点的连线就会生成sigema(i=1,n-3)(i*(n-2-i…
题意:一块圆形土地,在圆周上选n个点,然后两两连线,问把这块土地分成多少块? 析:这个题用的是欧拉公式,在平面图中,V-E+F=2,其中V是顶点数,E是边数,F是面数.对于这个题只要计算V和E就好. 我们从一个顶点开始枚举对角线,这条线左边有 i 个点,那么右边有 n-i-2 个点,那么两边的连线在这条对角线上形成 i * (n-i-2) 个交点,得到 i * (n-i-2) + 1条线段,然而每个交点, 重复计算了四次,每条线段被重复计算了二次,所以总数就是,,V 加 n 的意思就是加上原来的…
题意:一块圆形土地,在圆周上选n个点,然后两两连线,问把这块土地分成多少块? 析:这个题用的是欧拉公式,在平面图中,V-E+F=2,其中V是顶点数,E是边数,F是面数.对于这个题只要计算V和E就好. 我们从一个顶点开始枚举对角线,这条线左边有 i 个点,那么右边有 n-i-2 个点,那么两边的连线在这条对角线上形成 i * (n-i-2) 个交点,得到 i * (n-i-2) + 1条线段,然而每个交点, 重复计算了四次,每条线段被重复计算了二次,所以总数就是,,V 加 n 的意思就是加上原来的…
题意: 一块圆形土地,在圆周上选n个点,然后两两连线,问把这块土地分成多少块? 分析: 首先紫书上的公式是错的,不过根据书上提供的思路很容易稍加修改得到正确答案! 然后推公式吧,这里用到平面图的欧拉公式,V - E + F = 2,其中V表示顶点个数,E表示边的个数,F表示面的块数. 减去最外面的无限大的面,所求ans = E - V + 1 假设n≥4,从圆周上的一个点出发枚举一条对角线,左边有i个点,右边有n-2-i个点,将左右两边的点两两相连,就在这条对角线上得到个交点.每个交点被重复计算…
用欧拉公式V-E+F=2 V是顶点数,E是边数,F是面数 具体推导见https://blog.csdn.net/QWsin/article/details/53635397 要用高精度 #include<cstdio> #include<algorithm> #include<iostream> #include<string> #include<cstring> #include<sstream> #define REP(i, a,…
题目描述: 给一个椭圆,上面有n个点,两两连接这n个点,得到的线段能把椭圆分为几个区域? 思路: 首先想想,n个点在椭圆边缘,每两个点两两连接有\(C^2_n\)条线段,这些线段交于很多点,求这些线段最多把椭圆分成几个部分. 考虑到欧拉公式:在平面图中\(V-E+F=2\),\(V\)为顶点数,\(E\)是边数,\(F\)是面数.我们要求的是\(F\),只要求\(E\)与\(V\)就行了.那么怎么求\(V\)呢? 考虑每一个顶点,以这个顶点为基础,不断向其他点发出对角线,在对角线左边的点是\(i…
Problem D How Many Trees? Input: standard input Output: standard output Memory Limit: 32 MB A binary search tree is a binary tree with root k such that any node v in the left subtree of k has label (v) <label (k) and any node w in the right subtree o…
http://www.cnblogs.com/sxiszero/p/3618737.html 下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinejudge.org 西班牙Valladolid大学的程序在线评测系统,是历史最悠久.最著名的OJ. 二.<算法竞赛入门经典> 刘汝佳  (UVaOJ  351道题) 以下部分内容摘自:http://sdkd…
(Step1-500题)UVaOJ+算法竞赛入门经典+挑战编程+USACO 下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinejudge.org 西班牙Valladolid大学的程序在线评测系统,是历史最悠久.最著名的OJ. 二.<算法竞赛入门经典> 刘汝佳  (UVaOJ  351道题) 以下部分内容摘自:http://sdkdacm.5d6d.…
下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinejudge.org 西班牙Valladolid大学的程序在线评测系统,是历史最悠久.最著名的OJ. 二.<算法竞赛入门经典> 刘汝佳  (UVaOJ  351道题) 以下部分内容摘自:http://sdkdacm.5d6d.com/thread-6-1-1.html “AOAPC I”是刘汝佳(大名…
Square Country 2 Time limit: 1.0 secondMemory limit: 64 MB The Square Parliament of the Square country (recall the corresponding problem from the USU 2001 personal contest) has decreed that the National Square Park be created. Of course, the Park sho…
题意翻译 题目大意: 给定一个n∗m的矩阵,每次你可以选择前进一格或转弯(90度),求在不出这个矩阵的情况下遍历全部格点所需最少转弯次数.有多组数据 输入格式: 第一行一个整数k,表示数据组数 以下k行,每行两个整数n,m,表示矩阵大小 输出格式: 输出一个整数,即最少转弯次数 感谢@守望 提供翻译 题目描述 Mirko wants to buy land on which he will build a house for his family. So far, he’s seen K pie…
##Advice for Applying Machine Learning Applying machine learning in practice is not always straightforward. In this module, we share best practices for applying machine learning in practice, and discuss the best ways to evaluate performance of the le…
题意: 有个矩形,左下角(0,0),左上角(L,W). 思路: 除了圆盘之外,本题的输入也是个PSLG,因此可以按照前面叙述的算法求出各个区域:只需把线段视为直线,用切割凸多边形的方法 :每次读入线段,切割所有块,最终得到若干凸多边形 如何判断多边形是否与圆盘相交:如果多边形的边和圆周规范相交,圆盘和多边形一定相交, 1:即使完全没有公共点,也可以相交,互相内含 需要判断多边形是否有顶点在园内,还需要判断圆心是否在多边形内: 2.如果不规范:  a:带判断的线段在园外: b:带判断的线段在园内即…
题目大意:和UVa 836 - Largest Submatrix差不多,只需要修改一下数据就可以了. #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define MAXN 110 int mat[MAXN][MAXN], sum[MAXN][MAXN]; int main() { #ifdef LOCAL freopen("in", &…
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3417 题意: 输入一个n*m(1≤n,m≤1000)矩阵,每个格子可能是空地,也可能是沼泽.对于每个空地格子,求出以它为右下角的空地矩形的最大周长,然后统计每个周长出现了多少次. 分析: 扫描法 + 单调栈.按照从上到下的顺序处理每一行,在每一行中从左到右处理每个格子(以下称为“当…
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3717 暴力计算几何. 用切割多边形的方法,将初始的矩形划分成若干个多边形,然后对于每一个圆判断有哪些多边形是与其相交的.面积为0的多边形忽略. 对于多边形与圆相交,要主意圆在多边形内的情况. 代码如下: #include <cstdio> #include <cstring…
紫书上分析了很多很多,超详细,= ̄ω ̄= 每扫描一行可以计算一个height数组,表示从这块空地向上延伸多少块空地,而且这个数组可以逐行递推. 首先对于每一行来说维护一个单调栈,栈里放的是矩形的左上角,而且横坐标c和高度h也都是递增的,另外对于扫描到的同一个右下角,矩形面积的大小只与左上角的横坐标c和高度h的差值h-c有关,所以栈里面的h-c也都是递增的. 另外,计算出来当前的height[j]的时候有可能会“削减”栈中的矩形. #include <cstdio> #include <c…
题意:给出一图形,求该图形把平面分成了几部分 欧拉公式: http://blog.csdn.net/wangxiaojun911/article/details/4586550 对于二维平面上的情况.设图形上有V个点,E条边,把平面分成了F个独立的部分,那么满足V+F-E=2 如下图:               那么求F就转化成了如何求V和E 求V:枚举任意两线段的交点即可.注意可能出现三线共点的情况,要判重. 求E:某线段上的n个点会把这条线段分成n-1部分.用这个性质再YY一下就好了. 注…
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1696 10755 - Garbage Heap Time limit: 3.000 seconds Garbage Heap Time limit: 3.000 seconds Memory limit: 64 megabytes Farmer John has a heap of garb…
题目链接:poj2284 That Nice Euler Circuit 欧拉公式:如果G是一个阶为n,边数为m且含有r个区域的连通平面图,则有恒等式:n-m+r=2. 欧拉公式的推广: 对于具有k(k≥2)个连通分支的平面图G,有:n-m+r=k+1. 题意:给出连通平面图的各顶点,求这个欧拉回路将平面分成多少区域. 题解:根据平面图的欧拉定理“n-m+r=2”来求解区域数r. 顶点个数n:两两线段求交点,每个交点都是图中的顶点. 边数m:在求交点时判断每个交点落在第几条边上,如果一个交点落在…
                                                      That Nice Euler Circuit Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 1977   Accepted: 626 Description Little Joey invented a scrabble machine that he called Euler, after the great…
Problem H The Land of Justice Input: standard input Output: standard output Time Limit: 4 seconds In the Land of Justice theselling price of everything is fixed all over the country. Nobody can buy a thingand sell it in double price. But, that create…
 A Puzzling Problem  The goal of this problem is to write a program which will take from 1 to 5 puzzle pieces such as those shown below and arrange them, if possible, to form a square. An example set of pieces is shown here. The pieces cannot be rota…
UVA 572     DFS(floodfill)  用DFS求连通块 Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Description Due to recent rains, water has pooled in various places in Farmer John's field, which is represented by a rectangle of N x M…
题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2674 题意 n个正整数,尽量均匀地把它们分成严格递增序列.要求序列个数最小 思路 明显,序列个数就是出现最多次的正整数的次数.接下来只要循环着由小到大把数字放进各个序列中就可以了. 感想: 读了好几遍都没读懂题目“While maintaining the minimal numbe…
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2041 A number of students are members of a club that travels annually to exotic locations. Their destinations in the past have included Indian…
画一个顶点为偶数的封闭的二维图,当然.这个图能够自交,给出画的过程中的一些轨迹点.求出这个图把二次元分成了几部分,比如三角形把二次元分成了两部分. 这个的话,有图中顶点数+部分数-棱数=2的定律,这是核心思想.也就是所谓的欧拉定律拓扑版,好吧,事实上细致想想也是可以想出这个规律来的. 做出这题纯属意外,因为给的点的坐标全是用整数表示,为了不用考虑精度问题,一開始.我就想仅仅用这些点.就是说不再算出其他交点之类的,就把答案算出, 由于当前轨迹与之前轨迹无非三种情况:规范与不规范相交,不相交 不相交…