zoukankan      html  css  js  c++  java
  • 【水题】投票问题(一)

    投票问题(一)

    【试题描述】

        欧阳文和欧阳武竞选学联主席,汪梁森负责唱票,共有m+n张,结果欧阳文获胜,已知欧阳文和欧阳武分别获得 m 张票和 n 张票(m>n)。现在请你计算在唱票过程中欧阳文的票数始终比欧阳武票数多的方案有多少种。

    【输入要求】

    一行,包括两个数,分别为 m 和 n

    【输出要求】

    一个数,表示符合题目要求的方案数。

    【输入实例】

    2 1

      

    【输出实例】

    1
    

    【其他说明】

    数据范围:1 <= m,n < 20 .

    【试题分析】

        第一眼就可以看出是一道非常水的搜索题,如果说到了DFS后你还没有思路的话,请你赶快回去复习复习搜索算法,这是非常重要的一个算法,很显然,直接写代码吧……

    【代码】

    #include<iostream>
    using namespace std;
    int cnt,m,n;//cnt为计数器
    void dfs(int a,int b)
    {
        if(a<=b||a>m||b>n) return ;//如果b>=a或a>m或b>n,就不符合题意了,那么结束
        else if(a==m&&b==n) cnt++;//如果都遍历完一边以后没有问题就种数++
        else{dfs(a,b+1);dfs(a+1,b);}//分别向两个方向分而治之,继续看b+1与a+1
    }
    int main()
    {
        cin>>m>>n;
        dfs(1,0);//这是非常重要的一点,如果是(0,0)那么直接退出,就怎么都输出0了
        cout<<cnt;
    }
    
  • 相关阅读:
    将eclipse的编码设置成UTF-8
    git提交代码时报rejected
    Vue.js
    快速计算进制之间的转换
    android中canvas.drawText参数的介绍以及绘制一个文本居中的案例
    progressbar原始效果
    面试问题总结
    Android Material Design学习日志
    Android进阶之解决RecyclerView notifyItem闪屏问题
    Android TextView行间距解析
  • 原文地址:https://www.cnblogs.com/wxjor/p/5697933.html
Copyright © 2011-2022 走看看