Java 大学B组 第十届蓝桥杯 2019年国赛真题

蓝桥杯 2019年国赛真题(Java 大学 B 组 )
挂挂挂 , 先挂
#A 递增序列
本题总分:5 分
问题描述
对于一个字母矩阵 , 我们称矩阵中的一个递增序列是指在矩阵中找到两个字母 , 它们在同一行 , 同一列 , 或者在同一 45 度的斜线上 , 这两个字母从左向右看、或者从上向下看是递增的 。
例如 , 如下矩阵中
LANN
QIAO
有LN、LN、AN、AN、IO、AO、LQ、AI、NO、NO、AQ、IN、AN 等 13 个递增序列 。注意当两个字母是从左下到右上排列时 , 从左向右看和从上向下看是不同的顺序 。
对于下面的 30 行 50 列的矩阵 , 请问总共有多少个递增序列?(如果你把以下文字复制到文本文件中 , 请务必检查复制的内容是否与文档中的一致 。在试题目录下有一个文件 inc.txt , 内容与下面的文本相同)
VLPWJVVNNZSWFGHSFRBCOIJTPYNEURPIGKQGPSXUGNELGRVZAGSDLLOVGRTWEYZKKXNKIRWGZWXWRHKXFASATDWZAPZRNHTNNGQFZGUGXVQDQAEAHOQEADMWWXFBXECKAVIGPTKTTQFWSWPKRPSMGABDGMGYHAOPPRRHKYZCMFZEDELCALTBSWNTAODXYVHQNDASUFRLYVYWQZUTEPFSFXLTZBMBQETXGXFUEBHGMJKBPNIHMYOELYZIKHZYZHSLTCGNANNXTUJGBYKUOJMGOGRDPKEUGVHNZJZHDUNRERBUXFPTZKTPVQPJEMBHNTUBSMIYEGXNWQSBZMHMDRZZMJPZQTCWLRZNXOKBITTPSHEXWHZXFLWEMPZTBVNKNYSHCIQRIKQHFRAYWOPGMHJKFYYBQSDPOVJICWWGGCOZSBGLSOXOFDAADZYEOBKDDTMQPAVIDPIGELBYMEVQLASLQRUKMXSEWGHRSFVXOMHSJWWXHIBCGVIFGWRFRFLHAMYWYZOIQODBIHHRIIMWJWJGYPFAHZZWJKRGOISUJCEKQKKPNEYCBWOQHTYFHHQZRLFNDOVXTWASSQWXKBIVTKTUIASKPEKNJFIVBKOZUEPPHIWLUBFUDWPIDRJKAZVJKPBRHCRMGNMFWWCGZAXHXPDELTACGUWBXWNNZNDQYYCIQRJCULIEBQBLLMJEUSZPRWHHQMBIJWTQPUFNAESPZHAQARNIDUCRYQAZMNVRVZUJOZUDGSPFGAYBDEECHUXFUZIKAXYDFWJNSAOPJYWUIEJSCORRBVQHCHMRJNVIPVEMQSHCCAXMWEFSYIGFPIXNIDXOTXTNBCHSHUZGKXFECLYZBAIIOTWLREPZISBGJLQDALKZUKEQMKLDIPXJEPENEIPWFDLPHBQKWJFLSEXVILKYPNSWUZLDCRTAYUUPEITQJEITZRQMMAQNLNDQDJGOWMBFKAIGWEAJOISPFPLULIWVVALLIIHBGEZLGRHRCKGFLXYPCVPNUKSWCCGXEYTEBAWRLWDWNHHNNNWQNIIBUCGUJYMRYWCZDKISKUSBPFHVGSAVJBDMNPSDKFRXVVPLVAQUGVUJEXSZFGFQIYIJGISUANRAXTGQLAVFMQTICKQAHLEBGHAVOVVPEXIMLFWIYIZIIFSOPCMAWCBPKWZBUQPQLGSNIBFADUUJJHPAIUVVNWNWKDZBHGTEEIISFGIUEUOWXVTPJDVACYQYFQUCXOXOSSMXLZDQESHXKPFEBZHJAGIFGXSMRDKGONGELOALLSYDVILRWAPXXBPOOSWZNEASVJGMAOFLGYIFLJTEKDNIWHJAABCASFMAKIENSYIZZSLRSUIPCJBMQGMPDRCPGWKTPLOTAINXZAAJWCPUJHPOUYWNWHZAKCDMZDSRRRARTVHZYYCEDXJQNQAINQVDJCZCZLCQWQQIKUYMYMOVMNCBVYABTCRRUXVGYLZILFLOFYVWFFBZNFWDZOADRDCLIRFKBFBHMAXX
答案提交
这是一道结果填空的题 , 你只需要算出结果后提交即可 。本题的结果为一个整数 , 在提交答案时只填写这个整数 , 填写多余的内容将无法得分 。
52800

import java.io.*;public class Test {public static void main(String[] args) throws IOException {BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("inc.txt")));char[][] map = new char[30][];for (int i = 0; i < 30; i++)map[i] = in.readLine().toCharArray();int cnt = 0;int[] offsetN = { 0, 0, -1, 1, -1, -1, 1, 1 };int[] offsetM = { -1, 1, 0, 0, -1, 1, 1, -1 };for (int k = 0; k < 30; k++) {for (int g = 0; g < 50; g++) {char start = map[k][g];for (int z = 0; z < 8; z++) {for (int i = k + offsetN[z], j = g + offsetM[z]; i >= 0 && i < 30 && j >= 0 && j < 50; i += offsetN[z], j += offsetM[z])if (map[i][j] > start && (k < i || g < j)) cnt++;}}}System.out.println(cnt);}}
#B 平方拆分
本题总分:5 分
问题描述
将 2019 拆分为若干个两两不同的完全平方数之和 , 一共有多少种不同的方法?
注意交换顺序视为同一种方法 , 例如 132 + 252 + 352 = 2019 与 132 + 352 +252 = 2019 视为同一种方法 。
答案提交
这是一道结果填空的题 , 你只需要算出结果后提交即可 。本题的结果为一个整数 , 在提交答案时只填写这个整数 , 填写多余的内容将无法得分 。