摘要: 网络上常用名:zufe_zzt、14rj134、FightingHeart 国内二本大学软件工程专业学生,2014年入学。 ACM算法爱好者,曾经的魔术爱好者,京东实习生,准备参加微软苏州探星夏令营。 中国风音乐爱好者,偶像有李玉刚、许嵩。 联系我:774388357@qq.com 相关文章: 《第阅读全文
posted @ 2017-05-12 15:55 Fighting_Heart 阅读(141) 评论(1) 编辑
摘要: 小数据打表,大数据暴力。 导致超时的主要原因是$m$小的询问次数太多,可以把$m≤10$的答案直接暴力打表存起来,$m>10$的用$C$题的方法即可。阅读全文
posted @ 2017-06-03 20:47 Fighting_Heart 阅读(60) 评论(0) 编辑
摘要: 暴力。 $O(m*n)$的算法可以通过此题,每次询问$O(m)$扫$S$数组,统计不同数字的个数,每次移动最多只会变化两个数字,如果不同数字个数为$0$,那么答案加$1$。阅读全文
posted @ 2017-06-03 20:42 Fighting_Heart 阅读(25) 评论(0) 编辑
摘要: 暴力。 暴力枚举$S$串的每一个长度为$m$的子串,排序判断即可。阅读全文
posted @ 2017-06-03 20:38 Fighting_Heart 阅读(18) 评论(0) 编辑
摘要: 贪心。 从大到小排序之后进行模拟,注意$n=1$和$n=0$的情况。阅读全文
posted @ 2017-06-03 20:35 Fighting_Heart 阅读(18) 评论(0) 编辑
摘要: $dp$。 记录$dp[i]$表示以位置$i$为结尾的最大值。 枚举最后一段是哪一段,假设为$[j,i]$,那么可以用$max(dp[1]...dp[j-1]) + val[j][i]$去更新$dp[i]$。 判断区间是否合法可以记录选择每个位置必须需要取到的最小位置和最大位置,判断区间合法性的时候阅读全文
posted @ 2017-06-01 19:28 Fighting_Heart 阅读(18) 评论(0) 编辑
摘要: 离线,树状数组。 数据范围好像有点小,直接暴力可以过的。 我直接上了$n,Q≤100000$的做法:只需要判断区间上比$x$小的数字有几个即可,可以对询问进行离线操作,从左到右一个一个数字插入到树状数组中。阅读全文
posted @ 2017-06-01 19:25 Fighting_Heart 阅读(20) 评论(0) 编辑
摘要: 去年C/C++B第二名,前面那个是final爷。 今年本想摸个特等奖,所以报了JavaB组。 出了考场,博弈不会做,好像数据范围都没给。 私以为最后一题做对了,大佬给了我一组数据,瞬间傻逼。 私以为打表找循环节找对了,大佬一说,瞬间傻逼。 最后GG,抢手机失败。阅读全文
posted @ 2017-05-30 17:28 Fighting_Heart 阅读(42) 评论(0) 编辑
摘要: 数位$dp$。 $dp[i][j][k][s]$表示最高位有$i$位,并且最高位为数字$j$,这些数字的最小公倍数为$k$,被$2520$取余的结果为$s$的方案数。 被每一个数字都要整除,就是被这些数字的最小公倍数整除。$1$到$9$的随便选数字的最小公倍数只有$48$种。 $A\%B = A\%阅读全文
posted @ 2017-05-23 08:11 Fighting_Heart 阅读(15) 评论(0) 编辑
摘要: 分块,暴力。 将序列分成$sqrt(n)$块,每块$sqrt(n)$个元素,每块内排序。 每次操作要计算这个区间中比$a[p1]$大的有几个,小的有几个,比$a[p2]$大的有几个,小的有几个,端点的块内暴力找,中间的块内二分找。 交换完数字之后,可以直接重新$sort$排个序。 总体时间复杂度$O阅读全文
posted @ 2017-05-17 18:37 Fighting_Heart 阅读(14) 评论(0) 编辑
摘要: 枚举,容斥原理,范德蒙恒等式。 先预处理每个位置之前有多少个左括号,记为$L[i]$。 每个位置之后有多少个右括号,记为$R[i]$。 然后枚举子序列中第一个右括号的位置,计算这个括号的第一个右括号的方案数。 即在它左边取$k$个左括号,在右边取$k-1$个右括号都是合法的方案,这个东西可以用范德蒙阅读全文
posted @ 2017-05-17 18:33 Fighting_Heart 阅读(22) 评论(0) 编辑
摘要: 二分。 如果$n≤m$,显然只能$n$天。 如果$n>m$,至少可以$m$天,剩余还可以支撑多少天,可以二分计算得到,也可以推公式。二分计算的话可能爆$long$ $long$,上了个$Java$。阅读全文
posted @ 2017-05-17 18:27 Fighting_Heart 阅读(21) 评论(0) 编辑
摘要: 简单判断。 找第一类区间中$R$最大的,以及第二类区间中$L$最小的,判断距离。 找第二类区间中$R$最大的,以及第一类区间中$L$最小的,判断距离。 两种情况取个最大值即可。阅读全文
posted @ 2017-05-17 18:25 Fighting_Heart 阅读(14) 评论(0) 编辑
摘要: 简单判断。 分别判断每个单词是几面体,加起来就是答案。阅读全文
posted @ 2017-05-17 18:22 Fighting_Heart 阅读(4) 评论(0) 编辑
摘要: 区间$dp$。 倒着考虑这件事件,肯定有最后一个取走的数字,假设是$a[k]$,那么最后一次取走的价值肯定是$a[0]*a[k]*a[n+1]$,之前取走的价值和为$[1,k-1]$的价值加上$[k+1,n]$的价值。 设$dp[L][R]$表示取完区间$[L,R]$的最大价值,$dp[L][R] 阅读全文
posted @ 2017-05-15 08:23 Fighting_Heart 阅读(69) 评论(0) 编辑
摘要: 二分,验证。 二分一下答案,然后验证一下统计个数能否满足即可。阅读全文
posted @ 2017-05-15 08:19 Fighting_Heart 阅读(48) 评论(0) 编辑
摘要: $01$背包。 数据范围:物品个数小于等于$3000$,背包大小小于等于$1000000$。 $map<int,long long>dp$,用$map$去做$dp$,可以少遍历很多状态,可以$AC$。 还可以做一些优化,例如费用大,但是价值小的状态可以直接删除。阅读全文
posted @ 2017-05-15 08:18 Fighting_Heart 阅读(107) 评论(0) 编辑
摘要: 模拟。 先判断三边形和四边形的个数。 然后判断$5$个三角形是否都是等腰直角三角形。 然后判断$5$个等腰直角三角形比例是否符合要求。 然后寻找正方形。判断比例是否符合要求。 最后判断四边形是否符合要求。阅读全文
posted @ 2017-05-14 16:28 Fighting_Heart 阅读(14) 评论(0) 编辑
摘要: 模拟。 有$a$先标$a$,其次是$o$和$e$,$o$和$e$在韵母中不会同时存在。最后是$u$和$i$,这两个字母在韵母中可能同时存在,标在后面的那个。输出那些字符的话直接输出就可以了。 举几个例子: 3 shui2 Case 1: shuí liu2 Case 2: liú lve4 Case阅读全文
posted @ 2017-05-14 09:21 Fighting_Heart 阅读(24) 评论(0) 编辑
摘要: 最大公约数。 计算$x$与$i$的最小公倍数,就是这些人至少需要喝几杯,最小公倍数除以$x$就是要买几瓶。阅读全文
posted @ 2017-05-14 08:37 Fighting_Heart 阅读(26) 评论(0) 编辑
摘要: 暴力搜索。 主要目的就是找到任意一条路径,使得路径长度大于等于$k+1$,写个爆搜发现很快能出解。判断某点是否可走,需要看四周有没有已经走过的点的$dis$比这个点的$dis$小$2$或者$2$以上。阅读全文
posted @ 2017-05-13 22:28 Fighting_Heart 阅读(81) 评论(0) 编辑