
比赛
悲伤的小霉
If not me,who?;If not now,when?
展开
-
牛客编程巅峰赛S2第5场:牛牛与后缀表达式
题目描述: 原题链接 解题思路: 利用栈去模拟后缀表达式 参考代码: public long solve (String str) { // write code here Stack<Long> s = new Stack<>(); long temp = 0; for(int i =0; i<str.length(); i++){ if(str.charAt(i)>='原创 2020-12-02 20:10:08 · 251 阅读 · 0 评论 -
IME++ Starters Try-outs 2019
Building Bridges 原题链接 最长公共子序列,动态规划 参考代码: public static void main(String[] args) { Scanner sc=new Scanner(System.in); char[] s1 = sc.next().toCharArray(); char[] s2 = sc.next().toCharArray(); int[][] dp = new int[s1.lengt原创 2020-12-01 17:35:16 · 99 阅读 · 0 评论 -
牛客编程巅峰赛S2第四场:牛牛摆玩偶
题目描述: 解题思路: 这道题写的时候,没有思路,感觉像是dp但是不是。这道题其实是利用二分+贪心的思想,就是二分答案,如果一个距离符合条件,那么比这个距离小的就都符合条件,相反,如果不符合,那么比这个距离大的也就都不符合,所有二分的去找答案,然后check去判断是否符合,判断符合的时候就利用贪心的思想。 参考代码: public class Interval { int start; int end; public Interval(int start, int end)原创 2020-11-28 16:02:45 · 167 阅读 · 0 评论 -
牛客编程巅峰赛S2第四场:交叉乘
题目描述: 解题思路: 这道题需要数学推导加前缀和,比较不容易想到,一开始我写的暴力,很显然过不了。 首先这个式子可以想到乘法表,一个区间的和就类似于99乘法表。 这个可以推导出来,写出乘法表的式子,可以推导出来,就是把区间的所有数的平方都存起来,但是最后结果要减去对角线上的,因为那个是不需要的,在除于2就是结果,但是java比较麻烦,在取模的时候需要用到题目给的提示。 参考代码: public int[] getSum(int[] a, int[] query) { int原创 2020-11-28 15:54:34 · 170 阅读 · 0 评论 -
CCPC2019河南省赛:最大下降矩阵
题目描述: 解题思路: 这道题目是求最长上升序列的变形题,在求最长上升序列的时候,我们定义dp数组来存储每个位置上对应的符合条件的状态量,遍历,当前面有小于自身的数的时候,dp就更新和自身以及小于自身数+1取最大值,这里对应的思想就是,如果前面出现了比某个数大的数,这个数就可以加到前面数字后面,构成新长度的序列. 这道题我们把矩阵每一行看作一个数,在更新dp状态时候的判断就变成了判断一整行的元素情况了.因为这道题是下降矩阵,所以就是当前面行所有元素都比下面行元素大的时候,才去更新dp的状态,否则,一旦前原创 2020-11-18 22:07:32 · 255 阅读 · 0 评论 -
牛客编程巅峰赛S2第一场Tree IV
题目描述: 解题思路: 不知道怎么回事,数据总是过了90%,可能是有些地方溢出了吧。 参考代码: public long tree4 (long n) { long sum=0; int left=1,right=1; for (int i = 1; left<=n ; i++) { long rightr=Math.min(right,n); sum+=(rightr-left+1)*(le原创 2020-11-18 19:24:49 · 108 阅读 · 0 评论 -
蓝桥杯2020JavaB真题(7月份)
试题 A: 解密 答案:YeRikGSunlRzgDlvRwYkXkrGWWhXaA 试题 B: 纪念日 答案:52038720 参考代码: public static void main(String[] args) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss"); Date date1=new Date(); Date date2=new Dat原创 2020-10-14 21:40:43 · 1872 阅读 · 1 评论 -
巅峰赛S1赛季.第八场——A牛牛的分配
题目描述: 在牛牛面前有nn个瓶子,每个瓶子的大小体积都一样,但是每个瓶子内的含水量都不相同。 因为牛牛是个完美主义者,他希望瓶子中的水能够满足他的要求,他的要求是瓶子中的水最少为xx。所以他打算对这些瓶子里的水进行重新分配,以满足最多的瓶子中水量大于等于xx。 牛牛的分配规则是:每次可以选择多个瓶子,将里面的水平均分配到已选择的瓶子中。 给定nn个瓶子和牛牛的对瓶中的水量要求xx,以及nn个瓶子中的含水量,求最多可以有多少个瓶子满足牛牛的要求? 解题思路: 1、先把数组排序,从最大的开始找,每次加上自原创 2020-08-02 15:39:48 · 218 阅读 · 0 评论 -
牛客编程巅峰赛S1第6场——C牛牛摆放花
题目描述:原创 2020-07-26 15:20:11 · 298 阅读 · 0 评论 -
牛客编程巅峰赛S1第6场——B牛牛爱奇数
题目描述: 解题思路: 这道题一开始想着是找到最大偶数,然后求log2的值,后来发现这种逻辑是错的,因为比如6 和 8,他们最终消除到奇数的过程是不一样的。 这道题正确的逻辑是这样的,每一个偶数都需要除于2,我们从最大的偶数开始这个除于2的过程,那么它除后的数,如果还是偶数的话,我们还是要重复这个步骤,所以他除2过程中产生的偶数都需要处理,所以说,只需要知道在不断除2过程中产生的数字个数即可。 代码上面,我们使用Set去除重复的元素,每次都用最大的数值去进行除2的操作。 参考代码: publi原创 2020-07-26 00:50:23 · 202 阅读 · 0 评论 -
牛客编程巅峰赛S1第6场——A循环右移(字符串右移)
题目描述: 解题思路: 这道题很简单,思路就是求出右移后的字符串,然后转换成对应的十进制数即可,我是直接使用的API,Long.valueOf(s,2);转换的,也可以模拟位运算求出。 参考代码: public long rotateRight (String str, int k) { if(str.length()==1) return Long.valueOf(str,2); char[] c=str.toCharArray();原创 2020-07-26 00:25:04 · 258 阅读 · 0 评论 -
牛客编程巅峰赛S1第5场——A凯撒密码(字符串)
题目描述: 原题链接 牛牛截获了一段由凯撒密码加密过的密文,凯撒密码指的是将字符偏移一定的单位,例如若偏移量为2,则a替换为c,b替换为d,c替换为e,…,z替换为b。若加密nowcoder,则密文为pqyeqfgt。现在牛牛发现对方加密包括数字、大写字母、小写字母,即0-9、A-Z、a-z的排列顺序进行偏移,现在牛牛截获了对方的一段密文以及偏移量,你能帮助牛牛破解密文吗。即给定一段密文str和偏移量d,求对应的明文。 实例: 解题思路: 1、这个题一开始没有看清楚要求,以为d会很大的那种,要进行多种情况原创 2020-07-24 00:37:24 · 249 阅读 · 0 评论 -
牛客编程巅峰赛S1第4场——C:TreeI
题目描述: 示例: 解题思路: 1、结论: 一颗完全二叉树层序遍历如果存在一个下标从1开始的数组里面,满足:左儿子编号=2父亲编号,右儿子编号=2*父亲编号+1. 2、这道题做的时候,想着还还原二叉树,把数据存入队列什么的,后来发现完全想多了,后来根据节点进行求和的过程中,被样例里面的数据迷惑了,各种赋值节点,然后让赋值的那个数去做运算了,其实是应该使用下标来进行运算。唉,数论高深莫测,我太菜了。 参考代码: public static long tree1(int[] a) {原创 2020-07-19 13:13:50 · 217 阅读 · 0 评论 -
牛客编程巅峰赛S1第4场——B:浅尝辄止(整除分块)
题目描述: 示例: 解题思路: 这道题不能暴力求,会超时。这个考查了整除分块的知识点。是数论的知识。(n/i)的值呈现块状分布,每一个分块最后的一位,能推导出来是n/(n/i),我们求和,只需要将n/i这个数值乘这个数值出现的次数即可。 整除分开的模板: ans = 0; for(int l = 1, r; l <= n; l = r + 1) { r = n / (n / l); ans += n / l * (r - l + 1); } 参考代码: public st原创 2020-07-19 10:48:58 · 193 阅读 · 0 评论