一个圆上的n个不同点可以连成多少条不相交的线段

Posted leibniz_zhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个圆上的n个不同点可以连成多少条不相交的线段相关的知识,希望对你有一定的参考价值。

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define LL __int64
LL pp(LL xx)

    if (xx==1)
        return 0;
    if (xx==2)
        return 0;
    if (xx==3)
        return 0;
    if (xx==4)
        return 1;
    if (xx==5)
        return 2;
    else
    
        return xx/2+pp(xx/2);
    

void solve()

     LL n;scanf("%I64d",&n);
     if (n==2)
     
         printf("1\\n");
         return;
     
     //一:printf("%I64d\\n",n+pp(n));内接成形法---
     //二:printf("%d\\n",2*n-3);一圈加一点接所有
     //LL kp=max(n+pp(n),2*n-3);
     //方法二是虽有的
     printf("%I64d\\n",2*n-3);

int main()

    int t;scanf("%d",&t);
    while (t--)
    
        solve();
    
    return 0;





内接成形法是n个点相连后形成n边形---------然后n个点每次隔一点相连--形成又一个多边形----然后-----
发现他不是最优的======

以上是关于一个圆上的n个不同点可以连成多少条不相交的线段的主要内容,如果未能解决你的问题,请参考以下文章

JZOJ 4018 Magic

bzoj 4660

POJ1066 Treasure Hunt

Ants UVA - 1411(竟然让我换了个板子)

[HAOI2008]圆上的整点

BZOJ 1041 [HAOI2008]圆上的整点