2013 蓝桥杯校内选拔赛 java本科B组(题目+答案)
一、标题:正则表示
正则表达式表示了串的某种规则或规律。恰当地使用正则表达式,可以使得代码简洁、事半功倍。java的很多API都支持正则表达式作为参数。其中的String.split就是这样。
看下面的代码,其意图为把一个或多个空格或逗号、句号分开的单词分离出来。即获得数组为:
["cat","doc","desk","push","last","this","is","what","must","be"]
请在划线处填入适当代码,取得要求的效果。
String s = "cat dog,desk push last, this is what. must be";
String[] ss = s.split("______________________________"); //填空位置
for(String k: ss) System.out.println(k);
请严格按照格式,通过浏览器提交答案。
注意:只提交划线部分缺少的内容,不要写其它附加内容,比如:说明性的文字或已经存在的代码。
- /**
- * 正则表达式,\s表示空白字符,|表示或,*表示0个或多个,+表示一个或多个。
- * @author DaiSong
- * @Date 2013年12月1日
- */
- public class Regex {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- String s = "cat dog,desk push last, this is what. must be";
- String[] ss = s.split("\\s*\\,\\s*|\\s*\\.\\s*|\\s+"); //填空位置
- for(String k: ss)
- System.out.println(k);
- }
- }
二、题目标题: 堆煤球
小明的爷爷很怀旧,冬天来了他还是要自己做煤球。
并且,爷爷把煤球堆放得十分整齐有规律:最上边一层只有1个煤球。第二层4个煤球摆成正方形,再下面9个煤球也是摆成正方形。总之,第 n 层就是边长为 n 的正方形。这样的结构既通风又稳固。
小明数了数,一共有30层,请你帮助计算一下,一共有多少个煤球? ___________
请通过浏览器提交答案。
注意:只提交数字,不要求解过程或公式。
注意:不要书写其它的内容(比如:说明性的文字)。
- /**
- * 堆煤球,1~30的平方求和
- * @author DaiSong
- * @Date 2013年12月1日
- */
- public class PutBriquettes {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- int sum=0;
- for(int i=1;i<=30;i++){
- sum+=(i*i);
- }
- System.out.println(sum);
- }
- }
三、题目标题: 大小之差
某6位数,只包含1~9中的某些数字(可以重复包含同一数字,但不含数字0)。
该数字重新排列数位后,可以得到最大数和最小数。最大最小之差也是6位数,并且它恰好包含了组成原6位数同样的数字。
比如:766431 - 134667 = 631764 就是具有这样特征的数字。
你还能找到另一个这样的6位数吗?
请填写它重新排列数位后的得到的最大数:________________
请通过浏览器提交答案。
注意:只提交另一个6位数,题中已经给出的这个不要提交。
注意:不要书写其它的内容(比如:说明性的文字)。
- import java.util.ArrayList;
- /**
- * 大小之差,字符串操作加上数组排序。
- * @author DaiSong
- * @Date 2013年12月1日
- */
- public class TheSizeDifference {
- static int[] a=new int[6];
- static int[] b=new int[6];
- static ArrayList<String> al=new ArrayList<String>();
- public static String BubSort(int a[]) {
- boolean flag = true;
- for (int i = 0; i < a.length && flag; i++) {
- flag = false;
- for (int j = a.length - 1; j > i; j--) {
- if (a[j] < a[j - 1]) {
- swap(a, j, j - 1);
- flag = true;
- }
- }
- }
- String s="";
- for(int i=0;i<6;i++){
- s+=a[i];
- }
- return s;
- }
- public static void swap(int[] arr,int i,int j){
- int temp=arr[i];
- arr[i]=arr[j];
- arr[j]=temp;
- }
- public static void function(int n){
- String t1,t2,t3,t4;
- String s=""+n;
- if(s.indexOf("0") != -1)
- return;
- for(int j=0;j<6;j++){
- a[j]=s.charAt(j)-48;
- }
- t1=BubSort(a);
- StringBuffer sb=new StringBuffer(t1);
- t2=sb.reverse().toString();
- t3=(Integer.parseInt(t2)-Integer.parseInt(t1))+"";
- if(t3.length()!=6)
- return;
- for(int j=0;j<6;j++){
- b[j]=t3.charAt(j)-48;
- }
- t4=BubSort(b);
- if(t1.equals(t4)){
- if(!al.contains(t3)){
- al.add(t3);
- System.out.println(t2+"-"+t1+"="+t3);
- }else {
- return;
- }
- }
- }
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- for(int i=111111;i<=999999;i++){
- function(i);
- }
- }
- }
四、标题:回文数字
观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。
本题要求你找到一些5位或6位的十进制数字。满足如下要求:
该数字的各个数位之和等于输入的整数。
【输入格式】
一个正整数 n (10<n<100), 表示要求满足的数位和。
【输出格式】
若干行,每行包含一个满足要求的5位或6位整数。
数字按从小到大的顺序排列。
如果没有满足条件的,输出:-1
【样例输入】
44
【样例输出】
99899
499994
589985
598895
679976
688886
697796
769967
778877
787787
796697
859958
868868
877778
886688
895598
949949
958859
967769
976679
985589
994499
【样例输入2】
60
【样例输出2】
-1
【资源约定】
峰值内存消耗 < 64M
CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
注意:主类的名字必须是:Main,否则按无效代码处理。
- import java.util.Scanner;
- /**
- * 回文数字
- * @author DaiSong
- * @Date 2013年12月1日
- */
- public class PalindromeFigures {
- public static int count(String s){
- int sum=0;
- for(int i=0;i<s.length();i++){
- sum+=(s.charAt(i)-48);
- }
- return sum;
- }
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Scanner sc = new Scanner(System.in);
- int n=sc.nextInt();
- String s;
- for(int i=10000;i<=999999;i++){
- s=""+i;
- StringBuffer sb=new StringBuffer(s);
- if(s.equals(sb.reverse().toString()) && count(s)==n){
- System.out.println(s);
- }
- }
- }
- }
五、标题:最大子阵
给定一个n*m的矩阵A,求A中的一个非空子矩阵,使这个子矩阵中的元素和最大。
其中,A的子矩阵指在A中行和列均连续的一块。
【输入格式】
输入的第一行包含两个整数n, m,分别表示矩阵A的行数和列数。
接下来n行,每行m个整数,表示矩阵A。
【输出格式】
输出一行,包含一个整数,表示A中最大的子矩阵中的元素个数。
【样例输入】
3 3
-1 -4 3
3 4 -1
-5 -2 8
【样例输出】
10
【样例说明】
取最后一列,和为10。
【数据规模与约定】
对于50%的数据,1<=n, m<=50;
对于100%的数据,1<=n, m<=500,A中每个元素的绝对值不超过5000。
【资源约定】
峰值内存消耗 < 64M
CPU消耗 < 3000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
注意:主类的名字必须是:Main,否则按无效代码处理。
- import java.util.Scanner;
- /**
- * 最大子阵,压缩矩阵为一维数组,转化为求最大字段和问题,运用动态规划求解。
- * @author DaiSong
- * @Date 2013年12月1日
- */
- public class MaximumSubmatrix {
- static int MAX=500;
- static int[][] a =new int [MAX][MAX];
- static int n,m;
- public static int MaxSum(int[] a,int n){
- int start,all;
- start=all=a[0];
- for(int i=1;i<n;i++){
- start=Math.max(a[i], a[i]+start);
- all=Math.max(start,all);
- }
- return all;
- }
- public static void main(String[] args) {
- Scanner cin=new Scanner(System.in);
- int i, j, k, Max, minMax;
- n=cin.nextInt();
- m=cin.nextInt();
- for (i=0; i<n; i++) {
- for (j=0; j<m; j++){
- a[i][j]=cin.nextInt();
- }
- }
- Max = Integer.MIN_VALUE;
- for (i=0; i<n; i++){
- minMax = MaxSum(a[i], m);
- if (minMax > Max)
- Max = minMax;
- for (j=i+1; j<n; j++){
- for (k=0; k<n; k++){
- a[i][k] += a[j][k];
- }
- minMax = MaxSum(a[i], n);
- if (minMax > Max)
- Max = minMax;
- }
- }
- System.out.print(Max);
- }
- }
版权声明:本文为博主原创文章,未经博主允许不得转载。
2013 蓝桥杯校内选拔赛 java本科B组(题目+答案)的更多相关文章
- 2013蓝桥杯预赛C/C++本科B组
题目标题: 高斯日记 大数学家高斯有个好习惯:无论如何都要记日记. 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯 ...
- 2016年第七届蓝桥杯C/C++程序设计本科B组省赛
/* 2016年第七届蓝桥杯C/C++程序设计本科B组省赛 煤球数目(结果填空) 煤球数目 有一堆煤球,堆成三角棱锥形.具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形) ...
- 2012年第三届蓝桥杯C/C++程序设计本科B组省赛 取球博弈
2012年第三届蓝桥杯C/C++程序设计本科B组省赛 取球博弈 题目描述 **取球博弈 今盒子里有n个小球,A.B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并 ...
- 记 2019蓝桥杯校内预选赛(JAVA组) 赛后总结
引言 好像博客好久没更新了 哈哈哈哈哈 趁现在有空更新一波 不知道还有没有人看 确实该记录一下每天做了什么了 不然感觉有些浑浑噩噩了 比赛介绍 全称: 蓝桥杯全国软件和信息技术专业人才大赛 蓝桥杯 实 ...
- 记 2020蓝桥杯校内预选赛(JAVA组) 赛后总结
目录 引言 结果填空 1. 签到题 2. 概念题 3. 签到题 4. 签到题 程序题 5. 递增三元组[遍历] 6. 小明的hello[循环] 7. 数位递增[数位dp] 8. 小明家的草地[bfs] ...
- 2013年第四届蓝桥杯C/C++程序设计本科B组决赛
1.猜灯谜(枚举) 2.连续奇数和(等差数列) 3.空白格式化(去除空格) 4.高僧斗法(阶梯nim) 5.格子刷油漆(dp) 6.农场阳光 1.猜灯谜 A 村的元宵节灯会上有一迷题:请猜谜 * 请猜 ...
- 蓝桥杯校内选拔赛/POJ 数独(深搜)
Sudoku Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 14530 Accepted: 7178 Special ...
- 2013年第四届蓝桥杯C/C++程序设计本科B组省赛 第39级台阶
题目描述: 第39级台阶 小明刚刚看完电影<第39级台阶>,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶 ...
- 2013年第四届蓝桥杯C/C++程序设计本科B组省赛 马虎的算式
题目描述 马虎的算式 小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了. 有一次,老师出的题目是:36 x 495 = ? 他却给抄成了:396 x 45 = ? 但结果却很戏剧性,他的答 ...
随机推荐
- CentOS7.1安装 Vsftpd FTP 服务器
# yum install vsftpd 安装 Vsftpd FTP 编辑配置文件 ‘/etc/vsftpd/vsftpd.conf’ 用于保护 vsftpd. # vi /etc/vsftpd/vs ...
- iOS 添加震动效果
开发过程中,有时候会碰到点击按钮或者某个动画会配合震动效果:下面介绍iOS开发过程中的震动添加: 导入:#import <AudioToolbox/AudioToolbox.h> 在需要出 ...
- zabbix server 端安装
1.系统环境 [root@crazy-acong ~]# cat /etc/redhat-release CentOS release 6.6 (Final) [root@crazy-acong ~] ...
- IOS navigationItem 设置返回button,title图片和rightBarButtonItem
1.自己定义返回button UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithTitle:@"返回" st ...
- Linux备份和回复mysql数据库
备份:mysqldump -u root -p密码 数据库名>/home/data.bak mysqldump -u root -p密码 数据库名.表名>/home/data.bak ...
- 忘记apple id如何更新应用?
最近ytkah的app有很多更新提示,之前注册的apple id好久没登录了,突然提示说登录需要验证安全问题,哪还记得噢,最要命的是邮箱收到的加密邮件也需要验证.重新注册一个吧,这次要注意保存相关信息 ...
- php中生成随机密码的自定义函数代码
这篇文章主要分享下php中生成随机密码的方法,原理就是把一些要生成的字符预置一个的字符串包括数字拼音之类的以及一些特殊字符,这样我们再随机取字符组成我们想要的随机密码了 代码一: 生成一个随机密码的函 ...
- dos与unix文件格式之间的转换
1. VI编辑器中转换 在VI中使用命令 set ff?(fileformat)可以查看文件的格式,使用set ff=dos(unix)可以设置文件的格式 2.使用sed处理(来至http://www ...
- debian下配置dynamic printk以及重新编译内核
在以前的一篇博文<编译debian内核>已经提过了重新编译内核的方法,但是整个过程花费时间较长,并且生成deb包. 这里我采用稍微简单一些的方法,因为我并没有对内核或者驱动代码做任何修改, ...
- mysql备份,知识点
1.mysql错误日志 show variables like '%log_error%'; my.cnf中log-error=/tmp/SZDB.err 开启 tail -f 错误日志 观察mys ...