蓝桥杯 省赛 Java语言 大学A组 真题Word文档下载推荐.docx
《蓝桥杯 省赛 Java语言 大学A组 真题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《蓝桥杯 省赛 Java语言 大学A组 真题Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
九数分三组
1~9的数字可以组成3个3位数,设为:
A,B,C,现在要求满足如下关系:
B=2*A
C=3*A
请你写出A的所有可能答案,数字间用空格分开,数字按升序排列。
注意:
只提交A的值,严格按照格式要求输出。
4.代码填空(满分11分)
循环节长度
两个整数做除法,有时会产生循环小数,其循环部分称为:
循环节。
比如,11/13=6=>
0.846153846153.....其循环节为[846153]共有6位。
下面的方法,可以求出循环节的长度。
请仔细阅读代码,并填写划线部分缺少的代码。
publicstaticintf(intn,intm)
{
n=n%m;
Vectorv=newVector();
for(;
;
)
{
v.add(n);
n*=10;
n=n%m;
if(n==0)return0;
if(v.indexOf(n)>
=0)_________________________________;
//填空
}
}
注意,只能填写缺少的部分,不要重复抄写已有代码。
不要填写任何多余的文字。
5.代码填空(满分13分)
打印菱形
给出菱形的边长,在控制台上打印出一个菱形来。
为了便于比对空格,我们把空格用句点代替。
当边长为8时,菱形为:
.......*
......*.*
.....*...*
....*.....*
...*.......*
..*.........*
.*...........*
*.............*
下面的程序实现了这个功能,但想法有点奇怪。
请仔细分析代码,并填写划线部分缺失的代码。
publicclassA
{
publicstaticvoidf(intn)
Strings="
*"
for(inti=0;
i<
2*n-3;
i++)s+="
."
s+="
Strings1=s+"
\n"
Strings2="
"
n-1;
i++){
//System.out.println("
=>
+s);
s="
+_____________________________________+"
s1=s+"
+s1;
s2+=s+"
System.out.println(s1+s2);
publicstaticvoidmain(String[]args)
f(8);
}
6.结果填空(满分17分)
加法变乘法
我们都知道:
1+2+3+...+49=1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
1+2+3+...+10*11+12+...+27*28+29+...+49=2015
就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
需要你提交的是一个整数,不要填写任何多余的内容。
7.结果填空(满分21分)
牌型种数
小明被劫持到X赌城,被迫与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?
请填写该整数,不要填写任何多余的内容或说明文字。
8.程序设计(满分15分)
移动距离
X星球居民小区的楼房全是一样的,并且按矩阵样式排列。
其楼房的编号为1,2,3...
当排满一行时,从下一行相邻的楼往反方向排号。
当小区排号宽度为6时,开始情形如下:
123456
121110987
131415.....
我们的问题是:
已知了两个楼号m和n,需要求出它们之间的最短移动距离(不能斜线方向移动)
输入为3个整数wmn,空格分开,都在1到10000范围内
w为排号宽度,m,n为待计算的楼号。
要求输出一个整数,表示mn两楼间最短移动距离。
例如:
用户输入:
682
则,程序应该输出:
4
再例如:
4720
5
资源约定:
峰值内存消耗(含虚拟机)<
256M
CPU消耗<
1000ms
请严格按要求输出,不要画蛇添足地打印类似:
“请您输入...”的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
不要使用package语句。
不要使用jdk1.7及以上版本的特性。
主类的名字必须是:
Main,否则按无效代码处理。
9.程序设计(满分25分)
垒骰子
赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。
经过长期观察,atm发现了稳定骰子的奥秘:
有些数字的面贴着会互相排斥!
我们先来规范一下骰子:
1的对面是4,2的对面是5,3的对面是6。
假设有m组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。
atm想计算一下有多少种不同的可能的垒骰子方式。
两种垒骰子方式相同,当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同。
由于方案数可能过多,请输出模10^9+7的结果。
不要小看了atm的骰子数量哦~
「输入格式」
第一行两个整数nm
n表示骰子数目
接下来m行,每行两个整数ab,表示a和b不能紧贴在一起。
「输出格式」
一行一个数,表示答案模10^9+7的结果。
「样例输入」
21
12
「样例输出」
544
「数据范围」
对于30%的数据:
n<
=5
对于60%的数据:
=100
对于100%的数据:
0<
n<
=10^9,m<
=36
2000ms
10.程序设计(满分31分)
灾后重建
Pear市一共有N(<
=50000)个居民点,居民点之间有M(<
=200000)条双向道路相连。
这些居民点两两之间都可以通过双向道路到达。
这种情况一直持续到最近,一次严重的地震毁坏了全部M条道路。
震后,Pear打算修复其中一些道路,修理第i条道路需要Pi的时间。
不过,Pear并不打算让全部的点连通,而是选择一些标号特殊的点让他们连通。
Pear有Q(<
=50000)次询问,每次询问,他会选择所有编号在[l,r]之间,并且编号modK=C的点,修理一些路使得它们连通。
由于所有道路的修理可以同时开工,所以完成修理的时间取决于花费时间最长的一条路,即涉及到的道路中Pi的最大值。
你能帮助Pear计算出每次询问时需要花费的最少时间么?
这里询问是独立的,也就是上一个询问里的修理计划并没有付诸行动。
【输入格式】
第一行三个正整数N、M、Q,含义如题面所述。
接下来M行,每行三个正整数Xi、Yi、Pi,表示一条连接Xi和Yi的双向道路,修复需要Pi的时间。
可能有自环,可能有重边。
1<
=Pi<
=1000000。
接下来Q行,每行四个正整数Li、Ri、Ki、Ci,表示这次询问的点是[Li,Ri]区间中所有编号ModKi=Ci的点。
保证参与询问的点至少有两个。
【输出格式】
输出Q行,每行一个正整数表示对应询问的答案。
【样例输入】
7104
1310
269
415
374
369
158
274
3210
176
769
1710
1731
2510
3721
【样例输出】
9
6
8
【数据范围】
对于20%的数据,N,M,Q<
=30
对于40%的数据,N,M,Q<
=2000
对于100%的数据,N<
=50000,M<
=2*10^5,Q<
=50000.Pi<
=10^6.Li,Ri,Ki均在[1,N]范围内,Ci在[0,对应询问的Ki)范围内。
5000ms