A. CQXYM Count Permutations
题解:
由其题意,只有一半的排列是满足条件的。答案是 1/2(2n)!。
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
const int mod=1e9+7;
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
ll ans=1;
for(int i=3;i<=2*n;i++)
ans=ans*i%mod;
cout<<ans<<endl;
}
}
B - Diameter of Graph
思路:
先排除非联通、 k<=1 ,边数过多的情况。
其次, k-2 为 0 ,即直径为 0 ,只可能是一个点的平凡图。
k-2 为 1 ,即直径至多为 1 ,必然是完全图(考虑少一条 i->j 的边,则 i->j 的距离至少是 2 )。
k-2 至少为 2 ,则构造直径为 2 即可,可以构造菊花图(一个点连通所有其他的点,则直径至多是 2 )
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int t;
cin>>t;
while (t--)
{
long long n,m,k;
cin>>n>>m>>k;
if (m<n-1 || k<=1 || m>n*(n-1)/2)
{
cout<<"NO"<<endl;
}
else if (m==0 && n==1)
{
cout<<"YES"<<endl;
}
else if (k==2 || (k==3 && (n*(n-1)/2!=m)))
{
cout<<"NO"<<endl;
}
else
cout<<"YES"<<endl;
}
}
C - PortalC - Portal
题意:
搞一个mc的地狱大门,由01组成的距型,要求边界为1,且必须是行数大于5,列数大于4,中间必须是0,可以进行01反转,问最少几次可以搞一个出来
思路:等我多看看题解再搞
D - Mathematics Curriculum
题意:
没咋看懂,再思考思考