Turan图

来源:互联网 发布:mac系统u盘恢复 编辑:程序博客网 时间:2024/05/05 20:35

给出n个点,使其不包含k阶完全图。求最多能添加多少条边。

将n个点尽量平均的分为k-1子集,两个不同的子集之间的点连边,同一子集的顶点间没有边。

#include<iostream>#include<algorithm>#include<queue>#include<string.h>#include<cstdio>#include<set>#include<map>using namespace std;long group[1000];int main(){long cases,n,k;long i,j,ans;scanf("%ld",&cases);while(cases--){scanf("%d%d",&n,&k);if(k>n)printf("%ld\n",n*(n-1)/2);else {k--;memset(group,0,sizeof(group));for(i=0;n;i=(i+1)%k)group[i]++,n--;ans=0;for(i=0;i<k;i++)for(j=i+1;j<k;j++)ans+=group[i]*group[j];printf("%ld\n",ans);}}return 0;}


原创粉丝点击