蓝桥杯预赛决赛题目文档格式.docx
- 文档编号:17094564
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:50
- 大小:38.52KB
蓝桥杯预赛决赛题目文档格式.docx
《蓝桥杯预赛决赛题目文档格式.docx》由会员分享,可在线阅读,更多相关《蓝桥杯预赛决赛题目文档格式.docx(50页珍藏版)》请在冰豆网上搜索。
i++){
ErrorMax=100000;
//初始化错误数为一个很大的数。
a=scanner.next();
b=scanner.next();
f(0,0,0);
//递归计算
result[i]=ErrorMax;
//保存
}
i++){//输出结果
System.out.println(result[i]);
}
staticvoidf(intx,inty,intnum){
if(x==a.length()&
&
y==b.length()){//如果两个字符串都到头了,就结束。
if(num<
ErrorMax){
ErrorMax=num;
//如果按照本方法到头的错误数比原来的少,就保存现在的这个数。
}
}elseif(x==a.length()||y==b.length()){//如果只有一个串到头了,另一个串继续遍历。
if(x==a.length()){
f(x,y+1,num+1);
}else{
f(x+1,y,num+1);
}else{
if(a.charAt(x)==b.charAt(y)){//如果是相同的,都到下一个。
f(x+1,y+1,num);
if(x>
0&
a.charAt(x)==a.charAt(x-1)){//如果出现了错误,按两种错误形式分别递归下去。
f(x+1,y,num+1);
//假设为重码
f(x+1,y+1,num+1);
//假设为错码
}
if(y>
b.charAt(y)==b.charAt(y-1)){
f(x,y+1,num+1);
if(x==0&
y==0){//如果错误在首位置,则只能发生一种错误
//错码
}
*Excel是最常用的办公软件。
每个单元格都有唯一的地址表示。
比如:
第12行第4列表示为:
“D12”,第5行第255列表示为“IU5”。
事实上,Excel提供了两种地址表示方法,还有一种表示法叫做RC格式地址。
第12行第4列表示为:
“R12C4”,第5行第255列表示为“R5C255”。
你的任务是:
编写程序,实现从RC地址格式到常规地址格式的转换。
【输入、输出格式要求】
用户先输入一个整数n(n<
100),表示接下来有n行输入数据。
接着输入的n行数据是RC格式的Excel单元格地址表示法。
程序则输出n行数据,每行是转换后的常规地址表示法。
例如:
2
R12C4
R5C255
则程序应该输出:
D12
IU5
Scannersc=newScanner(System.in);
intcount=sc.nextInt();
String[]ss=newString[count];
for(inti=0;
count;
i++){
ss[i]=sc.next();
for(Strings:
ss){
action(s);
staticvoidaction(Strings){
String[]str=s.split("
[RC]"
);
for(Stringcs:
str){
//System.out.println(cs);
introw=Integer.valueOf(str[1]);
intcol=Integer.valueOf(str[2]);
s="
"
;
while(col>
0){
if(col%26==0){
s="
Z"
+s;
}else{
s=String.valueOf((char)(col%26+64))+s;
col=col/26;
s+=row;
System.out.println(s);
*有3个容器,容量分别为12升,8升,5升。
其中12升中装满油,另外两个空着。
要求你只用3个容器操作,最后使得某个容器中正好有6升油。
下面的列表是可能的操作状态记录:
12,0,0
4,8,0
4,3,5
9,3,0
9,0,3
1,8,3
1,6,5
每行3个数据,分别表示12,8,6升容器中的油量
第一行表示初始状态,第二行表示把12升倒入8升容器后的状态,第三行是8升倒入5升,...
当然,同一个题目可能有多种不同的正确操作步骤。
本题目的要求是,请你编写程序,由用户输入:
各个容器的容量,开始的状态,和要求的目标油量
,程序则通过计算输出一种实现的步骤(不需要找到所有可能的方法)。
如果没有可能实现,则输出:
“不可能”。
例如,用户输入:
12,8,5,12,0,0,6
用户输入的前三个数是容器容量(由大到小),接下来三个数是三个容器开始时的油量配置,最后
一个数是要求得到的油量(放在哪个容器里得到都可以)
则程序可以输出(答案不唯一,只验证操作可行性):
每一行表示一个操作过程中的油量状态。
staticintb1,b2,b3,m;
b1=scanner.nextInt();
b2=scanner.nextInt();
b3=scanner.nextInt();
intcur1=scanner.nextInt();
intcur2=scanner.nextInt();
intcur3=scanner.nextInt();
m=scanner.nextInt();
//目标酒量
Backtrack(cur1,cur2,cur3);
publicstaticvoidBacktrack(intcur1,intcur2,intcur3){
System.out.println(cur1+"
"
+cur2+"
+cur3);
if(cur1==m||cur2==m||cur3==m){
System.out.print("
findthekey!
return;
if(cur2!
=0&
cur3!
=b3){//瓶子2有酒并且瓶子三不满
if(cur2+cur3<
=b3)
Backtrack(cur1,0,cur2+cur3);
else
Backtrack(cur1,cur2-(b3-cur3),b3);
}elseif(cur3==b3){//瓶子3满的,这时就要把就倒入到瓶子1中
if(cur3+cur1<
=b1){
Backtrack(cur1+cur3,cur2,0);
Backtrack(b1,cur2,cur3-(b1-cur1));
}elseif(cur2==0){//当瓶子2是空的时候从瓶子1倒入酒
if(cur1>
=b2){
Backtrack(cur1-b2,b2,cur3);
Backtrack(0,cur1,cur3);
/**
*今年的植树节(2012年3月12日),小明和他的叔叔还有小伙伴们一起去植树。
*休息的时候,小明的同学问他叔叔多大年纪,他叔叔说:
“我说个题目,看你们谁先猜出来!
”
“把我出生的年月日连起来拼成一个8位数(月、日不足两位前补0)正好可以被今天的年、月、日整除!
他想了想,又补充到:
“再给个提示,我是6月出生的。
根据这些信息,请你帮小明算一下,他叔叔的出生年月日。
格式是年月日连成的8位数。
例如,如果是1948年6月12日,就写:
19480612
newApplication();
Application(){
intage=0;
intdate=20120312;
for(inti=1;
100;
i++){
for(intj=1;
j<
32;
j++){
age=19000600;
age+=i*10000+j;
if(age%2012==0&
age%3==0&
age%12==0){
System.out.println("
出生年月:
+age);
*A、B、C、D、E、F、G、H、I、J共10名学生有可能参加本次计算机竞赛,也可能不参加。
*因为某种原因,他们是否参赛受到下列条件的约束:
1.如果A参加,B也参加;
2.如果C不参加,D也不参加;
3.A和C中只能有一个人参加;
4.B和D中有且仅有一个人参加;
5.D、E、F、G、H中至少有2人参加;
6.C和G或者都参加,或者都不参加;
7.C、E、G、I中至多只能2人参加
8.如果E参加,那么F和G也都参加。
9.如果F参加,G、H就不能参加
10.如果I、J都不参加,H必须参加
请编程根据这些条件判断这10名同学中参赛者名单。
如果有多种可能,则输出所有的可能情况。
每种情况占一行。
参赛同学按字母升序排列,用空格分隔。
CDGJ
就是一种可能的情况。
*/
//TODOAuto-generatedmethodstub
action();
privatestaticvoidaction(){
int[]n=newint[10];
i<
1024;
char[]temp=Integer.toBinaryString(i).toCharArray();
for(intj=0;
j<
10;
if(j<
10-temp.length){
n[j]=0;
}else{
n[j]=temp[j+temp.length-10]-'
0'
if(n[0]==1){
if(n[2]!
=1){
continue;
if(n[2]!
if(n[3]==1){
if(n[0]+n[2]==2){
continue;
if(n[1]+n[3]!
if(n[3]+n[4]+n[5]+n[6]+n[7]<
2){
if(n[2]+n[6]==1){
if(n[2]+n[4]+n[6]+n[8]>
if(n[4]==1){
if(n[5]+n[6]!
=2){
if(n[5]==1){
if(n[6]+n[7]>
if(n[8]+n[9]==0){
if(n[7]!
printn(n);
}//endoffor
publicstaticvoidprintn(int[]n){
for(intk:
n){
+k);
System.out.println();
System.out.println("
可能的答案有:
test();
staticvoidtest(){
intn;
for(n=4;
n<
=20;
n++){
for(inti=1;
i<
=n-4;
i++){//i为第一次倒下的人数
for(intj=1;
=n-i-3;
j++){//i为第二次倒下的人数
for(intk=1;
k<
=n-i-j-2;
k++){//i为第三次倒下的人数
doubletemp=1.0/n+1.0/(n-i)+1.0/(n-i-j)+1.0/(n-i-j-k);
if(temp==1.0){
System.out.println(n+"
\t"
+(n-i)+"
+(n-i-j)+"
+(n-i-j-k));
}
}//endoffor4
}//endoffor3
}//endoffor2
}//endoffor1
/*
*标题:
错误票据
某涉密单位下发了某种票据,并要在年终全部收回。
每张票据有唯一的ID号。
全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。
因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。
你的任务是通过编程,找出断号的ID和重号的ID。
假设断号不可能发生在最大和最小号。
要求程序首先输入一个整数N(N<
100)表示后面数据行数。
接着读入N行数据。
每行数据长度不等,是用空格分开的若干个(不大于100个)正整数(不大于100000)每个整数代表一个ID号。
要求程序输出1行,含两个整数mn,用空格分隔。
其中,m表示断号ID,n表示重号ID
例如:
568119
10129
则程序输出:
79
再例如:
6
164178108109180155141159104
182179118137184115124125129168196172189127
107112192103131133169158128102110148139157
140195197185152135106123173122136174191145
116151143175120161134162190149138142146199
126165156153193144166170121171132101194187
188113130176154177120117150114183186181100
163160167147198111119
105120
资源约定:
峰值内存消耗(含虚拟机)<
64MCPU消耗<
2000ms
publicclassMain{
staticinthash[]=newint[100001];
Scannercin=newScanner(System.in);
intN=cin.nextInt();
intmin=100001,max=-1;
intm=0,n=0;
StringstrLine=cin.nextLine();
//过滤第一次输入n带来的回车换行
while(N--!
=0){
strLine=cin.nextLine();
Scanners=newScanner(strLine);
while(s.hasNextInt()){
intt=s.nextInt();
min=Math.min(t,min);
max=Math.max(t,max);
hash[t]++;
for(inti=min;
=max;
if(hash[i]==0)
m=i;
if(hash[i]==2)
n=i;
System.out.println(m+"
+n);
*在中文Windows环境下,控制台窗口中也可以用特殊符号拼出漂亮的表格来。
┌─┬─┐
│││
├─┼─┤
└─┴─┘
本题目要求编写一个程序,根据用户输入的行、列数画出相应的表格来。
例如用户输入:
32
┌─┬─┐
│││
├─┼─┤
└─┴─┘
//System.out.println("
┌─┬─┬─┐"
System.out.print("
请输入行数n:
intn=sc.nextInt()-1;
请输入列数m:
intm=sc.nextInt()-1;
┌"
print1(m);
─┐"
print5(m+2);
for(inti=0;
├"
print3(m);
System.out.println("
─┤"
print5(m+2);
└"
print2(m);
─┘"
voidprint1(intn){//─┬
for(inti
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 蓝桥杯 预赛 决赛 题目