C1. Bessie's Birthday Cake (Easy Version)

原题链接

题解

往内看,一个 n 个节点的多边形,最多能划分 n-2 个三角形(对于 ( k + 1 ) 个顶点的多边形,可以选择任意一个顶点,并引出一条条对角线把它分割成一个三角形和一个剩下的 ( k ) 边形。)

往外看,而在图中,如果两个关键节点的距离==2,ans++

code

#include<bits/stdc++.h>
using namespace std;
int a[200005]={0};
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n,k,y;
        cin>>n>>k>>y;
        for(int i=1;i<=k;i++) cin>>a[i];
        sort(a+1,a+1+k);

        int ans=k-2;
        for(int i=2;i<=k;i++)
        {
            if(a[i]-a[i-1]==2) ans++;
        }
        if(n-a[k]+a[1]==2) ans++;
        cout<<ans<<endl;
    }
    return 0;
}
posted @ 2024-07-19 12:46  纯粹的  阅读(17)  评论(0)    收藏  举报