摘要: 题目: 错误思路: 刚开始尝试使用Java大数打一下表,得到了一个错误规律,让我在WA了两天之后看着题解还是不明白。 对比正确题解才知道在35之后我的规律错误了,给了我死刑,ok,换思路吧。。。 正确思路: 二分,判断中间值 mid 是否满足 mid 的阶乘后的零的个数满足条件,满足就寻找更小值,不 阅读全文
posted @ 2020-05-28 21:45 Wise_4 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 题目: 简单错误思路: dfs:每个状态都需要遍历,所以最坏2 ^ 50 ,TLE 类似于01滚动:考虑到空间存不下就没有实际行动,大概率 MLE 正确答案: 类似于第二种状态,不过是状态压缩,原地滚动,每一步都利用上一步的结果,且用0,1表示状态,节省空间,然后扫一遍判断答案数量即可。 思考:DP 阅读全文
posted @ 2020-05-19 19:13 Wise_4 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 题目: 简单错误答案: 预处理将数字转换成字符串,然后每次提取对应字符串排序,利用下标得到答案,然后 MLE。 这次我每次都单独利用to_string 函数暴力转换然后排序,利用下标得到答案,然后 TLE。 正确答案: 将数据范围全部转化成一颗十叉树,深度优先遍历情况下第 K 个搜到的就是答案。 下 阅读全文
posted @ 2020-05-19 14:33 Wise_4 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 题目:不过原OJ网站不使用了 思路:每个实例数据量为 1e6 ,这个是突破口,题目本身的思考方向就是并查集,e = 1的数据 a,b 放在同一个集合下,暂时保存e = 0的数据,输入完后以此查询可能性。但数据范围到1e9。需要用map进行hash,使得所有数据范围都在1e6内。 #include<i 阅读全文
posted @ 2020-05-04 19:14 Wise_4 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 链接:https://codeforces.ml/problemset/problem/616/D 题意:寻找最长字串,使得子串中不同数字的个数不超过 K 。 Solution:尺取法,用数组vis[]存储当前字串各数字个数,num用来存储当前字串中不同数字个数,外层循环保证右边界到达n处,当当前字 阅读全文
posted @ 2020-05-04 18:15 Wise_4 阅读(200) 评论(0) 推荐(1) 编辑
摘要: 题意:给你两个长度相同的只含有 'a' ,'b' 的字符串,每次可以交换串1的一个字符和串2的一个字符,求最小操作数使得两个串相同,不能做到输出 -1; 题目链接:点击查看 分析:类型 ① :a -> b; ② : a -> a; ③ :b -> a; 类型②不操作;相同类型进行操作一次使得两个位置 阅读全文
posted @ 2020-04-30 21:39 Wise_4 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 反思:田忌赛马的故事都熟悉,可我栽坑了,我只想到三局两胜的情况下怎么取比赛,或者说我只是当田忌赛马为故事,并没有深入思考问题本质,这题给我想的头皮发麻。 田忌赛马思想:① 我的最快的比另一个人的最快的要快 ,我就赢下这一局,ans1++;R1--;R2--; ② 我的最快的比另一个人的最快的要慢,我 阅读全文
posted @ 2020-04-27 21:34 Wise_4 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 题目大意:如果我们用YYYY-MM-DD(例如,2020-04-25)的格式表示一个日期,您知道在Y1-M1-D1和Y2-M2-D2(包括两者)之间的所有日期中会出现多少个9吗? 初始想法:从第一个日期暴力到第二日期,发现实现很复杂。 转化思路:从2000 - 9999年暴力打表记录,特殊判断闰年的 阅读全文
posted @ 2020-04-26 11:39 Wise_4 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://ac.nowcoder.com/acm/problem/14247 思想:暴力枚举两个区间的左右端点时间复杂度很高,可如果枚举一个区间,问题会简化。 维护到 i 处的异或和(pre[i],类似于桶排序中的桶,所以num数组开大点),枚举右区间加上左区间与当前区间异或值相等的 阅读全文
posted @ 2020-04-22 23:31 Wise_4 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 反思:我想到了答案跟数组长度奇偶有关,而且也知道应该用dp,可还是不知道怎么表示dp数组的意义,而且我还错误的思考起来了长度的问题。。。。 有点害怕dp,感觉会很难,总会限制自己思路,好好思考思考 正确思路: dp[i] 表示为 从开头到 i 处的最大值 如果 i 为奇数 ,dp[i] = max( 阅读全文
posted @ 2020-04-18 20:57 Wise_4 阅读(206) 评论(0) 推荐(0) 编辑