您当前的位置: 首页 > 

HeartFireY

暂无认证

  • 2浏览

    0关注

    334博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Codeforces Round #745(Div.2)A.B

HeartFireY 发布时间:2021-10-08 19:46:34 ,浏览量:2

A.CQXYM Count Permutations

https://codeforces.com/contest/1581/problem/A

**思路:**长度为 2 n 2n 2n的数组全排列的数量除以 2 2 2,即为所求排列数目。

对于除 2 2 2操作,可以在阶乘的时候直接从 3 3 3开始乘,就略过除 2 2 2的步骤了

#include 
#define int long long
using namespace std;


const int MOD = 1e9 + 7;

inline int get(int n, int sum = 1){
    for(int i = 3; i > n;
    cout  1 
        
       
     n=1 ∩ m=0 ∩ k>1,这种情况的图唯一存在;
  • 对于 n n n个点的合法无向图(不存在重边和自环),其边数目的取值范围应为 { x ∣ n − 1 ≤ x ≤ n × ( n − 1 ) 2 , x ∈ z } \{x|n - 1 \leq x \leq \frac{n \times (n - 1)}{2}, x \in z\} {x∣n−1≤x≤2n×(n−1)​,x∈z};
    • 对于不位于该范围内的边数 m m m直接剔除,为 N O NO NO;
    • 对于位于该范围内的 m m m,我们可以通过图像得知, k − 1 k - 1 k−1应当至少大于 2 2 2,也就使 k > 3 k > 3 k>3,才有可能出现合法图;
  • 针对以上情况进行讨论即可。其它情况全部为 N O NO NO。

    #include 
    #define YES cout  n * (n - 1) / 2 || m  2) YES;
        else if(m >= n - 1 && m  3) YES;
        else NO;
    }
    
    signed main(){
        int t = 0; cin >> t;
        while(t--) solve();
        return 0;
    }
    
    关注
    打赏
    1662600635
    查看更多评论
    0.0389s