HDOJ 1418 抱歉(欧拉公式)

简介: Problem Description 非常抱歉,本来兴冲冲地搞一场练习赛,由于我准备不足,出现很多数据的错误,现在这里换一个简单的题目:前几天在网上查找ACM资料的时候,看到一个中学的奥数题目,就是不相交的曲线段分割平面的问题,我已经发到论坛,并且lxj 已经得到一个结论,这里就不多讲了,下面有一个类似的并且更简单的问题:如果平面上有n个点,并且每个点至少有2条曲线段和它相连,就是说,每条曲线都是封闭的,同时,我们规定: 1)所有的曲线段都不相交; 2)但是任意两点之间可以有多条曲线段。

Problem Description
非常抱歉,本来兴冲冲地搞一场练习赛,由于我准备不足,出现很多数据的错误,现在这里换一个简单的题目:

前几天在网上查找ACM资料的时候,看到一个中学的奥数题目,就是不相交的曲线段分割平面的问题,我已经发到论坛,并且lxj 已经得到一个结论,这里就不

多讲了,下面有一个类似的并且更简单的问题:

如果平面上有n个点,并且每个点至少有2条曲线段和它相连,就是说,每条曲线都是封闭的,同时,我们规定:
1)所有的曲线段都不相交;
2)但是任意两点之间可以有多条曲线段。

如果我们知道这些线段把平面分割成了m份,你能知道一共有多少条曲线段吗?

Input
输入数据包含n和m,n=0,m=0表示输入的结束,不做处理。
所有输入数据都在32位整数范围内。

Output
输出对应的线段数目。

Sample Input
3 2
0 0

Sample Output
3

欧拉公式的应用:
欧拉公式:
简单多面体的顶点数V、面数F及棱数E间有关系 
V+F-E=2
(此题:顶点+面数-2=棱数)
可以自己推导一下!
试想一下,n个点围成一个封闭的图形,这个时候正好分成2个面。
这个时候的线段就是n条。
如果需要加一个面,则线段需要加一条。

所以呢,输入n个点,分成m个面,就可以推导出,线段就是n-2+m了。

注意:n+m是会超int范围的!

import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        while(sc.hasNext()){
            long n = sc.nextLong();
            long m = sc.nextLong();
            if(n==0&&m==0){
                return;
            }
            System.out.println(n+m-2);
        }
    }
}
目录
相关文章
|
Java C++
hdoj 1715 大菲波数
先java代码
59 1
hdoj 2089 不要62
这题数据量相对比较小,可以暴力打表解决。不过我这里用数位dp 刚开始学数位dp,参考了别人的代码。
62 0
HDOJ 2057 A + B Again
HDOJ 2057 A + B Again
112 0
HDOJ 1214 圆桌会议
HDOJ 1214 圆桌会议
105 0
HDOJ 2075 A|B?
HDOJ 2075 A|B?
85 0
HDOJ 2013 蟠桃记
HDOJ 2013 蟠桃记
101 0
HDOJ的题目分类
模拟题, 枚举 1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 1049 1050 1057 1062 1063 1064 1070 1073 ...
1836 0
HDOJ 2056 Rectangles
Problem Description Given two rectangles and the coordinates of two points on the diagonals of each rectangle,you have to calculate the area of the intersected part of two rectangles.
1018 0