摘要:
组合的输出 与 分解因数 类似,为递归函数再指定一个形参,约束循环的起始条件 每满足一次临界条件,就输出一次结果。 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 5 const int N=25; 6 int n,r 阅读全文
摘要:
集合的划分 想的时候,这题怎么这么难!!! 看了题解后,题解好牛!!! 这大概就是废物日常吧! ̄□ ̄|| 以下均摘抄至官方解释: 考虑一般情况,对于任意的含有n个元素a1,a2,......,an的集合S,放入k个无标号的盒子中去,划分数为S(n,k),我们很难凭直觉和经验计算划分数和枚举划分的所有 阅读全文
摘要:
分解因数 这题很明显与 数的计数 有异曲同工之处。 但如果用它的方法来解这题却是行不通的。 试分析一种情况,设m=20; 那么共有四种情况,分别为2*10,2*2*5,4*5,20; 但如果用上一种方法来做的话,却有2*10,2*2*5,4*5,2*2*5,20共五种情况。 究其原因是因为左边因式经 阅读全文
摘要:
括号匹配问题 做的时候脑袋虽然晕乎乎的,但心里就是想用一个函数借助递归思想完成该题(不借助主函数) 当然最终结果看似是达到这个要求了(*^▽^*)。 关于这种解法的解释就不说了,毕竟没有实用性! 1 #include<iostream> 2 #include<cstring> 3 using nam 阅读全文
摘要:
逆波兰表达式 非常标准的一个递归题 1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 using namespace std; 5 6 const int N=55; 7 char a[N]; 8 double antiPol 阅读全文
摘要:
数的计数 看到题目,我们很容易就会写出类似于下面这样的代码。 然后最后一个测试集过不去……(ε=(´ο`*)))唉) 1 #include<iostream> 2 using namespace std; 3 4 int ans; 5 void cnt(int ori){ 6 ans++; 7 fo 阅读全文
摘要:
山区建小学 该题的难点在于存在两个“子动态规划”并且需要用一个中间数组将两个“子动态规划”联系起来。 解题思路: 计算任意两个村子之间的距离,用动态规范显然降低了不少复杂度。(都可以单独出一个题目了~~(╯﹏╰)~~) 在任意两个村子之间建一所小学,并计算两个村子之间的所有村子到该小学的最短距离,求 阅读全文
摘要:
踩方格 做了好几个递推题,大多是披着递推的动态规划o(╥﹏╥)o 相对来说这题算是比较正经的递推了(*^▽^*) 只要区分开上一轮是从东/西边过来的还是从南边过来的,这题就基本ok了。 如果是从东(西)边过来的,那么这一步只能往西(东)走或者往北走。 如果是从南边过来的,那么这一步可以往东/西/北三 阅读全文
摘要:
判断整除 将前n-1个数看成一个整体序列,则n个数可能产生的结果就等于“前n-1个数产生的所有结果分别加上第n个数或分别减去第n个数” n-2也同理……直到1为止。 由于是判断有无结果能被k整除,所以所有的中间结果都可以取余k,从而使所有可能的结果保持在一个不大的范围,用数组进行存储。 下面代码中的 阅读全文
摘要:
流感传染 做这题时,程序最容易犯的错误就是认为“今天刚染病的人也具有传染性” 显然,今天刚染病的人昨天是不具有传染性的,所以今天染病的人绝不是因这种刚染病的人引起的! 所以在检查健康人今天是否存在染病风险时,应避免这一误区! 我这里使用的方法是对病人染病日期进行记录。 1 #include<iost 阅读全文