• 个人简介

    一、自我介绍
    该用户不懒,但还是啥都没写(C++新手,喜欢MC,热爱编程)


    二、C++代码模版
    C++基础框架

    #include<iostream>
    using namespace std;
    int main(){
        //这里写代码
        return 0;
    }
    


    万能头

    #include<bits/stdc++.h>
    


    三、新手专用LaTeX大全
    1.集合符号
    属于:\in
    不属于:\notin
    2.比较符号
    大于:>>
    小于:<<
    等于:==
    不等于:\ne
    约等于:\approx
    大于等于:\ge
    小于等于:\le
    3.运算符号
    加:++
    减:-
    乘:×\times
    除:÷\div
    分数:ab\frac{a}{b}
    根号:1+n\sqrt{1+n}
    4.特殊数学符号
    无穷大:\infty
    正负号&加减:±\pm
    波浪线(范围):1n1\sim n
    5.累加累乘
    求和:a=1ni\sum_{a=1}^{n}i
    累乘:\prod
    6.函数&阶乘
    函数:f(x)=x2+x+5f(x)=x^2+x+5
    递归求和公式:{f(n)=n+f(n1)f(1)=1\begin{cases}f(n)=n+f(n-1)\\f(1)=1\end{cases}
    等差数列求和公式:1+2++n=n(n+1)21+2+\dots+n=\frac{n(n+1)}{2}
    等比数列:an=a1×qn1a_n=a_1\times q^{n-1}(nn是正整数,qq是公比)
    等比数列求 阶乘:N!N!
    代码放着了,自己看吧

    1.集合符号
    属于:$\in$
    不属于:$\notin$
    
    2.比较符号
    大于:$>$
    小于:$<$
    等于:$=$
    不等于:$\ne$
    约等于:$\approx$
    大于等于:$\ge$
    小于等于:$\le$
    
    3.运算符号
    加:$+$
    减:$-$
    乘:$\times$
    除:$\div$
    分数:$\frac{a}{b}$
    根号:$\sqrt{1+n}$
    
    4.特殊数学符号
    无穷大:$\infty$
    正负号&加减:$\pm$
    波浪线(范围):$1\sim n$
    
    5.累加累乘
    求和:$\sum_{a=1}^{n}i$
    累乘:$\prod$
    
    6.函数&阶乘
    函数:$f(x)=x^2+x+5$
    递归求和公式:$\begin{cases}f(n)=n+f(n-1)\\f(1)=1\end{cases}$
    等差数列求和公式:$1+2+\dots+n=\frac{n(n+1)}{2}$
    等比数列:$a_n=a_1\times q^{n-1}$($n$是正整数,$q$是公比)
    阶乘:$N!$
    


    4、看到这里,我给不了亿点点代码,只能给你们这个:

    \\\\ \\ \\ \\ \\ \\          o8888888o            // // // // // ////
    \\\\ \\ \\ \\ \\             88" . "88               // // // // ////
    \\\\ \\ \\ \\                (| -_- |)                  // // // ////
    \\\\ \\ \\                   O\  =  /O                     // // ////
    \\\\ \\                   ____/`---'\____                     // ////
    \\\\                    .'  \\|     |//  `.                      ////
    //==                   /  \\|||  :  |||//  \                     ==\\
    //==                  /  _||||| -:- |||||-  \                    ==\\
    //==                  |   | \\\  -  /// |   |                    ==\\
    //==                  | \_|  ''\---/''  |   |                    ==\\
    //==                  \  .-\__  `-`  ___/-. /                    ==\\
    //==                ___`. .'  /--.--\  `. . ___                  ==\\
    //==             ."" '<  `.___\_<|>_/___.'  >' "".               ==\\
    //==            | | :  `- \`.;`\ _ /`;.`/ - ` : | |              \\\\
    ////            \  \ `-.   \_ __\ /__ _/   .-` /  /              \\\\
    ////      ========`-.____`-.___\_____/___.-`____.-'========      \\\\
    ////                           `=---='                           \\\\
    //// //   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  \\ \\\\
    //// // //      佛祖保佑      永无BUG      永不修改        \\ \\ \\\\\\
    //// // // // // // || || || || || || || || || || \\ \\ \\ \\ \\ \\\\
    
    #include<bits/stdc++.h>
    using namespace std;
    int n;
    long long c=0;
    vector<int> path;
    vector<bool> vis;
    bool isvalid(){
    	int sumOdd=0,sumEven=0;
    	int len=path.size();
    	for(int i=0;i<len;i++){
    		
    	}
    }
    void dfs(){
    	if(path.size()==n){
    		if(isvalid()){
    			c++;
    		}
    		return;
    	}
    	for(int i=1;i<=n;i++){
    		if(!vis[i]){
    			vis[i]=true;
    			path.push_back(i);
    			dfs();
    			path.pop_back();
    			vis[i]=false;
    		}
    	}
    }
    int main(){
    	cin>>n;
    	vis.resize(n+1,false);
    	dfs();
    	cout<<c;
    	return 0;
    }
    
    #include<bits/stdc++.h>
    using namespace std;
    
    int n;
    long long ans = 0;
    vector<int> path;
    vector<bool> vis;
    
    // 校验当前排列是否满足美的条件
    bool isValid()
    {
        int sumOdd = 0, sumEven = 0;
        for (int i = 0; i < path.size(); i++)
        {
            if (i % 2 == 0)
                sumOdd += path[i];
            else
                sumEven += path[i];
        }
        return sumOdd > sumEven;
    }
    
    // 回溯生成全排列
    void dfs()
    {
        if (path.size() == n)
        {
            if (isValid()) ans++;
            return;
        }
        for (int i = 1; i <= n; i++)
        {
            if (!vis[i])
            {
                vis[i] = true;
                path.push_back(i);
                dfs();
                path.pop_back();
                vis[i] = false;
            }
        }
    }
    
    int main()
    {
        cin >> n;
        vis.resize(n + 1, false);
        dfs();
        cout << ans << endl;
        return 0;
    }
    
  • 通过的题目

  • 最近活动

  • 最近编写的题解

    This person is lazy and didn't write any solutions.

题目标签

模拟
15
字符串
8
排序
6
结构体
6
初级班期中考
5
递归
5
数学
4
计算几何
4
语言入门
2
循环结构
2
其他
2
搜索
2
数组
1
分支结构
1
for循环
1
while循环
1
枚举
1
数据结构
1
队列
1
初级期中考
1