• P6269 [SHOI2002]空中都市 题解


    CSDN同步

    原题链接

    简要题意:

    求在 (n) 个点中满足每 (3) 个点不两两有边的最多边数。

    首先,这题 ( ext{dp}) 没有头绪,所以只能手动找规律。

    ( exttt{n}) (0) (1) (2) (3) (4) (5) (6)
    ( exttt{ans}) (0) (0) (1) (2) (4) (6) (9)

    如果你不明白,这里给出 (n>3) 的所有构造图((n leq 3) 就不用画图了吧)

    (n=4) 时答案为 (4):


    (n=5) 时答案为 (6):

    (n=6) 时答案为 (9):

    所以,我们在看一眼这个表格:

    ( exttt{n}) (0) (1) (2) (3) (4) (5) (6)
    ( exttt{ans}) (0) (0) (1) (2) (4) (6) (9)

    然后,因为我们觉得可以 (O(1)) 用公式计算,盲猜它次数应该不会超过 (4) 次,所以就假设答案 (f_x = ax^4 + bx^3 + cx^2+dx+ e).

    然后得到方程组:

    [ egin{cases} a + b + c + d + e = 0 \ 16a + 8b + 4c + 2d + e = 1 \ 81a + 27b + 9c + 3d + e = 2 \ 256a + 64b + 16c + 4d + e = 4 \ 625a + 125b + 25c + 5d + e = 6 \ 1256a + 216b + 36c + 6d + e = 9 end{cases} ]

    (好像还多了一道方程)

    你发现答案 近似 为:

    [ egin{cases} a=0 \ b=0 \ c=frac{1}{4} \ d=0 \ e=0 end{cases} ]

    即答案为 (igg( frac{ n^2}{4} igg )).

    你整理一下发现,答案其实是:

    [igg lfloor frac{n^2}{4} igg floor ]

    然后你就用 (O(1)) 解决了问题。

    下面给出一个 严谨 一点的解法。

    下面资料来自 百度百科——托兰定理

    (A)(N) 个点中,向外连线最多的点,设它向外连 (k) 条线,则与 (A) 相连的点之间不允许连线

    而剩余 (N-1-k) 中的任意一点不可能向外连线数大于 (k),设这些点连线总数为 (y),则有

    (y≤k(N-1-k)+k)

    (y≤-k^2+Nk=-(k-N/2)^2+ lfloor N^2/4 floor)

    (k= lfloor N/2 floor) 时,(y) 是整数,所以 (y)的最大值为(lfloor N^2/4 floor)

    所以 (y≤ lfloor N^2/4 floor)

    得证。

    时间复杂度:(O(1)).

    实际得分:(100pts).

    #pragma GCC optimize(2)
    #include<bits/stdc++.h>
    using namespace std;
    
    inline int read(){char ch=getchar();int f=1;while(ch<'0' || ch>'9') {if(ch=='-') f=-f; ch=getchar();}
    	int x=0;while(ch>='0' && ch<='9') x=(x<<3)+(x<<1)+ch-'0',ch=getchar();return x*f;}
    
    int main(){
    	int n=read();
    	printf("%d
    ",n*n/4);
    	return 0;
    }
    
    
  • 相关阅读:
    灰度直方算法 C++
    三国谋士智商前20名
    get the runing time of C++ console program.
    支持向量机 support vector machine
    Typical sentences in SCI papers
    C++调用GDAL库读取并输出tif文件,并计算斑块面积输出景观指数:CSD
    通过管理工具对服务器进行远程管理
    Connected_Component Labelling(联通区域标记算法) C++实现
    Fragstats景观分析研究
    Install GDAL in OpenSUSE 12.3 Linux
  • 原文地址:https://www.cnblogs.com/bifanwen/p/12622519.html
Copyright © 2020-2023  润新知