C++小游戏——flappy bird简单实现
进制转换类问题汇总
【题解】转换的问题
【题目描述】
那么,问题来了:
输入一个十进制数N,将它转换成R进制数输出。
【输入描述】
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。
【输出描述】
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)
【样例输入】
7 2 23 12 -4 3
【样例输出】
111 1B -11
【题解】取余运算
【题目描述】
输入b,p,k的值,求bp mod k的值。其中b,p,k×k为长整型数。
【输入描述】
输入b,p,k的值。
【输出描述】
求 b^p mod k的值。
【样例输入】
2 10 9
【样例输出】
2^10 mod 9=7
DEVC++中的快捷键
【题解】神奇的fans
C++整型的数据范围
取模运算总结——数论
编程竞赛有相当一部分题目的结果过于庞大,整数类型无法存储,往往只要求输出取模的结果。
例如(a+b)%p,若a+b的结果我们存储不了,再去取模,结果显然不对,我们为了防止溢出,可以先分别对a取模,b取模,再求和,输出的结果相同。
a mod b表示a除以b的余数。有下面的公式:
(a + b) % p = (a%p + b%p) %p
(a - b) % p = ((a%p - b%p) + p) %p
(a * b) % p = (a%p)*(b%p) %p
【题解】电缆线(2019青岛市程序设计竞赛)
【问题描述】
在郊区有N座通信基站,P条双向电缆,第 i 条电缆连接基站 A_i 和 B_i。特别地,1号基站是通信公司的总站,N号基站位于一座农场中。现在,农场主希望对通信线路进行升级,其中升级第 i 条电缆需要花费 L_i。
电话公司正在举行优惠活动。农场主可以指定一条从1号基站到N号基站的路径,并指定路径上不超过K条电缆,由电话公司免费提供升级服务。农场主只需要支付在该路径上剩余的电缆中,升级价格最贵的那条电缆的花费即可。
求最少用多少钱能完成升级。
【输入】
第一行,3个空格隔开正整数N,P,K。
以下P行:每行是:Ai, Bi, Li
【输出】
最少的升级花费。
line.in | line.out |
5 7 1 1 2 5 3 1 4 2 4 8 3 2 3 5 2 9 3 4 7 4 5 6 | 4 |
【数据范围】
30%的数据:1 ≤ N ≤ 50,1 ≤ P ≤ 200;
100%的数据:1 ≤ N ≤ 1,000;1 ≤ P ≤ 10,000;1 ≤ Li ≤ 1,000,000;0 ≤ K < N。
【来源】
2019年青岛市程序设计竞赛试题(初中组)4T