zoukankan      html  css  js  c++  java
  • 洛谷P1416 进攻火星 数学

    By tinylic By kkksc03

    经过找规律可以发现答案为n-2.

    以下是证明:

    令d[i]为i 的度数。

    考虑一个点i 不被删去的条件,必然是前面与i 相邻的点j(可以是多个)被删去,导致d[i]

    减小至小于等于d[j].

    1)易知ans!=n。

    2)考虑ans能否是n-1,也就是只删一个点,设这个点为i。

    因为i 是唯一被删去的点,所以d[i]一定不是最大的,即d[i]<n-1。

    其次删去i 导致其余点的d[]均发生改变,从而无法被删去。

    即i 和其余点都相连,d[i]=n-1,矛盾。

    所以ans!=n-1.

    3)我们可以构造出ans=n-2的情况:

    构造完全图G,删去一条边(i,j)。这样d[i]=d[j]=n-2,其余d[]均为n-1.

    首先删去VI,Vj,这样其余点各少两条边,d[]均变成n-3,不用被删去。

    由此n-2是合法的解,也是最大的解,所以答案就是n-2.

    3) ans=n-2
    说首先我们 把其中n-2个点构成一张完全图
    这样其中每一个点的度均为 n-3

    然后我们将 起点s与终点t 向其中的 n-2个点连线,这样 s 和 t 的度就是 n-2
    然后中间的点的度 就是n-1,然后把s和t删除后,那其中的n-2个点的度就是n-3,然后就不会被
    删除了,只有两个点被删除

     

     1 #include <cstdio>
     2 using namespace std ;
     3 
     4 int n ; 
     5 
     6 int main() 
     7 {
     8     scanf("%d",&n) ;
     9     if(n >= 2)
    10     {
    11         printf("%d
    ",n-2) ;
    12         return 0 ; 
    13     }
    14     else 
    15     {
    16         printf("0
    ") ;
    17         return 0 ;
    18     } 
    19     return 0 ;
    20 }
  • 相关阅读:
    Faster R-CNN
    06.看板实践——限制在制品
    05.看板方法——在制品
    04.看板实践——工作项
    03.看板实战——工作可视化
    02.看板实践——理解看板
    01.看板实践——学习看板(笔记)
    00.看板实践——前言(笔记)
    00.Scrum指南
    02.有效的项目管理——什么是项目管理
  • 原文地址:https://www.cnblogs.com/third2333/p/6854863.html
Copyright © 2011-2022 走看看