提交 f793ca4e 编写于 作者: 每日一练社区's avatar 每日一练社区

update solution.md

上级 bd1ed82d
# 猜年龄 # 猜年龄
美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。
一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。” 一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”
请你推算一下,他当时到底有多年轻。 请你推算一下,他当时到底有多年轻。
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
1/1 + 1/2 + 1/4 + 1/8 + 1/16 + … 每项是前一项的一半,如果一共有20项,求这个和是多少,结果用分数表示出来。 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + … 每项是前一项的一半,如果一共有20项,求这个和是多少,结果用分数表示出来。
类似:3/2 类似:3/2
当然,这只是加了前2项而已。分子分母要求互质。 当然,这只是加了前2项而已。分子分母要求互质。
下面哪一项是<span style="color:red">错误</span>的? 下面哪一项是<span style="color:red">错误</span>的?
......
# 第几个幸运数 # 第几个幸运数
到x星球旅行的游客都被发给一个整数,作为游客编号。 到x星球旅行的游客都被发给一个整数,作为游客编号。
x星的国王有个怪癖,他只喜欢数字3,5和7。 x星的国王有个怪癖,他只喜欢数字3,5和7。
国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品。 国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品。
我们来看前10个幸运数字是: 我们来看前10个幸运数字是:
3 5 7 9 15 21 25 27 35 45 3 5 7 9 15 21 25 27 35 45
因而第11个幸运数字是:49 因而第11个幸运数字是:49
小明领到了一个幸运数字 59084709587505,他去领奖的时候,人家要求他准确地说出这是第几个幸运数字,否则领不到奖品。 小明领到了一个幸运数字 59084709587505,他去领奖的时候,人家要求他准确地说出这是第几个幸运数字,否则领不到奖品。
......
...@@ -2,10 +2,13 @@ ...@@ -2,10 +2,13 @@
2,3,5,7,11,13,....是素数序列。 2,3,5,7,11,13,....是素数序列。
类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。
上边的数列公差为30,长度为6。 上边的数列公差为30,长度为6。
2004年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。 2004年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。
这是数论领域一项惊人的成果! 这是数论领域一项惊人的成果!
有这一理论为基础,请你借助手中的计算机,满怀信心地搜索: 有这一理论为基础,请你借助手中的计算机,满怀信心地搜索:
......
...@@ -49,8 +49,11 @@ ...@@ -49,8 +49,11 @@
-2 -2
-100000 -100000
-100000 -100000
#### 输出样例2: ```
**输出样例2:**
```
-999999829 -999999829
``` ```
......
# 猜字母 # 猜字母
把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。 把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。
接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。 接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。
得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。 得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。
以下程序哪项运行后不能得到正确答案? 以下程序哪项运行后不能得到正确答案?
......
...@@ -3,9 +3,11 @@ ...@@ -3,9 +3,11 @@
**问题描述** **问题描述**
编写一个程序,建立了一条单向链表,每个结点包含姓名、学号、英语成绩、数学成绩和C++成绩,并通过链表操作平均最高的学生和平均分最低的学生并且输出。 编写一个程序,建立了一条单向链表,每个结点包含姓名、学号、英语成绩、数学成绩和C++成绩,并通过链表操作平均最高的学生和平均分最低的学生并且输出。
**输入格式** **输入格式**
输入n+1行,第一行输入一个正整数n,表示学生数量;接下来的n行每行输入5个数据,分别表示姓名、学号、英语成绩、数学成绩和C++成绩。注意成绩有可能会有小数。 输入n+1行,第一行输入一个正整数n,表示学生数量;接下来的n行每行输入5个数据,分别表示姓名、学号、英语成绩、数学成绩和C++成绩。注意成绩有可能会有小数。
**输出格式** **输出格式**
输出两行,第一行输出平均成绩最高的学生姓名。第二行输出平均成绩最低的学生姓名。 输出两行,第一行输出平均成绩最高的学生姓名。第二行输出平均成绩最低的学生姓名。
......
...@@ -3,8 +3,11 @@ ...@@ -3,8 +3,11 @@
**问题描述** **问题描述**
x星球有26只球队,分别用 a ~ z 的26个字母代表。他们总是不停地比赛。 x星球有26只球队,分别用 a ~ z 的26个字母代表。他们总是不停地比赛。
在某一赛段,哪个球队获胜了,就记录下代表它的字母,这样就形成一个长长的串。 在某一赛段,哪个球队获胜了,就记录下代表它的字母,这样就形成一个长长的串。
国王总是询问:获胜次数最多的和获胜次数最少的有多大差距? 国王总是询问:获胜次数最多的和获胜次数最少的有多大差距?
(当然,他不关心那些一次也没获胜的,认为他们在怠工罢了) (当然,他不关心那些一次也没获胜的,认为他们在怠工罢了)
**输入格式** **输入格式**
......
# 微生物增殖 # 微生物增殖
假设有两种微生物 X 和 Y 假设有两种微生物 X 和 Y
X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。 X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。
一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。 一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。
现在已知有新出生的 X=10, Y=89,求60分钟后Y的数目。 现在已知有新出生的 X=10, Y=89,求60分钟后Y的数目。
如果X=10,Y=90呢? 如果X=10,Y=90呢?
本题的要求就是写出这两种初始条件下,60分钟后Y的数目。 本题的要求就是写出这两种初始条件下,60分钟后Y的数目。
......
# 星系炸弹 # 星系炸弹
在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。 在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。 每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。 比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。 有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。
......
# 蛇形填数 # 蛇形填数
如下图所示,小明用从1 开始的正整数“蛇形”填充无限大的矩阵。 如下图所示,小明用从1 开始的正整数“蛇形”填充无限大的矩阵。
![](https://img-blog.csdnimg.cn/20210221154521571.png) ![](https://img-blog.csdnimg.cn/20210221154521571.png)
容易看出矩阵第二行第二列中的数是5。请你计算矩阵中第20 行第20 列的数是多少? 容易看出矩阵第二行第二列中的数是5。请你计算矩阵中第20 行第20 列的数是多少?
......
# 跑步训练 # 跑步训练
小明要做一个跑步训练。 小明要做一个跑步训练。
初始时,小明充满体力,体力值计为 10000 。如果小明跑步,每分钟损耗 600的体力。如果小明休息,每分钟增加 300 的体力。体力的损耗和增加都是均匀变化的。 初始时,小明充满体力,体力值计为 10000 。如果小明跑步,每分钟损耗 600的体力。如果小明休息,每分钟增加 300 的体力。体力的损耗和增加都是均匀变化的。
小明打算跑一分钟、休息一分钟、再跑一分钟、再休息一分钟……如此循环。如果某个时刻小明的体力到达 0 ,他就停止锻炼。 小明打算跑一分钟、休息一分钟、再跑一分钟、再休息一分钟……如此循环。如果某个时刻小明的体力到达 0 ,他就停止锻炼。
请问小明在多久后停止锻炼。为了使答案为整数,请以秒为单位输出答案 请问小明在多久后停止锻炼。为了使答案为整数,请以秒为单位输出答案
......
# 切面条 # 切面条
一根高筋拉面,中间切一刀,可以得到2根面条。 一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。 如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。
那么,连续对折10次,中间切一刀,会得到多少面条呢? 那么,连续对折10次,中间切一刀,会得到多少面条呢?
## aop ## aop
......
...@@ -5,7 +5,9 @@ ...@@ -5,7 +5,9 @@
小明维护着一个程序员论坛。现在他收集了一份”点赞”日志,日志共有 N 行。 小明维护着一个程序员论坛。现在他收集了一份”点赞”日志,日志共有 N 行。
其中每一行的格式是: 其中每一行的格式是:
ts id ts id
表示在 ts 时刻编号 id 的帖子收到一个”赞”。 表示在 ts 时刻编号 id 的帖子收到一个”赞”。
现在小明想统计有哪些帖子曾经是”热帖”。 现在小明想统计有哪些帖子曾经是”热帖”。
......
# 神奇算式 # 神奇算式
由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。 由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。
比如: 比如:
``` ```
210 x 6 = 1260 210 x 6 = 1260
8 x 473 = 3784 8 x 473 = 3784
27 x 81 = 2187 27 x 81 = 2187
``` ```
都符合要求。 都符合要求。
如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。 如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。
以下选项<span style="color:red">错误</span>的是? 以下选项<span style="color:red">错误</span>的是?
......
# 生日蜡烛 # 生日蜡烛
某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。 现在算起来,他一吹熄了236根蜡烛。 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。 现在算起来,他一吹熄了236根蜡烛。
请问,他从多少岁开始过生日party的? 请问,他从多少岁开始过生日party的?
## aop ## aop
......
# 合并检测 # 合并检测
新冠疫情由新冠病毒引起,最近在 A 国蔓延,为了尽快控制疫情,A 国准 备给大量民众进病毒核酸检测。 新冠疫情由新冠病毒引起,最近在 A 国蔓延,为了尽快控制疫情,A 国准 备给大量民众进病毒核酸检测。
然而,用于检测的试剂盒紧缺。为了解决这一困难,科学家想了一个办法:合并检测。即将从多个人(k 个)采集的标本放到同一个试剂盒中进行检测。如果结果为阴性,则说明这 k 个人都是阴性,用一个试剂盒完成了 k 个人的检测。如果结果为阳性,则说明 至少有一个人为阳性,需要将这 k 个人的样本全部重新独立检测(从理论上看, 如果检测前 k−1 个人都是阴性可以推断出第 k 个人是阳性,但是在实际操作中 不会利用此推断,而是将 k 个人独立检测),加上最开始的合并检测,一共使用 了 k + 1 个试剂盒完成了 k 个人的检测。 然而,用于检测的试剂盒紧缺。为了解决这一困难,科学家想了一个办法:合并检测。即将从多个人(k 个)采集的标本放到同一个试剂盒中进行检测。如果结果为阴性,则说明这 k 个人都是阴性,用一个试剂盒完成了 k 个人的检测。如果结果为阳性,则说明 至少有一个人为阳性,需要将这 k 个人的样本全部重新独立检测(从理论上看, 如果检测前 k−1 个人都是阴性可以推断出第 k 个人是阳性,但是在实际操作中 不会利用此推断,而是将 k 个人独立检测),加上最开始的合并检测,一共使用 了 k + 1 个试剂盒完成了 k 个人的检测。
A 国估计被测的民众的感染率大概是 1%,呈均匀分布。请问 k 取多少能最节省试剂盒? A 国估计被测的民众的感染率大概是 1%,呈均匀分布。请问 k 取多少能最节省试剂盒?
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
**输入格式** **输入格式**
第一行包含两个整数N和K。(1 <= N, K <= 100000) 第一行包含两个整数N和K。(1 <= N, K <= 100000)
以下N行每行包含一个整数$A_i$。(1 <= $A_i$ <= 100000) 以下N行每行包含一个整数$A_i$。(1 <= $A_i$ <= 100000)
**输出格式** **输出格式**
......
# 纸牌三角形 # 纸牌三角形
A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算)。要求每个边的和相等。 A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算)。要求每个边的和相等。
下面就是一种排法 下面就是一种排法
``` ```
A A
9 6 9 6
......
# 交换瓶子 # 交换瓶子
有N个瓶子,编号 1 ~ N,放在架子上。 有N个瓶子,编号 1 ~ N,放在架子上。
比如有5个瓶子: 比如有5个瓶子:
2 1 3 5 4 2 1 3 5 4
要求每次拿起2个瓶子,交换它们的位置。 要求每次拿起2个瓶子,交换它们的位置。
经过若干次后,使得瓶子的序号为: 经过若干次后,使得瓶子的序号为:
1 2 3 4 5 1 2 3 4 5
对于这么简单的情况,显然,至少需要交换2次就可以复位。 对于这么简单的情况,显然,至少需要交换2次就可以复位。
如果瓶子更多呢?你可以通过编程来解决。 如果瓶子更多呢?你可以通过编程来解决。
输入格式为两行: 输入格式为两行:
第一行: 一个正整数N(N<10000), 表示瓶子的数目 第一行: 一个正整数N(N<10000), 表示瓶子的数目
第二行:N个正整数,用空格分开,表示瓶子目前的排列情况。 第二行:N个正整数,用空格分开,表示瓶子目前的排列情况。
输出数据为一行一个正整数,表示至少交换多少次,才能完成排序。 输出数据为一行一个正整数,表示至少交换多少次,才能完成排序。
例如,输入: 例如,输入:
``` ```
5 5
3 1 2 5 4 3 1 2 5 4
``` ```
程序应该输出: 程序应该输出:
``` ```
3 3
``` ```
再例如,输入: 再例如,输入:
``` ```
5 5
5 4 3 2 1 5 4 3 2 1
``` ```
程序应该输出: 程序应该输出:
``` ```
2 2
``` ```
......
# 排它平方数 # 排它平方数
203879 * 203879 = 41566646641 203879 * 203879 = 41566646641
这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。 这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。
具有这样特点的6位数还有一个,请你找出它! 具有这样特点的6位数还有一个,请你找出它!
再归纳一下筛选要求: 再归纳一下筛选要求:
1. 6位正整数 1. 6位正整数
2. 每个数位上的数字不同 2. 每个数位上的数字不同
3. 其平方数的每个数位不含原数字的任何组成数位 3. 其平方数的每个数位不含原数字的任何组成数位
......
...@@ -17,6 +17,7 @@ A = A + 5 实际总共的循环次数是 2 × 5 × 6 = 60 次。 ...@@ -17,6 +17,7 @@ A = A + 5 实际总共的循环次数是 2 × 5 × 6 = 60 次。
题目给出的 prog.txt 文件: 题目给出的 prog.txt 文件:
``` ```
A = 0 A = 0
REPEAT 2: REPEAT 2:
......
# 煤球数目 # 煤球数目
有一堆煤球,堆成三角棱锥形。具体: 有一堆煤球,堆成三角棱锥形。具体:
第一层放1个, 第一层放1个,
第二层3个(排列成三角形), 第二层3个(排列成三角形),
第三层6个(排列成三角形), 第三层6个(排列成三角形),
第四层10个(排列成三角形), 第四层10个(排列成三角形),
.... ....
如果一共有100层,共有多少个煤球? 如果一共有100层,共有多少个煤球?
## aop ## aop
......
# 门牌制作 # 门牌制作
小蓝要为一条街的住户制作门牌号。 小蓝要为一条街的住户制作门牌号。
这条街一共有 2020 位住户,门牌号从 1 到 2020 编号。 这条街一共有 2020 位住户,门牌号从 1 到 2020 编号。
小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、7,即需要 1 个字符 0,2 个字符 1,1 个字符 7。 小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、7,即需要 1 个字符 0,2 个字符 1,1 个字符 7。
请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2? 请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2?
......
# 消除尾一 # 消除尾一
下面的代码把一个整数的二进制表示的最右边的连续的1全部变成0 下面的代码把一个整数的二进制表示的最右边的连续的1全部变成0
如果最后一位是0,则原数字保持不变。 如果最后一位是0,则原数字保持不变。
**输入:** **输入:**
......
...@@ -3,45 +3,63 @@ ...@@ -3,45 +3,63 @@
四平方和定理,又称为拉格朗日定理: 四平方和定理,又称为拉格朗日定理:
每个正整数都可以表示为至多4个正整数的平方和。 每个正整数都可以表示为至多4个正整数的平方和。
如果把0包括进去,就正好可以表示为4个数的平方和。 如果把0包括进去,就正好可以表示为4个数的平方和。
比如: 比如:
``` ```
5 = 0^ 2 + 0^ 2 + 1^ 2 + 2^2 5 = 0^ 2 + 0^ 2 + 1^ 2 + 2^2
7 = 1^ 2 + 1^ 2 + 1^ 2 + 2^2 7 = 1^ 2 + 1^ 2 + 1^ 2 + 2^2
(^符号表示乘方的意思) (^符号表示乘方的意思)
``` ```
对于一个给定的正整数,可能存在多种平方和的表示法。 对于一个给定的正整数,可能存在多种平方和的表示法。
要求你对4个数排序: 要求你对4个数排序:
``` ```
0 <= a <= b <= c <= d 0 <= a <= b <= c <= d
``` ```
并对所有的可能表示法按 a,b,c,d 为联合主键升序排列,最后输出第一个表示法 并对所有的可能表示法按 a,b,c,d 为联合主键升序排列,最后输出第一个表示法
程序输入为一个正整数N (N<5000000) 程序输入为一个正整数N (N<5000000)
要求输出4个非负整数,按从小到大排序,中间用空格分开 要求输出4个非负整数,按从小到大排序,中间用空格分开
例如,输入: 例如,输入:
``` ```
5 5
``` ```
则程序应该输出: 则程序应该输出:
``` ```
0 0 1 2 0 0 1 2
``` ```
再例如,输入: 再例如,输入:
``` ```
12 12
``` ```
则程序应该输出: 则程序应该输出:
``` ```
0 2 2 2 0 2 2 2
``` ```
再例如,输入: 再例如,输入:
``` ```
773535 773535
``` ```
则程序应该输出: 则程序应该输出:
``` ```
1 1 267 838 1 1 267 838
``` ```
......
# 递增三元组 # 递增三元组
给定三个整数数组 给定三个整数数组
A = [A1, A2, ... AN], A = [A1, A2, ... AN],
B = [B1, B2, ... BN], B = [B1, B2, ... BN],
C = [C1, C2, ... CN], C = [C1, C2, ... CN],
请你统计有多少个三元组(i, j, k) 满足: 请你统计有多少个三元组(i, j, k) 满足:
1. 1 <= i, j, k <= N 1. 1 <= i, j, k <= N
2. Ai < Bj < Ck 2. Ai < Bj < Ck
**输入格式** **输入格式**
第一行包含一个整数N。 第一行包含一个整数N。
第二行包含N个整数A1, A2, ... AN。 第二行包含N个整数A1, A2, ... AN。
第三行包含N个整数B1, B2, ... BN。 第三行包含N个整数B1, B2, ... BN。
第四行包含N个整数C1, C2, ... CN。 第四行包含N个整数C1, C2, ... CN。
对于30%的数据,1 <= N <= 100 对于30%的数据,1 <= N <= 100
对于60%的数据,1 <= N <= 1000 对于60%的数据,1 <= N <= 1000
对于100%的数据,1 <= N <= 100000 0 <= Ai, Bi, Ci <= 100000 对于100%的数据,1 <= N <= 100000 0 <= Ai, Bi, Ci <= 100000
**输出格式** **输出格式**
......
# 完美平方数 # 完美平方数
如果整个整数 X 本身是完全平方数,同时它的每一位数字也都是完全平方数,我们就称 X 是完美平方数。 如果整个整数 X 本身是完全平方数,同时它的每一位数字也都是完全平方数,我们就称 X 是完美平方数。
前几个完美平方数是 0、1、4、9、49、100、144…… 前几个完美平方数是 0、1、4、9、49、100、144……
即第 1 个完美平方数是 0,第 2 个是 1,第 3 个是 4,…… 即第 1 个完美平方数是 0,第 2 个是 1,第 3 个是 4,……
请你计算第 2020 个完美平方数是多少? 请你计算第 2020 个完美平方数是多少?
......
# 第几天 # 第几天
y年m月d日是哪一年的第几天。 y年m月d日是哪一年的第几天。
比如y年的1月1日是那一年的第一天,那么2000年7月7日是那一年的第几天。 比如y年的1月1日是那一年的第一天,那么2000年7月7日是那一年的第几天。
## aop ## aop
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
**输入格式** **输入格式**
第一行两个整数n和m; 第一行两个整数n和m;
第二行起,每行m个整数,共n行,表示n×m的矩阵。数据之间都用一个空格分隔。 第二行起,每行m个整数,共n行,表示n×m的矩阵。数据之间都用一个空格分隔。
**输出格式** **输出格式**
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
``` ```
左边的乘数和被乘数正好用到了1~9的所有数字,每个1次。 左边的乘数和被乘数正好用到了1~9的所有数字,每个1次。
而乘积恰好也是用到了1~9的所有数字,并且每个1次。 而乘积恰好也是用到了1~9的所有数字,并且每个1次。
请你借助计算机的强大计算能力,找出满足如上要求的9数算式一共有多少个? 请你借助计算机的强大计算能力,找出满足如上要求的9数算式一共有多少个?
...@@ -14,6 +15,7 @@ ...@@ -14,6 +15,7 @@
注意: 注意:
1. 总数目包含题目给出的那个示例。 1. 总数目包含题目给出的那个示例。
2. 乘数和被乘数交换后作为同一方案来看待。 2. 乘数和被乘数交换后作为同一方案来看待。
以下<span style="color:red">错误</span>的是? 以下<span style="color:red">错误</span>的是?
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
**问题描述** **问题描述**
小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。 小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。
现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这个字母出现的次数。 现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这个字母出现的次数。
**输入格式** **输入格式**
...@@ -11,8 +12,8 @@ ...@@ -11,8 +12,8 @@
**输出格式** **输出格式**
输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪 输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪个。如果有多个字母出现的次数相等,输出字典序最小的那个。
个。如果有多个字母出现的次数相等,输出字典序最小的那个。
第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数。 第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数。
**样例输入** **样例输入**
......
# 黄金连分数 # 黄金连分数
黄金分割数0.61803… 是个无理数,这个常数十分重要,在许多工程问题中会出现。有时需要把这个数字求得很精确。 黄金分割数0.61803… 是个无理数,这个常数十分重要,在许多工程问题中会出现。有时需要把这个数字求得很精确。
对于某些精密工程,常数的精度很重要。也许你听说过哈勃太空望远镜,它首次升空后就发现了一处人工加工<span style="color:red">错误</span>,对那样一个庞然大物,其实只是镜面加工时有比头发丝还细许多倍的一处<span style="color:red">错误</span>而已,却使它成了“近视眼”!! 对于某些精密工程,常数的精度很重要。也许你听说过哈勃太空望远镜,它首次升空后就发现了一处人工加工<span style="color:red">错误</span>,对那样一个庞然大物,其实只是镜面加工时有比头发丝还细许多倍的一处<span style="color:red">错误</span>而已,却使它成了“近视眼”!!
言归正传,我们如何求得黄金分割数的尽可能精确的值呢?有许多方法。 言归正传,我们如何求得黄金分割数的尽可能精确的值呢?有许多方法。
比较简单的一种是用连分数: 比较简单的一种是用连分数:
``` ```
...@@ -19,14 +22,23 @@ ...@@ -19,14 +22,23 @@
``` ```
这个连分数计算的“层数”越多,它的值越接近黄金分割数。 这个连分数计算的“层数”越多,它的值越接近黄金分割数。
请你利用这一特性,求出黄金分割数的足够精确值,要求四舍五入到小数点后100位。 请你利用这一特性,求出黄金分割数的足够精确值,要求四舍五入到小数点后100位。
小数点后3位的值为:0.618 小数点后3位的值为:0.618
小数点后4位的值为:0.6180 小数点后4位的值为:0.6180
小数点后5位的值为:0.61803 小数点后5位的值为:0.61803
小数点后7位的值为:0.6180340 小数点后7位的值为:0.6180340
(注意尾部的0,不能忽略) (注意尾部的0,不能忽略)
你的任务是:写出精确到小数点后100位精度的黄金分割值。 你的任务是:写出精确到小数点后100位精度的黄金分割值。
注意:尾数的四舍五入! 尾数是0也要保留! 注意:尾数的四舍五入! 尾数是0也要保留!
显然答案是一个小数,其小数点后有100位数字 显然答案是一个小数,其小数点后有100位数字
......
# 字母阵列 # 字母阵列
仔细寻找,会发现:在下面的8x8的方阵中,隐藏着字母序列:“LANQIAO”。 仔细寻找,会发现:在下面的8x8的方阵中,隐藏着字母序列:“LANQIAO”。
``` ```
SLANQIAO SLANQIAO
ZOEXCCGB ZOEXCCGB
...@@ -11,6 +12,7 @@ RSFWFNYA ...@@ -11,6 +12,7 @@ RSFWFNYA
XIFZVWAL XIFZVWAL
COAIQNAL COAIQNAL
``` ```
我们约定: 序列可以水平,垂直,或者是斜向;并且走向不限(实际上就是有一共8种方向)。 我们约定: 序列可以水平,垂直,或者是斜向;并且走向不限(实际上就是有一共8种方向)。
上面一共有4个满足要求的串。 上面一共有4个满足要求的串。
...@@ -20,6 +22,7 @@ COAIQNAL ...@@ -20,6 +22,7 @@ COAIQNAL
你能算出其中隐藏了多少个“LANQIAO”吗? 你能算出其中隐藏了多少个“LANQIAO”吗?
我就把这些东西放在了txt文件里 我就把这些东西放在了txt文件里
``` ```
FOAIQNALWIKEGNICJWAOSXDHTHZPOLGYELORAUHOHCZIERPTOOJUITQJCFNIYYQHSBEABBQZPNGYQTCLSKZFCYWDGOAIADKLSNGJ FOAIQNALWIKEGNICJWAOSXDHTHZPOLGYELORAUHOHCZIERPTOOJUITQJCFNIYYQHSBEABBQZPNGYQTCLSKZFCYWDGOAIADKLSNGJ
GSOZTQKCCSDWGUWAUOZKNILGVNLMCLXQVBJENIHIVLRPVVXXFTHQUXUAVZZOFFJHYLMGTLANQIAOQQILCDCJERJASNCTLYGRMHGF GSOZTQKCCSDWGUWAUOZKNILGVNLMCLXQVBJENIHIVLRPVVXXFTHQUXUAVZZOFFJHYLMGTLANQIAOQQILCDCJERJASNCTLYGRMHGF
......
...@@ -6,9 +6,9 @@ ...@@ -6,9 +6,9 @@
桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。 桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。
比如,可能情形是:```**oo***oooo``` 比如,可能情形是:`**oo***oooo`
如果同时翻转左边的两个硬币,则变为:```oooo***oooo``` 如果同时翻转左边的两个硬币,则变为:`oooo***oooo`
现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢? 现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
**样例输入1** **样例输入1**
``` ```
********** **********
o****o**** o****o****
``` ```
......
...@@ -7,9 +7,11 @@ ...@@ -7,9 +7,11 @@
更准确的说,小明定义 Alice 和 Bob “同时出现”的意思是:在小说文本中 Alice 和 Bob 之间不超过 K 个字符。 更准确的说,小明定义 Alice 和 Bob “同时出现”的意思是:在小说文本中 Alice 和 Bob 之间不超过 K 个字符。
例如以下文本: 例如以下文本:
``` ```
This is a story about Alice and Bob. Alice wants to send a private message to Bob. This is a story about Alice and Bob. Alice wants to send a private message to Bob.
``` ```
假设 K=20,则 Alice 和 Bob 同时出现了 2 次,分别是 Alice and Bob 和 Bob. Alice。 假设 K=20,则 Alice 和 Bob 同时出现了 2 次,分别是 Alice and Bob 和 Bob. Alice。
前者 Alice 和 Bob 之间有 5 个字符,后者有 2 个字符。 前者 Alice 和 Bob 之间有 5 个字符,后者有 2 个字符。
...@@ -17,6 +19,7 @@ This is a story about Alice and Bob. Alice wants to send a private message to Bo ...@@ -17,6 +19,7 @@ This is a story about Alice and Bob. Alice wants to send a private message to Bo
注意: 注意:
1. Alice 和 Bob 是大小写敏感的,alice 或 bob 等并不计算在内。 1. Alice 和 Bob 是大小写敏感的,alice 或 bob 等并不计算在内。
2. Alice 和 Bob 应为单独的单词,前后可以有标点符号和空格,但是不能有字母。例如 Bobbi 並不算出现了 Bob。 2. Alice 和 Bob 应为单独的单词,前后可以有标点符号和空格,但是不能有字母。例如 Bobbi 並不算出现了 Bob。
**输入格式** **输入格式**
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
小明有一串很长的英文字母,可能包含大写和小写。在这串字母中,有很多连续的是重复的。小明想了一个办法将这串字母表达得更短:将连续的几个相同字母写成字母 + 出现次数的形式。 小明有一串很长的英文字母,可能包含大写和小写。在这串字母中,有很多连续的是重复的。小明想了一个办法将这串字母表达得更短:将连续的几个相同字母写成字母 + 出现次数的形式。
例如,连续的 5 个 a,即 aaaaa,小明可以简写成 a5(也可能简写成 a4a、aa3a 等)。对于这个例子:HHHellllloo,小明可以简写成 H3el5o2。为了方便表达,小明不会将连续的超过 9 个相同的字符写成简写的形式。 例如,连续的 5 个 a,即 aaaaa,小明可以简写成 a5(也可能简写成 a4a、aa3a 等)。对于这个例子:HHHellllloo,小明可以简写成 H3el5o2。为了方便表达,小明不会将连续的超过 9 个相同的字符写成简写的形式。
现在给出简写后的字符串,请帮助小明还原成原来的串。 现在给出简写后的字符串,请帮助小明还原成原来的串。
**输入格式** **输入格式**
......
...@@ -3,9 +3,12 @@ ...@@ -3,9 +3,12 @@
**题目描述** **题目描述**
一个字符串的非空子串是指字符串中长度至少为1 的连续的一段字符组成的串。 一个字符串的非空子串是指字符串中长度至少为1 的连续的一段字符组成的串。
例如,字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab,一共7 个。 例如,字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab,一共7 个。
注意在计算时,只算本质不同的串的个数。 注意在计算时,只算本质不同的串的个数。
请问,字符串```0100110001010001```有多少个不同的非空子串?
请问,字符串`0100110001010001`有多少个不同的非空子串?
以下程序实现了这一功能,请你补全空白处的内容: 以下程序实现了这一功能,请你补全空白处的内容:
...@@ -29,19 +32,23 @@ int main() ...@@ -29,19 +32,23 @@ int main()
## aop ## aop
### before ### before
```cpp ```cpp
``` ```
### after ### after
```cpp ```cpp
``` ```
## 答案 ## 答案
```cpp ```cpp
s.insert(str.substr(i, j - i + 1)); s.insert(str.substr(i, j - i + 1));
``` ```
## 选项 ## 选项
### A ### A
......
...@@ -3,9 +3,12 @@ ...@@ -3,9 +3,12 @@
**问题描述** **问题描述**
2020 年春节期间,有一个特殊的日期引起了大家的注意:2020年2月2日。因为如果将这个日期按“yyyymmdd” 的格式写成一个8 位数是20200202,恰好是一个回文数。我们称这样的日期是回文日期。 2020 年春节期间,有一个特殊的日期引起了大家的注意:2020年2月2日。因为如果将这个日期按“yyyymmdd” 的格式写成一个8 位数是20200202,恰好是一个回文数。我们称这样的日期是回文日期。
有人表示20200202 是“千年一遇” 的特殊日子。对此小明很不认同,因为不到2年之后就是下一个回文日期:20211202 即2021年12月2日。 有人表示20200202 是“千年一遇” 的特殊日子。对此小明很不认同,因为不到2年之后就是下一个回文日期:20211202 即2021年12月2日。
也有人表示20200202 并不仅仅是一个回文日期,还是一个ABABBABA型的回文日期。对此小明也不认同,因为大约100 年后就能遇到下一个ABABBABA 型的回文日期:21211212 即2121 年12 月12 日。算不上“千年一遇”,顶多算“千年两遇”。 也有人表示20200202 并不仅仅是一个回文日期,还是一个ABABBABA型的回文日期。对此小明也不认同,因为大约100 年后就能遇到下一个ABABBABA 型的回文日期:21211212 即2121 年12 月12 日。算不上“千年一遇”,顶多算“千年两遇”。
给定一个8 位数的日期,请你计算该日期之后下一个回文日期和下一个ABABBABA型的回文日期各是哪一天。 给定一个8 位数的日期,请你计算该日期之后下一个回文日期和下一个ABABBABA型的回文日期各是哪一天。
...@@ -17,6 +20,7 @@ ...@@ -17,6 +20,7 @@
**输出格式** **输出格式**
输出两行,每行1 个八位数。第一行表示下一个回文日期,第二行表示下 输出两行,每行1 个八位数。第一行表示下一个回文日期,第二行表示下
一个ABABBABA 型的回文日期。 一个ABABBABA 型的回文日期。
**样例输入** **样例输入**
......
# 格子中输出 # 格子中输出
StringInGrid函数会在一个指定大小的格子中打印指定的字符串。 要求字符串在水平、垂直两个方向上都居中。 如果字符串太长,就截断。 如果不能恰好居中,可以稍稍偏左或者偏上一点。 StringInGrid函数会在一个指定大小的格子中打印指定的字符串。 要求字符串在水平、垂直两个方向上都居中。 如果字符串太长,就截断。 如果不能恰好居中,可以稍稍偏左或者偏上一点。
输出: 输出:
![](https://img-blog.csdnimg.cn/20200327144609874.png#pic_center) ![](https://img-blog.csdnimg.cn/20200327144609874.png#pic_center)
......
# 抽签 # 抽签
X星球要派出一个5人组成的观察团前往W星。 X星球要派出一个5人组成的观察团前往W星。
其中: 其中:
A国最多可以派出4人。 A国最多可以派出4人。
B国最多可以派出2人。 B国最多可以派出2人。
C国最多可以派出2人。 C国最多可以派出2人。
.... ....
那么最终派往W星的观察团会有多少种国别的不同组合呢? 那么最终派往W星的观察团会有多少种国别的不同组合呢?
下面的程序解决了这个问题。 下面的程序解决了这个问题。
请你补全代码中空白的部分: 请你补全代码中空白的部分:
```cpp ```cpp
......
# 打印图形 # 打印图形
小明在X星球的城堡中发现了如下图形和文字: 小明在X星球的城堡中发现了如下图形和文字:
``` ```
rank=3 rank=3
* *
...@@ -58,6 +59,7 @@ ran=6 ...@@ -58,6 +59,7 @@ ran=6
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
``` ```
请你补全程序,实现该图形的打印。 请你补全程序,实现该图形的打印。
```cpp ```cpp
......
...@@ -12,8 +12,7 @@ ...@@ -12,8 +12,7 @@
输入的第一行包含一个整数 N。 输入的第一行包含一个整数 N。
第二行包含 N 个整数 A1,A2,⋅⋅⋅,AN。(注意 A1∼AN 并不一定是按等差数 第二行包含 N 个整数 A1,A2,⋅⋅⋅,AN。(注意 A1∼AN 并不一定是按等差数列中的顺序给出)
列中的顺序给出)
**输出格式** **输出格式**
......
# 斐波那契 # 斐波那契
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。
当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
**输入格式** **输入格式**
输入包含一个整数n。 输入包含一个整数n。
输出格式 输出格式
输出一行,包含一个整数,表示Fn除以10007的余数。 输出一行,包含一个整数,表示Fn除以10007的余数。
说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。 说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。
**样例输入** **样例输入**
......
# 逆波兰表达式 # 逆波兰表达式
正常的表达式称为中缀表达式,运算符在中间,主要是给人阅读的,机器求解并不方便。 正常的表达式称为中缀表达式,运算符在中间,主要是给人阅读的,机器求解并不方便。
例如:3 + 5 * (2 + 6) - 1 例如:3 + 5 * (2 + 6) - 1
而且,常常需要用括号来改变运算次序。 而且,常常需要用括号来改变运算次序。
相反,如果使用逆波兰表达式(前缀表达式)表示,上面的算式则表示为: 相反,如果使用逆波兰表达式(前缀表达式)表示,上面的算式则表示为:
``` ```
- + 3 * 5 + 2 6 1 - + 3 * 5 + 2 6 1
``` ```
不再需要括号,机器可以用递归的方法很方便地求解。 不再需要括号,机器可以用递归的方法很方便地求解。
为了简便,我们假设: 为了简便,我们假设:
1. 只有 $ + - * $ 三种运算符 1. 只有 $ + - * $ 三种运算符
2. 每个运算数都是一个小于10的非负整数 2. 每个运算数都是一个小于10的非负整数
下面的程序对一个逆波兰表示串进行求值。 下面的程序对一个逆波兰表示串进行求值。
其返回值为一个数组:其中第一元素表示求值结果,第二个元素表示它已解析的字符数。 其返回值为一个数组:其中第一元素表示求值结果,第二个元素表示它已解析的字符数。
请你补全代码: 请你补全代码:
```cpp ```cpp
#include <bits/stdc++.h> #include <bits/stdc++.h>
using namespace std; using namespace std;
......
# 扑克序列 # 扑克序列
A A 2 2 3 3 4 4, 一共4对扑克牌。请你把它们排成一行。 A A 2 2 3 3 4 4, 一共4对扑克牌。请你把它们排成一行。
要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌。 要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌。
请填写出所有符合要求的排列中,字典序最小的那个。 请填写出所有符合要求的排列中,字典序最小的那个。
......
...@@ -3,13 +3,16 @@ ...@@ -3,13 +3,16 @@
小明参加了学校的趣味运动会,其中的一个项目是:跳格子。 小明参加了学校的趣味运动会,其中的一个项目是:跳格子。
地上画着一些格子,每个格子里写一个字,如下所示: 地上画着一些格子,每个格子里写一个字,如下所示:
``` ```
从我做起振 从我做起振
我做起振兴 我做起振兴
做起振兴中 做起振兴中
起振兴中华 起振兴中华
``` ```
![](https://img-blog.csdn.net/20180327194316347) ![](https://img-blog.csdn.net/20180327194316347)
比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。 比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。
要求跳过的路线刚好构成“从我做起振兴中华”这句话。 要求跳过的路线刚好构成“从我做起振兴中华”这句话。
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
**题目描述** **题目描述**
我们知道包含N个元素的堆可以看成是一棵包含N个节点的完全二叉树。 我们知道包含N个元素的堆可以看成是一棵包含N个节点的完全二叉树。
每个节点有一个权值。对于小根堆来说,父节点的权值一定小于其子节点的权值。 每个节点有一个权值。对于小根堆来说,父节点的权值一定小于其子节点的权值。
假设N个节点的权值分别是1~N,你能求出一共有多少种不同的小根堆吗? 假设N个节点的权值分别是1~N,你能求出一共有多少种不同的小根堆吗?
...@@ -28,14 +29,18 @@ ...@@ -28,14 +29,18 @@
3 3
``` ```
由于数量可能超过整型范围,你只需要输出结果除以1000000009的余数。 由于数量可能超过整型范围,你只需要输出结果除以1000000009的余数。
**输入格式** **输入格式**
一个整数N。 一个整数N。
对于40%的数据,1 <= N <= 1000 对于40%的数据,1 <= N <= 1000
对于70%的数据,1 <= N <= 10000 对于70%的数据,1 <= N <= 10000
对于100%的数据,1 <= N <= 100000 对于100%的数据,1 <= N <= 100000
**输出格式** **输出格式**
...@@ -53,9 +58,11 @@ ...@@ -53,9 +58,11 @@
``` ```
3 3
``` ```
**资源约定:** **资源约定:**
峰值内存消耗(含虚拟机) < 256M 峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms CPU消耗 < 1000ms
下面的代码实现了这一功能,请你补全空白处缺失的代码: 下面的代码实现了这一功能,请你补全空白处缺失的代码:
......
...@@ -4,14 +4,23 @@ ...@@ -4,14 +4,23 @@
**问题描述** **问题描述**
幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的“筛法”生成。 幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的“筛法”生成。
首先从1开始写出自然数1,2,3,4,5,6,… 首先从1开始写出自然数1,2,3,4,5,6,…
1 就是第一个幸运数。 1 就是第一个幸运数。
我们从2这个数开始。把所有序号能被2整除的项删除,变为: 我们从2这个数开始。把所有序号能被2整除的项删除,变为:
1 _ 3 _ 5 _ 7 _ 9 … 1 _ 3 _ 5 _ 7 _ 9 …
把它们缩紧,重新记序,为: 把它们缩紧,重新记序,为:
1 3 5 7 9 … 。 1 3 5 7 9 … 。
这时,3为第2个幸运数,然后把所有能被3整除的序号位置的数删去。注意,是序号位置,不是那个数本身能否被3整除!! 删除的应该是5,11, 17, … 这时,3为第2个幸运数,然后把所有能被3整除的序号位置的数删去。注意,是序号位置,不是那个数本身能否被3整除!! 删除的应该是5,11, 17, …
此时7为第3个幸运数,然后再删去序号位置能被7整除的(19,39,…) 此时7为第3个幸运数,然后再删去序号位置能被7整除的(19,39,…)
最后剩下的序列类似: 最后剩下的序列类似:
``` ```
......
# 方格填数 # 方格填数
如下图 如下图
![](https://img-blog.csdnimg.cn/20190313140048205.jpg) ![](https://img-blog.csdnimg.cn/20190313140048205.jpg)
填入0~9的数字。要求:连续的两个数字不能相邻。 填入0~9的数字。要求:连续的两个数字不能相邻。
(左右、上下、对角都算相邻) (左右、上下、对角都算相邻)
一共有多少种可能的填数方案? 一共有多少种可能的填数方案?
......
# 跑步锻炼 # 跑步锻炼
小蓝每天都锻炼身体。 小蓝每天都锻炼身体。
正常情况下,小蓝每天跑1千米。如果某天是周一或者月初(1日),为了激励自己,小蓝要跑2千米。如果同时是周一或月初,小蓝也是跑2千米。 正常情况下,小蓝每天跑1千米。如果某天是周一或者月初(1日),为了激励自己,小蓝要跑2千米。如果同时是周一或月初,小蓝也是跑2千米。
小蓝跑步已经坚持了很长时间,从2000年1月1日周六(含)到2020年10月1日周四(含)。请问这段时间小蓝总共跑步多少千米? 小蓝跑步已经坚持了很长时间,从2000年1月1日周六(含)到2020年10月1日周四(含)。请问这段时间小蓝总共跑步多少千米?
## aop ## aop
......
...@@ -3,8 +3,7 @@ ...@@ -3,8 +3,7 @@
**题目背景** **题目背景**
在游戏《星际争霸 II》中,高阶圣堂武士作为星灵的重要 AOE 单位,在游戏的中后期发挥着重要的作用,其技能”灵能风暴“可以消耗大量的灵能对一片区域内的敌军造成毁灭性的伤害。经常用于对抗人类的生化部队和虫族的 在游戏《星际争霸 II》中,高阶圣堂武士作为星灵的重要 AOE 单位,在游戏的中后期发挥着重要的作用,其技能”灵能风暴“可以消耗大量的灵能对一片区域内的敌军造成毁灭性的伤害。经常用于对抗人类的生化部队和虫族的刺蛇飞龙等低血量单位。
刺蛇飞龙等低血量单位。
**问题描述** **问题描述**
...@@ -15,8 +14,11 @@ ...@@ -15,8 +14,11 @@
**输入格式** **输入格式**
本题包含多组询问。输入的第一行包含一个正整数 T 表示询问组数。 本题包含多组询问。输入的第一行包含一个正整数 T 表示询问组数。
接下来依次输入每一组询问。 接下来依次输入每一组询问。
每组询问的第一行包含一个正整数 n,表示高阶圣堂武士的数量。 每组询问的第一行包含一个正整数 n,表示高阶圣堂武士的数量。
接下来一行包含 n 个数 $a_1 ,a_2 ,··· ,a_n $。 接下来一行包含 n 个数 $a_1 ,a_2 ,··· ,a_n $。
**输出格式** **输出格式**
......
...@@ -4,23 +4,36 @@ ...@@ -4,23 +4,36 @@
**问题描述** **问题描述**
小明最近在研究压缩算法。 小明最近在研究压缩算法。
他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比。 他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比。
然而,要使数值很小是一个挑战。 然而,要使数值很小是一个挑战。
最近,小明需要压缩一些正整数的序列,这些序列的特点是,后面出现的数字很大可能是刚出现过不久的数字。对于这种特殊的序列,小明准备对序列做一个变换来减小数字的值。 最近,小明需要压缩一些正整数的序列,这些序列的特点是,后面出现的数字很大可能是刚出现过不久的数字。对于这种特殊的序列,小明准备对序列做一个变换来减小数字的值。
变换的过程如下: 变换的过程如下:
从左到右枚举序列,每枚举到一个数字,如果这个数字没有出现过,刚将数字变换成它的相反数,如果数字出现过,则看它在原序列中最后的一次出现后面(且在当前数前面)出现了几种数字,用这个种类数替换原来的数字。 从左到右枚举序列,每枚举到一个数字,如果这个数字没有出现过,刚将数字变换成它的相反数,如果数字出现过,则看它在原序列中最后的一次出现后面(且在当前数前面)出现了几种数字,用这个种类数替换原来的数字。
比如,序列(a1, a2, a3, a4, a5)=(1, 2, 2, 1, 2)在变换过程为: 比如,序列(a1, a2, a3, a4, a5)=(1, 2, 2, 1, 2)在变换过程为:
a1: 1未出现过,所以a1变为-1; a1: 1未出现过,所以a1变为-1;
a2: 2未出现过,所以a2变为-2; a2: 2未出现过,所以a2变为-2;
a3: 2出现过,最后一次为原序列的a2,在a2后、a3前有0种数字,所以a3变为0; a3: 2出现过,最后一次为原序列的a2,在a2后、a3前有0种数字,所以a3变为0;
a4: 1出现过,最后一次为原序列的a1,在a1后、a4前有1种数字,所以a4变为1; a4: 1出现过,最后一次为原序列的a1,在a1后、a4前有1种数字,所以a4变为1;
a5: 2出现过,最后一次为原序列的a3,在a3后、a5前有1种数字,所以a5变为1。 a5: 2出现过,最后一次为原序列的a3,在a3后、a5前有1种数字,所以a5变为1。
现在,给出原序列,请问,按这种变换规则变换后的序列是什么。 现在,给出原序列,请问,按这种变换规则变换后的序列是什么。
**输入** **输入**
输入第一行包含一个整数n,表示序列的长度。 输入第一行包含一个整数n,表示序列的长度。
第二行包含n个正整数,表示输入序列。 第二行包含n个正整数,表示输入序列。
......
...@@ -11,8 +11,11 @@ ...@@ -11,8 +11,11 @@
每行2个字节,一共16行,布局是: 每行2个字节,一共16行,布局是:
第1字节,第2字节 第1字节,第2字节
第3字节,第4字节 第3字节,第4字节
第31字节, 第32字节 第31字节, 第32字节
这道题目是给你一段多个汉字组成的信息,每个汉字用32个字节表示,这里给出了字节作为有符号整数的值。 这道题目是给你一段多个汉字组成的信息,每个汉字用32个字节表示,这里给出了字节作为有符号整数的值。
...@@ -20,6 +23,7 @@ ...@@ -20,6 +23,7 @@
题目的要求隐藏在这些信息中。你的任务是复原这些汉字的字形,从中看出题目的要求,并根据要求填写答案。 题目的要求隐藏在这些信息中。你的任务是复原这些汉字的字形,从中看出题目的要求,并根据要求填写答案。
这段信息是(一共10个汉字): 这段信息是(一共10个汉字):
``` ```
4 0 4 0 4 0 4 32 -1 -16 4 32 4 32 4 32 4 32 4 32 8 32 8 32 16 34 16 34 32 30 -64 0 4 0 4 0 4 0 4 32 -1 -16 4 32 4 32 4 32 4 32 4 32 8 32 8 32 16 34 16 34 32 30 -64 0
16 64 16 64 34 68 127 126 66 -124 67 4 66 4 66 -124 126 100 66 36 66 4 66 4 66 4 126 4 66 40 0 16 16 64 16 64 34 68 127 126 66 -124 67 4 66 4 66 -124 126 100 66 36 66 4 66 4 66 4 126 4 66 40 0 16
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
三体人将对地球发起攻击。为了抵御攻击,地球人派出了 A × B × C 艘战舰,在太空中排成一个 A 层 B 行 C 列的立方体。其中,第 i 层第 j 行第 k 列的战舰(记为战舰 (i, j, k))的生命值为 d(i, j, k)。 三体人将对地球发起攻击。为了抵御攻击,地球人派出了 A × B × C 艘战舰,在太空中排成一个 A 层 B 行 C 列的立方体。其中,第 i 层第 j 行第 k 列的战舰(记为战舰 (i, j, k))的生命值为 d(i, j, k)。
三体人将会对地球发起 m 轮“立方体攻击”,每次攻击会对一个小立方体中的所有战舰都造成相同的伤害。具体地,第 t 轮攻击用 7 个参数 $la_t, ra_t, lb_t, rb_t, lc_t, rc_t, h_t $描述; 三体人将会对地球发起 m 轮“立方体攻击”,每次攻击会对一个小立方体中的所有战舰都造成相同的伤害。具体地,第 t 轮攻击用 7 个参数 $la_t, ra_t, lb_t, rb_t, lc_t, rc_t, h_t $描述;
所有满足$ i ∈ [la_t, ra_t],j ∈ [lb_t, rb_t],k ∈ [lc_t, rc_t] $的战舰 (i, j, k) 会受到 $h_t$ 的伤害。如果一个战舰累计受到的总伤害超过其防御力,那么这个战舰会爆炸。 所有满足$ i ∈ [la_t, ra_t],j ∈ [lb_t, rb_t],k ∈ [lc_t, rc_t] $的战舰 (i, j, k) 会受到 $h_t$ 的伤害。如果一个战舰累计受到的总伤害超过其防御力,那么这个战舰会爆炸。
地球指挥官希望你能告诉他,第一艘爆炸的战舰是在哪一轮攻击后爆炸的。 地球指挥官希望你能告诉他,第一艘爆炸的战舰是在哪一轮攻击后爆炸的。
...@@ -14,14 +15,18 @@ ...@@ -14,14 +15,18 @@
**输入格式** **输入格式**
从标准输入读入数据。 从标准输入读入数据。
第一行包括 4 个正整数 A, B, C, m; 第一行包括 4 个正整数 A, B, C, m;
第二行包含 A × B × C 个整数,其中第 ((i − 1)×B + (j − 1)) × C + (k − 1)+1 个数为 d(i, j, k); 第二行包含 A × B × C 个整数,其中第 ((i − 1)×B + (j − 1)) × C + (k − 1)+1 个数为 d(i, j, k);
第 3 到第 m + 2 行中,第 (t − 2) 行包含 7 个正整数 $la_t, ra_t, lb_t, rb_t, lc_t, rc_t, h_t$。 第 3 到第 m + 2 行中,第 (t − 2) 行包含 7 个正整数 $la_t, ra_t, lb_t, rb_t, lc_t, rc_t, h_t$。
**输出格式** **输出格式**
输出到标准输出。 输出到标准输出。
输出第一个爆炸的战舰是在哪一轮攻击后爆炸的。保证一定存在这样的战舰。 输出第一个爆炸的战舰是在哪一轮攻击后爆炸的。保证一定存在这样的战舰。
......
# 兰顿蚂蚁 # 兰顿蚂蚁
问题描述 问题描述
![](https://img-blog.csdnimg.cn/20200526100857208.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xsX3dhbmc=,size_16,color_FFFFFF,t_70) ![](https://img-blog.csdnimg.cn/20200526100857208.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xsX3dhbmc=,size_16,color_FFFFFF,t_70)
兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种。 兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种。
平面上的正方形格子被填上黑色或白色。在其中一格正方形内有一只“蚂蚁”。 平面上的正方形格子被填上黑色或白色。在其中一格正方形内有一只“蚂蚁”。
蚂蚁的头部朝向为:上下左右其中一方。 蚂蚁的头部朝向为:上下左右其中一方。
蚂蚁的移动规则十分简单: 蚂蚁的移动规则十分简单:
若蚂蚁在黑格,右转90度,将该格改为白格,并向前移一格; 若蚂蚁在黑格,右转90度,将该格改为白格,并向前移一格;
若蚂蚁在白格,左转90度,将该格改为黑格,并向前移一格。 若蚂蚁在白格,左转90度,将该格改为黑格,并向前移一格。
规则虽然简单,蚂蚁的行为却十分复杂。刚刚开始时留下的路线都会有接近对称,像是会重复,但不论起始状态如何,蚂蚁经过漫长的混乱活动后,会开辟出一条规则的“高速公路”。 规则虽然简单,蚂蚁的行为却十分复杂。刚刚开始时留下的路线都会有接近对称,像是会重复,但不论起始状态如何,蚂蚁经过漫长的混乱活动后,会开辟出一条规则的“高速公路”。
蚂蚁的路线是很难事先预测的。 蚂蚁的路线是很难事先预测的。
你的任务是根据初始状态,用计算机模拟兰顿蚂蚁在第n步行走后所处的位置。 你的任务是根据初始状态,用计算机模拟兰顿蚂蚁在第n步行走后所处的位置。
**输入格式** **输入格式**
输入数据的第一行是 m n 两个整数(3 < m, n < 100),表示正方形格子的行数和列数。 输入数据的第一行是 m n 两个整数(3 < m, n < 100),表示正方形格子的行数和列数。
接下来是 m 行数据。 接下来是 m 行数据。
每行数据为 n 个被空格分开的数字。0 表示白格,1 表示黑格。 每行数据为 n 个被空格分开的数字。0 表示白格,1 表示黑格。
接下来是一行数据:x y s k, 其中x y为整数,表示蚂蚁所在行号和列号(行号从上到下增长,列号从左到右增长,都是从0开始编号)。s 是一个大写字母,表示蚂蚁头的朝向,我们约定:上下左右分别用:UDLR表示。k 表示蚂蚁走的步数。 接下来是一行数据:x y s k, 其中x y为整数,表示蚂蚁所在行号和列号(行号从上到下增长,列号从左到右增长,都是从0开始编号)。s 是一个大写字母,表示蚂蚁头的朝向,我们约定:上下左右分别用:UDLR表示。k 表示蚂蚁走的步数。
**输出格式** **输出格式**
......
# 螺旋折线 # 螺旋折线
如图所示的螺旋折线经过平面上所有整点恰好一次。 如图所示的螺旋折线经过平面上所有整点恰好一次。
对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度。 对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度。
例如`dis(0, 1)=3, dis(-2, -1)=9` 例如`dis(0, 1)=3, dis(-2, -1)=9`
......
...@@ -3,12 +3,17 @@ ...@@ -3,12 +3,17 @@
本题目要求你在控制台输出一个由数字组成的等腰三角形。具体的步骤是: 本题目要求你在控制台输出一个由数字组成的等腰三角形。具体的步骤是:
先用1,2,3,…的自然数拼一个足够长的串 先用1,2,3,…的自然数拼一个足够长的串
用这个串填充三角形的三条边。从上方顶点开始,逆时针填充。 用这个串填充三角形的三条边。从上方顶点开始,逆时针填充。
比如,当三角形高度是8时: 比如,当三角形高度是8时:
![](https://img-blog.csdnimg.cn/20190203174943179.png) ![](https://img-blog.csdnimg.cn/20190203174943179.png)
输入,一个正整数n(3<n<300),表示三角形的高度 输入,一个正整数n(3<n<300),表示三角形的高度
输出,用数字填充的等腰三角形。 输出,用数字填充的等腰三角形。
为了便于测评,我们要求空格一律用"."代替。 为了便于测评,我们要求空格一律用"."代替。
**例如:** **例如:**
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。 X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。
每块金属原料的外形、尺寸完全一致,但重量不同。 每块金属原料的外形、尺寸完全一致,但重量不同。
金属材料被严格地堆放成金字塔形。 金属材料被严格地堆放成金字塔形。
...@@ -41,10 +42,13 @@ X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ...@@ -41,10 +42,13 @@ X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X
``` ```
其中的数字代表金属块的重量(计量单位较大)。 其中的数字代表金属块的重量(计量单位较大)。
最下一层的X代表30台极高精度的电子秤。 最下一层的X代表30台极高精度的电子秤。
假设每块原料的重量都十分精确地平均落在下方的两个金属块上, 假设每块原料的重量都十分精确地平均落在下方的两个金属块上,
最后,所有的金属块的重量都严格精确地平分落在最底层的电子秤上。 最后,所有的金属块的重量都严格精确地平分落在最底层的电子秤上。
电子秤的计量单位很小,所以显示的数字很大。 电子秤的计量单位很小,所以显示的数字很大。
工作人员发现,其中读数最小的电子秤的示数为:```2086458231``` 工作人员发现,其中读数最小的电子秤的示数为:```2086458231```
...@@ -53,6 +57,7 @@ X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ...@@ -53,6 +57,7 @@ X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X
以下的代码可以计算出点子称的示数,请你补全它: 以下的代码可以计算出点子称的示数,请你补全它:
```cpp ```cpp
#include <bits/stdc++.h> #include <bits/stdc++.h>
using namespace std; using namespace std;
......
# 分巧克力 # 分巧克力
儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。 儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。
小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。 小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。
为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足: 为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足:
1. 形状是正方形,边长是整数 1. 形状是正方形,边长是整数
2. 大小相同 2. 大小相同
例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x3的巧克力。 例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x3的巧克力。
当然小朋友们都希望得到的巧克力尽可能大,你能帮小Hi计算出最大的边长是多少么? 当然小朋友们都希望得到的巧克力尽可能大,你能帮小Hi计算出最大的边长是多少么?
**输入** **输入**
第一行包含两个整数N和K。(1 <= N, K <= 100000) 第一行包含两个整数N和K。(1 <= N, K <= 100000)
以下N行每行包含两个整数Hi和Wi。(1 <= Hi, Wi <= 100000) 以下N行每行包含两个整数Hi和Wi。(1 <= Hi, Wi <= 100000)
输入保证每位小朋友至少能获得一块1x1的巧克力。 输入保证每位小朋友至少能获得一块1x1的巧克力。
**输出** **输出**
......
# 颠倒的价牌 # 颠倒的价牌
小李的店里专卖其它店中下架的样品电视机,可称为:样品电视专卖店。 小李的店里专卖其它店中下架的样品电视机,可称为:样品电视专卖店。
其标价都是4位数字(即千元不等)。 其标价都是4位数字(即千元不等)。
小李为了标价清晰、方便,使用了预制的类似数码管的标价签,只要用颜色笔涂数字就可以了(参见图片)。 小李为了标价清晰、方便,使用了预制的类似数码管的标价签,只要用颜色笔涂数字就可以了(参见图片)。
![](https://img-blog.csdnimg.cn/20200315215554485.png) ![](https://img-blog.csdnimg.cn/20200315215554485.png)
这种价牌有个特点,对一些数字,倒过来看也是合理的数字。如:1 2 5 6 8 9 0 都可以。这样一来,如果牌子挂倒了,有可能完全变成了另一个价格,比如:1958 倒着挂就是:8561,差了几千元啊!! 这种价牌有个特点,对一些数字,倒过来看也是合理的数字。如:1 2 5 6 8 9 0 都可以。这样一来,如果牌子挂倒了,有可能完全变成了另一个价格,比如:1958 倒着挂就是:8561,差了几千元啊!!
当然,多数情况不能倒读,比如,1110 就不能倒过来,因为0不能作为开始数字。 当然,多数情况不能倒读,比如,1110 就不能倒过来,因为0不能作为开始数字。
有一天,悲剧终于发生了。某个店员不小心把店里的某两个价格牌给挂倒了。并且这两个价格牌的电视机都卖出去了! 有一天,悲剧终于发生了。某个店员不小心把店里的某两个价格牌给挂倒了。并且这两个价格牌的电视机都卖出去了!
庆幸的是价格出入不大,其中一个价牌赔了2百多,另一个价牌却赚了8百多,综合起来,反而多赚了558元。 庆幸的是价格出入不大,其中一个价牌赔了2百多,另一个价牌却赚了8百多,综合起来,反而多赚了558元。
请根据这些信息计算:赔钱的那个价牌正确的价格应该是多少? 请根据这些信息计算:赔钱的那个价牌正确的价格应该是多少?
......
...@@ -3,7 +3,9 @@ ...@@ -3,7 +3,9 @@
**题目描述** **题目描述**
方程: a^2 + b^2 + c^2 = 1000 方程: a^2 + b^2 + c^2 = 1000
这个方程有正整数解吗?有:a,b,c=6,8,30 就是一组解。 这个方程有正整数解吗?有:a,b,c=6,8,30 就是一组解。
求出 a^2 + b^2 + c^2 = n(1<=n<=10000)的所有解解要保证c>=b>=a>=1。 求出 a^2 + b^2 + c^2 = n(1<=n<=10000)的所有解解要保证c>=b>=a>=1。
**输入** **输入**
...@@ -13,7 +15,9 @@ ...@@ -13,7 +15,9 @@
**输出** **输出**
如果无解则输出"No Solution"。 如果无解则输出"No Solution"。
如果存在多解,每组解输出1行,输出格式:a b c,以一个空格分隔 如果存在多解,每组解输出1行,输出格式:a b c,以一个空格分隔
按照a从小到大的顺序输出,如果a相同则按照b从小到大的顺序输出,如果a,b都相同则按照c从小到大的顺序输出。 按照a从小到大的顺序输出,如果a相同则按照b从小到大的顺序输出,如果a,b都相同则按照c从小到大的顺序输出。
**样例输入** **样例输入**
......
...@@ -3,7 +3,9 @@ ...@@ -3,7 +3,9 @@
**题目描述** **题目描述**
小蓝要用七段码数码管来表示一种特殊的文字。 小蓝要用七段码数码管来表示一种特殊的文字。
![七段码](https://img-blog.csdnimg.cn/2020110916441977.png#pic_left) ![七段码](https://img-blog.csdnimg.cn/2020110916441977.png#pic_left)
上图给出了七段码数码管的一个图示,数码管中一共有 7 段可以发光的二极管,分别标记为 a, b, c, d, e, f, g。 上图给出了七段码数码管的一个图示,数码管中一共有 7 段可以发光的二极管,分别标记为 a, b, c, d, e, f, g。
小蓝要选择一部分二极管(至少要有一个)发光来表达字符。在设计字符的表达时,要求所有发光的二极管是连成一片的。 小蓝要选择一部分二极管(至少要有一个)发光来表达字符。在设计字符的表达时,要求所有发光的二极管是连成一片的。
......
...@@ -3,14 +3,19 @@ ...@@ -3,14 +3,19 @@
**问题描述** **问题描述**
有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏: 有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:
每个小朋友都把自己的糖果分一半给左手边的孩子。 每个小朋友都把自己的糖果分一半给左手边的孩子。
一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。 一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。
反复进行这个游戏,直到所有小朋友的糖果数都相同为止。 反复进行这个游戏,直到所有小朋友的糖果数都相同为止。
你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。 你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。
**输入格式** **输入格式**
程序首先读入一个整数N(2<N<100),表示小朋友的人数。 程序首先读入一个整数N(2<N<100),表示小朋友的人数。
接着是一行用空格分开的N个偶数(每个偶数不大于1000,不小于2) 接着是一行用空格分开的N个偶数(每个偶数不大于1000,不小于2)
**输出格式** **输出格式**
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
足球比赛具有一定程度的偶然性,弱队也有战胜强队的可能。 足球比赛具有一定程度的偶然性,弱队也有战胜强队的可能。
假设有甲、乙、丙、丁四个球队。根据他们过去比赛的成绩,得出每个队与另一个队对阵时取胜的概率表: 假设有甲、乙、丙、丁四个球队。根据他们过去比赛的成绩,得出每个队与另一个队对阵时取胜的概率表:
``` ```
甲 乙 丙 丁 甲 乙 丙 丁
甲 - 0.1 0.3 0.5 甲 - 0.1 0.3 0.5
...@@ -10,6 +11,7 @@ ...@@ -10,6 +11,7 @@
丙 0.7 0.3 - 0.2 丙 0.7 0.3 - 0.2
丁 0.5 0.6 0.8 - 丁 0.5 0.6 0.8 -
``` ```
数据含义:甲对乙的取胜概率为0.1,丙对乙的胜率为0.3,... 数据含义:甲对乙的取胜概率为0.1,丙对乙的胜率为0.3,...
现在要举行一次锦标赛。双方抽签,分两个组比,获胜的两个队再争夺冠军。 现在要举行一次锦标赛。双方抽签,分两个组比,获胜的两个队再争夺冠军。
......
...@@ -4,18 +4,26 @@ ...@@ -4,18 +4,26 @@
**问题描述** **问题描述**
小明正在做一个网络实验。 小明正在做一个网络实验。
他设置了 n 台电脑,称为节点,用于收发和存储数据。初始时,所有节点都是独立的,不存在任何连接。 他设置了 n 台电脑,称为节点,用于收发和存储数据。初始时,所有节点都是独立的,不存在任何连接。
小明可以通过网线将两个节点连接起来,连接后两个节点就可以互相通信了。两个节点如果存在网线连接,称为相邻。 小明可以通过网线将两个节点连接起来,连接后两个节点就可以互相通信了。两个节点如果存在网线连接,称为相邻。
小明有时会测试当时的网络,他会在某个节点发送一条信息,信息会发送到每个相邻的节点,之后这些节点又会转发到自己相邻的节点,直到所有直接或间接相邻的节点都收到了信息。所有发送和接收的节点都会将信息存储下来。 小明有时会测试当时的网络,他会在某个节点发送一条信息,信息会发送到每个相邻的节点,之后这些节点又会转发到自己相邻的节点,直到所有直接或间接相邻的节点都收到了信息。所有发送和接收的节点都会将信息存储下来。
一条信息只存储一次。 一条信息只存储一次。
给出小明连接和测试的过程,请计算出每个节点存储信息的大小。 给出小明连接和测试的过程,请计算出每个节点存储信息的大小。
**输入格式** **输入格式**
输入的第一行包含两个整数 n, m,分别表示节点数量和操作数量。节点从1 至 n 编号。 输入的第一行包含两个整数 n, m,分别表示节点数量和操作数量。节点从1 至 n 编号。
接下来 m 行,每行三个整数,表示一个操作。 接下来 m 行,每行三个整数,表示一个操作。
如果操作为 1 a b,表示将节点 a 和节点 b 通过网线连接起来。当 a = b时,表示连接了一个自环,对网络没有实质影响。 如果操作为 1 a b,表示将节点 a 和节点 b 通过网线连接起来。当 a = b时,表示连接了一个自环,对网络没有实质影响。
如果操作为 2 p t,表示在节点 p 上发送一条大小为 t 的信息。 如果操作为 2 p t,表示在节点 p 上发送一条大小为 t 的信息。
......
...@@ -3,8 +3,11 @@ ...@@ -3,8 +3,11 @@
**问题描述** **问题描述**
观察这个数列: 观察这个数列:
1 3 0 2 -1 1 -2 ... 1 3 0 2 -1 1 -2 ...
这个数列中后一项总是比前一项增加2或者减少3。 这个数列中后一项总是比前一项增加2或者减少3。
栋栋对这种数列很好奇,他想知道长度为n 和为s而且后一项总是比前一项增加a或者减少b的整数数列可能有多少种呢? 栋栋对这种数列很好奇,他想知道长度为n 和为s而且后一项总是比前一项增加a或者减少b的整数数列可能有多少种呢?
**输入格式** **输入格式**
......
...@@ -4,12 +4,17 @@ ...@@ -4,12 +4,17 @@
**问题描述** **问题描述**
小蓝最近学习了一些排序算法,其中冒泡排序让他印象深刻。 小蓝最近学习了一些排序算法,其中冒泡排序让他印象深刻。
在冒泡排序中,每次只能交换相邻的两个元素。小蓝发现,如果对一个字符串中的字符排序,只允许交换相邻的两个字符,则在所有可能的排序方案中,冒泡排序的总交换次数是最少的。
在冒泡排序中,每次只能交换相邻的两个元素。小蓝发现,如果对一个字符串中的字符排序,只允许交换相邻的两个字符,则在所有可能的排序方案中,冒泡排序的总交换次数是最少的。
例如,对于字符串 lan 排序,只需要 1 次交换。对于字符串 qiao 排序,总共需要 4 次交换。 例如,对于字符串 lan 排序,只需要 1 次交换。对于字符串 qiao 排序,总共需要 4 次交换。
小蓝找到了很多字符串试图排序,他恰巧碰到一个字符串,需要 V 次交换,可是他忘了把这个字符串记下来,现在找不到了。 小蓝找到了很多字符串试图排序,他恰巧碰到一个字符串,需要 V 次交换,可是他忘了把这个字符串记下来,现在找不到了。
请帮助小蓝找一个只包含小写英文字母且没有字母重复出现的字符串,对该串的字符排序,正好需要 V 次交换。如果可能找到多个,请告诉小蓝最短的那个。如果最短的仍然有多个,请告诉小蓝字典序最小的那个。请注意字符串中可以包含相同的字符。 请帮助小蓝找一个只包含小写英文字母且没有字母重复出现的字符串,对该串的字符排序,正好需要 V 次交换。如果可能找到多个,请告诉小蓝最短的那个。如果最短的仍然有多个,请告诉小蓝字典序最小的那个。请注意字符串中可以包含相同的字符。
**输入格式** **输入格式**
输入的第一行包含一个整数V,小蓝的幸运数字。 输入的第一行包含一个整数V,小蓝的幸运数字。
......
# 方格分割 # 方格分割
6x6的方格,沿着格子的边线剪开成两部分。 6x6的方格,沿着格子的边线剪开成两部分。
要求这两部分的形状完全相同。 要求这两部分的形状完全相同。
如图: 如图:
![](https://img-blog.csdn.net/20180321145603391) ![](https://img-blog.csdn.net/20180321145603391)
![](https://img-blog.csdn.net/20180321145607269) ![](https://img-blog.csdn.net/20180321145607269)
![](https://img-blog.csdn.net/20180321145611157) ![](https://img-blog.csdn.net/20180321145611157)
就是可行的分割法。 就是可行的分割法。
试计算: 试计算:
包括这3种分法在内,一共有多少种不同的分割方法。 包括这3种分法在内,一共有多少种不同的分割方法。
注意:旋转对称的属于同一种分割法。 注意:旋转对称的属于同一种分割法。
## aop ## aop
......
...@@ -5,10 +5,13 @@ ...@@ -5,10 +5,13 @@
A + —- + ——–- = 10 A + —- + ——–- = 10
   C    GHI    C    GHI
``` ```
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。 这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
比如: 比如:
6+8/3+952/714 就是一种解法, 6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。 5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法? 这个算式一共有多少种解法?
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
``` ```
masks = [9090400, 8499400, 5926800, 8547000, 4958200, 4422600, 5751200, 4175600, 6309600, 5865200, 6604400, 4635000, 10663400, 8087200, 4554000] masks = [9090400, 8499400, 5926800, 8547000, 4958200, 4422600, 5751200, 4175600, 6309600, 5865200, 6604400, 4635000, 10663400, 8087200, 4554000]
``` ```
由于物流限制,每一批口罩只能全部分配给其中一家医院。 由于物流限制,每一批口罩只能全部分配给其中一家医院。
市长希望2所医院获得的口罩总数之差越小越好。 市长希望2所医院获得的口罩总数之差越小越好。
......
# 搭积木 # 搭积木
小明最近喜欢搭数字积木, 小明最近喜欢搭数字积木,
一共有10块积木,每个积木上有一个数字,0~9。 一共有10块积木,每个积木上有一个数字,0~9。
搭积木规则: 搭积木规则:
每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小。 每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小。
最后搭成4层的金字塔形,必须用完所有的积木。 最后搭成4层的金字塔形,必须用完所有的积木。
下面是两种合格的搭法: 下面是两种合格的搭法:
``` ```
0 0
1 2 1 2
...@@ -19,6 +23,7 @@ ...@@ -19,6 +23,7 @@
7 5 2 7 5 2
9 8 6 4 9 8 6 4
``` ```
请你计算这样的搭法一共有多少种? 请你计算这样的搭法一共有多少种?
......
# 超级胶水 # 超级胶水
小明有n颗石子,按顺序摆成一排。他准备用胶水将这些石子粘在一起。每颗石子有自己的重量,如果将两颗石子粘在一起,将合并成一颗新的石子,重量是这两颗石子的重量之和。 小明有n颗石子,按顺序摆成一排。他准备用胶水将这些石子粘在一起。每颗石子有自己的重量,如果将两颗石子粘在一起,将合并成一颗新的石子,重量是这两颗石子的重量之和。
为了保证石子粘贴牢固,粘贴两颗石子所需要的胶水与两颗石子的重量乘积成正比,本题不考虑物理单位,认为所需要的胶水在数值上等于两颗石子重量的乘积。 为了保证石子粘贴牢固,粘贴两颗石子所需要的胶水与两颗石子的重量乘积成正比,本题不考虑物理单位,认为所需要的胶水在数值上等于两颗石子重量的乘积。
每次合并,小明只能合并位置相邻的两颗石子,并将合并出的新石子放在原来的位置。 每次合并,小明只能合并位置相邻的两颗石子,并将合并出的新石子放在原来的位置。
现在,小明想用最少的胶水将所有石子粘在一起,请帮助小明计算最少需要多少胶水。 现在,小明想用最少的胶水将所有石子粘在一起,请帮助小明计算最少需要多少胶水。
测试样例 测试样例
输入 输入
``` ```
3 3
3 4 5 3 4 5
``` ```
输出 输出
``` ```
47 47
``` ```
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
请你利用计算机的优势,帮助小明寻找答案。 请你利用计算机的优势,帮助小明寻找答案。
以下哪一项不能得到正确答案 以下<span style="color:red">错误</span>的一项是
## aop ## aop
......
# 李白打酒 # 李白打酒
话说大诗人李白,一生好饮。幸好他从不开车。 话说大诗人李白,一生好饮。幸好他从不开车。
一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱: 一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:
无事街上走,提壶去打酒。 无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。 逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。 这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。
请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的序。像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。 请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的序。像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。
以下<span style="color:red">错误</span>的一项是? 以下<span style="color:red">错误</span>的一项是?
......
...@@ -3,13 +3,16 @@ ...@@ -3,13 +3,16 @@
**问题描述** **问题描述**
下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可 以通行的地方。 下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可 以通行的地方。
``` ```
010000 010000
000100 000100
001001 001001
110000 110000
``` ```
迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这 个它的上、下、左、右四个方向之一。 对于上面的迷宫,从入口开始,可以按DRRURRDDDR 的顺序通过迷宫, 一共 10 步。其中 D、U、L、R 分别表示向下、向上、向左、向右走。 对于下面这个更复杂的迷宫(30 行 50 列),请找出一种通过迷宫的方式, 其使用的步数最少,在步数最少的前提下,请找出字典序最小的一个作为答案。 请注意在字典序中D<L<R<U。(如果你把以下文字复制到文本文件中,请务 必检查复制的内容是否与文档中的一致。在试题目录下有一个文件 maze.txt, 内容与下面的文本相同)
迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这 个它的上、下、左、右四个方向之一。 对于上面的迷宫,从入口开始,可以按DRRURRDDDR 的顺序通过迷宫, 一共 10 步。其中 D、U、L、R 分别表示向下、向上、向左、向右走。 对于下面这个更复杂的迷宫(30 行 50 列),请找出一种通过迷宫的方式, 其使用的步数最少,在步数最少的前提下,请找出字典序最小的一个作为答案。 请注意在字典序中D<L<R<U。
**题目数据** **题目数据**
......
# 测试次数 # 测试次数
x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。 x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。
各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。 各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。
x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。塔的每一层高度都是一样的,与地球上稍有不同的是,他们的第一层不是地面,而是相当于我们的2楼。 x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。塔的每一层高度都是一样的,与地球上稍有不同的是,他们的第一层不是地面,而是相当于我们的2楼。
如果手机从第7层扔下去没摔坏,但第8层摔坏了,则手机耐摔指数=7。 如果手机从第7层扔下去没摔坏,但第8层摔坏了,则手机耐摔指数=7。
特别地,如果手机从第1层扔下去就坏了,则耐摔指数=0。 特别地,如果手机从第1层扔下去就坏了,则耐摔指数=0。
如果到了塔的最高层第n层扔没摔坏,则耐摔指数=n 如果到了塔的最高层第n层扔没摔坏,则耐摔指数=n
为了减少测试次数,从每个厂家抽样3部手机参加测试。 为了减少测试次数,从每个厂家抽样3部手机参加测试。
......
# 地宫取宝 # 地宫取宝
X 国王有一个地宫宝库,是 n×m 个格子的矩阵,每个格子放一件宝贝,每个宝贝贴着价值标签。 X 国王有一个地宫宝库,是 n×m 个格子的矩阵,每个格子放一件宝贝,每个宝贝贴着价值标签。
地宫的入口在左上角,出口在右下角。 地宫的入口在左上角,出口在右下角。
小明被带到地宫的入口,国王要求他只能向右或向下行走。 小明被带到地宫的入口,国王要求他只能向右或向下行走。
走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。 走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。
当小明走到出口时,如果他手中的宝贝恰好是 k 件,则这些宝贝就可以送给小明。 当小明走到出口时,如果他手中的宝贝恰好是 k 件,则这些宝贝就可以送给小明。
请你帮小明算一算,在给定的局面下,他有多少种不同的行动方案能获得这 k 件宝贝。 请你帮小明算一算,在给定的局面下,他有多少种不同的行动方案能获得这 k 件宝贝。
**输入格式** **输入格式**
第一行 3 个整数,n,m,k,含义见题目描述。 第一行 3 个整数,n,m,k,含义见题目描述。
接下来 n 行,每行有 m 个整数 Ci 用来描述宝库矩阵每个格子的宝贝价值。 接下来 n 行,每行有 m 个整数 Ci 用来描述宝库矩阵每个格子的宝贝价值。
**输出格式** **输出格式**
输出一个整数,表示正好取 k 个宝贝的行动方案数。 输出一个整数,表示正好取 k 个宝贝的行动方案数。
该数字可能很大,输出它对 1000000007 取模的结果。 该数字可能很大,输出它对 1000000007 取模的结果。
**数据范围** **数据范围**
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
已知猎人身上一共有 6 件装备,每件装备可能有若干个装饰孔,每个装饰孔有各自的等级,可以镶嵌一颗小于等于自身等级的装饰珠 (也可以选择不镶嵌)。 已知猎人身上一共有 6 件装备,每件装备可能有若干个装饰孔,每个装饰孔有各自的等级,可以镶嵌一颗小于等于自身等级的装饰珠 (也可以选择不镶嵌)。
装饰珠有 M 种,编号 1 至 M,分别对应 M 种技能,第 i 种装饰珠的等级为 $L_i$,只能镶嵌在等级大于等于 $L_i$ 的装饰孔中。 装饰珠有 M 种,编号 1 至 M,分别对应 M 种技能,第 i 种装饰珠的等级为 $L_i$,只能镶嵌在等级大于等于 $L_i$ 的装饰孔中。
对第 i 种技能来说,当装备相应技能的装饰珠数量达到 $K_i$个时,会产生$W_i$($K_i$)的价值,镶嵌同类技能的数量越多,产生的价值越大,即$W_i$($K_{i-1}$)<$W_i$($K_i$)。但每个技能都有上限$P_i$(1≤$P_i$≤7),当装备的珠子数量超过$P_i$时,只会产生$W_i$($P_i$)的价值。 对第 i 种技能来说,当装备相应技能的装饰珠数量达到 $K_i$个时,会产生$W_i$($K_i$)的价值,镶嵌同类技能的数量越多,产生的价值越大,即$W_i$($K_{i-1}$)<$W_i$($K_i$)。但每个技能都有上限$P_i$(1≤$P_i$≤7),当装备的珠子数量超过$P_i$时,只会产生$W_i$($P_i$)的价值。
对于给定的装备和装饰珠数据,求解如何镶嵌装饰珠,使得 6 件装备能得到的总价值达到最大。 对于给定的装备和装饰珠数据,求解如何镶嵌装饰珠,使得 6 件装备能得到的总价值达到最大。
...@@ -14,8 +15,11 @@ ...@@ -14,8 +15,11 @@
**输入描述** **输入描述**
输入的第 1 至 6 行,包含 6 件装备的描述。其中第i行的第一个整数Ni表示第i件装备的装饰孔数量。后面紧接着Ni个整数,分别表示该装备上每个装饰孔的等级L(1≤ L ≤4)。 输入的第 1 至 6 行,包含 6 件装备的描述。其中第i行的第一个整数Ni表示第i件装备的装饰孔数量。后面紧接着Ni个整数,分别表示该装备上每个装饰孔的等级L(1≤ L ≤4)。
第 7 行包含一个正整数 M,表示装饰珠 (技能) 种类数量。 第 7 行包含一个正整数 M,表示装饰珠 (技能) 种类数量。
第 8 至 M + 7 行,每行描述一种装饰珠 (技能) 的情况。每行的前两个整数$L_j$(1≤ $L_j$ ≤4)和$P_j$(1≤ $P_j$ ≤7)分别表示第 j 种装饰珠的等级和上限。接下来$P_j$个整数,其中第 k 个数表示装备该中装饰珠数量为 k 时的价值$W_j$(k)。 第 8 至 M + 7 行,每行描述一种装饰珠 (技能) 的情况。每行的前两个整数$L_j$(1≤ $L_j$ ≤4)和$P_j$(1≤ $P_j$ ≤7)分别表示第 j 种装饰珠的等级和上限。接下来$P_j$个整数,其中第 k 个数表示装备该中装饰珠数量为 k 时的价值$W_j$(k)。
其中$1 ≤ N_i ≤ 50,1 ≤ M ≤ 10^4,1 ≤ W_j(k) ≤ 10^4。$ 其中$1 ≤ N_i ≤ 50,1 ≤ M ≤ 10^4,1 ≤ W_j(k) ≤ 10^4。$
**输出描述** **输出描述**
......
...@@ -7,12 +7,15 @@ ...@@ -7,12 +7,15 @@
**输入格式** **输入格式**
从标准输入读入数据。 从标准输入读入数据。
第一行包括 2 个正整数 n, K。 第一行包括 2 个正整数 n, K。
第二行 n 个正整数,代表给定的 n 个数。 第二行 n 个正整数,代表给定的 n 个数。
**输出格式** **输出格式**
输出到标准输出。 输出到标准输出。
输出一行一个整数代表所求的和。 输出一行一个整数代表所求的和。
**样例输入** **样例输入**
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
**输入格式** **输入格式**
第一行两个数 t, k,其中 t 代表该测试点包含 t 组询问,k 的意思与上文中相同。 第一行两个数 t, k,其中 t 代表该测试点包含 t 组询问,k 的意思与上文中相同。
接下来 t 行每行两个整数 n, m,表示一组询问。 接下来 t 行每行两个整数 n, m,表示一组询问。
**输出格式** **输出格式**
......
# 糖果 # 糖果
糖果店的老板一共有M种口味的糖果出售。为了方便描述,我们将M种口味编号1~M。 糖果店的老板一共有M种口味的糖果出售。为了方便描述,我们将M种口味编号1~M。
小明希望能品尝到所有口味的糖果。遗憾的是老板并不单独出售糖果,而是K颗一包整包出售。 小明希望能品尝到所有口味的糖果。遗憾的是老板并不单独出售糖果,而是K颗一包整包出售。
幸好糖果包装上注明了其中K颗糖果的口味,所以小明可以在买之前就知道每包内的糖果口味。 幸好糖果包装上注明了其中K颗糖果的口味,所以小明可以在买之前就知道每包内的糖果口味。
给定包糖果,请你计算小明最少买几包,就可以品尝到所有口味的糖果。 给定包糖果,请你计算小明最少买几包,就可以品尝到所有口味的糖果。
**输入** **输入**
第一行包含三个整数N、M 和K。 第一行包含三个整数N、M 和K。
接下来N 行每行K 这整数$T_1,T_2,…,T_K$,代表一包糖果的口味。 接下来N 行每行K 这整数$T_1,T_2,…,T_K$,代表一包糖果的口味。
1<=N<=100,1<=M<=20,1<=K<=20,1<=$T_i$<=M。 1<=N<=100,1<=M<=20,1<=K<=20,1<=$T_i$<=M。
**输出** **输出**
......
# 垒骰子 # 垒骰子
赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。 赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。
经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!
我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。 我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。
假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。 假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。
atm想计算一下有多少种不同的可能的垒骰子方式。 atm想计算一下有多少种不同的可能的垒骰子方式。
两种垒骰子方式相同,当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同。 两种垒骰子方式相同,当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同。
由于方案数可能过多,请输出模 $10^9 + 7$ 的结果。 由于方案数可能过多,请输出模 $10^9 + 7$ 的结果。
不要小看了 atm 的骰子数量哦~ 不要小看了 atm 的骰子数量哦~
...@@ -14,7 +20,9 @@ atm想计算一下有多少种不同的可能的垒骰子方式。 ...@@ -14,7 +20,9 @@ atm想计算一下有多少种不同的可能的垒骰子方式。
**输入格式** **输入格式**
第一行两个整数 n m 第一行两个整数 n m
n表示骰子数目 n表示骰子数目
接下来 m 行,每行两个整数 a b ,表示 a 和 b 数字不能紧贴在一起。 接下来 m 行,每行两个整数 a b ,表示 a 和 b 数字不能紧贴在一起。
...@@ -30,7 +38,7 @@ n表示骰子数目 ...@@ -30,7 +38,7 @@ n表示骰子数目
1 2 1 2
``` ```
**样例输出 ** **样例输出**
``` ```
544 544
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册