分类目录归档:C++
串讲八、金币
金币
题目描述:
国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一 枚金币;之后两天(第二天和第三天),每天收到两枚金币;之 后三天(第四、五、六天),每天收到三枚金币;之后四天(第 七、八、九、十天),每天收到四枚金币……;这种工资发放模 式会一直这样延续下去:当连续N天每天收到N枚...
串讲七、买铅笔
买铅笔
题目描述
题目描述 P老师需要去商店买n支铅笔作为小朋友们参加 NOIP 的礼物。她 发现商店一共有 3 种包装的铅笔,不同包装内的铅笔数量有可能 不同,价格也有可能不同。为了公平起 见,P 老师决定只买同一 种包装的铅笔。 商店不允许将铅笔的包装拆开,因此P老师可能需要购买超过n支 ...
明明的随机数
明明的随机数
题目描述
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客 观性,他先用计算机生成了N个1到1000之间的随机整数 (N≤100),对于其中重复的数字,只保留一个,把其余相同的 数去掉,不同的数对应着不同的学生的学号。然后再把这些数从 小到大排序,按照排好的顺序去找同学做...
三国游戏
在讲解三国游戏这道真题前,我们先来解决上一节课的题目,这 是博弈论的入门题目。
1.博弈论入门
你和你的朋友,两个人一起玩游戏:桌子上有一堆石头,每次你 们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。 你作为先手。 你们是聪明人,每一步都是最优解。 编写一个程序,来判断你...
深入理解贪心算法
深入理解贪心算法
上完了贪心这一讲,并且完成了课中的题目,你可能还是一头雾 水,你的感受是非常正常的,因为贪心算法并不像排序算法那样 有很强的模板性,掌握了几种排序的写法就可以应对所有的排序 问题。 上节课我总结贪心算法的时候,提到了一个重点:贪心算法解决 问题的正确性很多时候都是“显而易见”...
数字统计
数字统计
题目: 请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。 比如在给定范围[2, 22],数字2在数2中出现了1次,在数12中出 现了1次,在数20中出现了1次,在数21中出现了1次,在数22中 出现了2次,所以数字2在该范围内一共出现了6次。 输入格式: 输入共一行,为...
通过“01背包”问题理解深 搜、剪枝、回溯以及递归 优化
通过“01背包”问题理解深搜、剪枝、回溯以及递归优化
背包问题是我们的老朋友了,在学习贪心算法时,我们接触到的 是“可分割”的背包问题,传送门:《深入理解贪心算法》 文章末尾我提到了如果物品不能分割,那就是 01 背包问题,01 背包问题是不能用贪心算法来解决的。01 背包也有很多种版本,
...
质因数分解(思维训练)
质因数分解(思维训练)
在讲这道 NOIP 真题之前,我们先来聊聊质因数分解,这是本周 的思考题: 输入一个正整数 n,把它分解成质因子相乘的形式,如 36 = 1 * 2
2 * 3 * 3;19=1 * 19.(1 不是质因数,这里带上1只是一种表 示的格式)
当前要考察的质因数是3,为...
C++递归算法实例
递归算法--函数的自我调用
递归算法是一种直接或间接调用自身的方法或函数来完成某种计算的算法。在C++中,递归常用于解决可以分解为规模更小、但形式相同的子问题的情况。递归算法的两个基本要素是:基准情形(基本情况)和递归步骤(或递归关系)。基准情形是不需要进行递归而能直接解出的问题;递归步骤则是...