上一页 1 2 3 4 5 6 7 8 9 10 ··· 69 下一页
摘要: 暴力。 $O(m*n)$的算法可以通过此题,每次询问$O(m)$扫$S$数组,统计不同数字的个数,每次移动最多只会变化两个数字,如果不同数字个数为$0$,那么答案加$1$。 阅读全文
posted @ 2017-06-03 20:42 Fighting_Heart 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 暴力。 暴力枚举$S$串的每一个长度为$m$的子串,排序判断即可。 阅读全文
posted @ 2017-06-03 20:38 Fighting_Heart 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 贪心。 从大到小排序之后进行模拟,注意$n=1$和$n=0$的情况。 阅读全文
posted @ 2017-06-03 20:35 Fighting_Heart 阅读(185) 评论(0) 推荐(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 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 离线,树状数组。 数据范围好像有点小,直接暴力可以过的。 我直接上了$n,Q≤100000$的做法:只需要判断区间上比$x$小的数字有几个即可,可以对询问进行离线操作,从左到右一个一个数字插入到树状数组中。 阅读全文
posted @ 2017-06-01 19:25 Fighting_Heart 阅读(184) 评论(0) 推荐(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 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 分块,暴力。 将序列分成$sqrt(n)$块,每块$sqrt(n)$个元素,每块内排序。 每次操作要计算这个区间中比$a[p1]$大的有几个,小的有几个,比$a[p2]$大的有几个,小的有几个,端点的块内暴力找,中间的块内二分找。 交换完数字之后,可以直接重新$sort$排个序。 总体时间复杂度$O 阅读全文
posted @ 2017-05-17 18:37 Fighting_Heart 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 枚举,容斥原理,范德蒙恒等式。 先预处理每个位置之前有多少个左括号,记为$L[i]$。 每个位置之后有多少个右括号,记为$R[i]$。 然后枚举子序列中第一个右括号的位置,计算这个括号的第一个右括号的方案数。 即在它左边取$k$个左括号,在右边取$k-1$个右括号都是合法的方案,这个东西可以用范德蒙 阅读全文
posted @ 2017-05-17 18:33 Fighting_Heart 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 二分。 如果$n≤m$,显然只能$n$天。 如果$n>m$,至少可以$m$天,剩余还可以支撑多少天,可以二分计算得到,也可以推公式。二分计算的话可能爆$long$ $long$,上了个$Java$。 阅读全文
posted @ 2017-05-17 18:27 Fighting_Heart 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 简单判断。 找第一类区间中$R$最大的,以及第二类区间中$L$最小的,判断距离。 找第二类区间中$R$最大的,以及第一类区间中$L$最小的,判断距离。 两种情况取个最大值即可。 阅读全文
posted @ 2017-05-17 18:25 Fighting_Heart 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 简单判断。 分别判断每个单词是几面体,加起来就是答案。 阅读全文
posted @ 2017-05-17 18:22 Fighting_Heart 阅读(189) 评论(0) 推荐(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 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 二分,验证。 二分一下答案,然后验证一下统计个数能否满足即可。 阅读全文
posted @ 2017-05-15 08:19 Fighting_Heart 阅读(270) 评论(0) 推荐(0) 编辑
摘要: $01$背包。 数据范围:物品个数小于等于$3000$,背包大小小于等于$1000000$。 $map<int,long long>dp$,用$map$去做$dp$,可以少遍历很多状态,可以$AC$。 还可以做一些优化,例如费用大,但是价值小的状态可以直接删除。 阅读全文
posted @ 2017-05-15 08:18 Fighting_Heart 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 模拟。 先判断三边形和四边形的个数。 然后判断$5$个三角形是否都是等腰直角三角形。 然后判断$5$个等腰直角三角形比例是否符合要求。 然后寻找正方形。判断比例是否符合要求。 最后判断四边形是否符合要求。 阅读全文
posted @ 2017-05-14 16:28 Fighting_Heart 阅读(170) 评论(0) 推荐(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 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 最大公约数。 计算$x$与$i$的最小公倍数,就是这些人至少需要喝几杯,最小公倍数除以$x$就是要买几瓶。 阅读全文
posted @ 2017-05-14 08:37 Fighting_Heart 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 线段树,暴力。 先处理出每个点直接能感染到的最左边的和最右边的。 之后每次扩展,看向左能到达的那些点中,最左以及最右能到哪些点,更新。 看向右能到达的那些点中,最左以及最右能到哪些点,更新。 最左最右能到哪些点,可以用线段树计算区间最小值最大值。 如果某次无法更新,那么结束。 阅读全文
posted @ 2017-05-13 20:45 Fighting_Heart 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 字典树,$dp$。 记录$dp[i]$为以$i$为结尾获得的最大价值。枚举结尾一段是哪个单词,更新最大值。可以将字典中单词倒着建一棵字典树。 这题数据有点不严谨。 下面这组数据答案应该是负的。 3 a 0.1 aa 0.1 aaa 0.1 1 aaa 下面这组数据没通过的代码在$OJ$上也可以$AC 阅读全文
posted @ 2017-05-13 17:33 Fighting_Heart 阅读(417) 评论(0) 推荐(0) 编辑
摘要: 二分,最小生成树。 二分一下$k$,然后每次算最小生成树验证即可,事实证明,$cmp$函数,参数用引用还是能提高效率的,不引用一直$TLE$,时限有点卡常。 然后错误的代码好像$AC$了啊,$L$和$R$直接赋值成$mid$,有几个点一直$WA$,加一减一反而能过。 阅读全文
posted @ 2017-05-13 13:18 Fighting_Heart 阅读(293) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 69 下一页