摘要: 浅谈状态压缩 总览 状态压缩是什么 别名“二进制枚举”,核心是枚举。即将所有的情况枚举出来后对每种情况进行单独的讨论。对于每一个下标我将其称作**“非黑即白”**(在某一情况中要么出现要么不出现)。 可以将其看作对数据范围小的布尔数组的压缩。但由于有位运算,使状态压缩操作起来比布尔数组简洁。(状态压 阅读全文
posted @ 2022-02-04 16:35 birds_fly 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 前言 这篇文章用三道例题解释下单调栈 单调栈是什么 栈里的元素 严格或非严格 单调递增或递减 实现时要维护栈内的元素有序 例题一 Acwing1978(简单) 题目链接 https://www.acwing.com/problem/content/description/1980/ 题目 每天,农夫 阅读全文
posted @ 2022-01-25 22:10 birds_fly 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 题目 https://leetcode-cn.com/problems/two-sum/ 问题重述 给定一个整数数组nums和一个整数目标值target,在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。只有一个答案 题目分析 题目说只有唯一确定的解(你可以假设每种输入只会对应 阅读全文
posted @ 2021-12-06 23:27 birds_fly 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 题目 https://www.acwing.com/problem/content/description/773/ 问题重述 找到字符串中第一次出现的最长的连续出现的字符,输出该字符及其出现次数。(无稀奇古怪的输入) 思路 看到连续就想到双指针,再用常量空间存下第一次的最大值即可。 源码 #inc 阅读全文
posted @ 2021-12-06 00:11 birds_fly 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 123号算协小组赛 前言 本次比赛由杨锋同学出题,伍树明同学验题。 每题题解 1. 定义一个数从1开始计数,在for循环中如果s可以被k整除就输出ABC,否则输出s,每一次循环s都要加1。输出时注意空格和换行。 #include <iostream> #include <cstring> 阅读全文
posted @ 2021-12-03 22:49 birds_fly 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 题目 https://codeforces.com/contest/137/problem/C 问题重述 找到被覆盖的区间一共有多少个 [3,4]\(\)[1,5]\(\)[3,5]覆盖 思路 先按第一个下标从小到大排序 双指针。后面的被前面的覆盖就加加答案,不然更新覆盖区间 代码 阅读全文
posted @ 2021-12-01 13:04 birds_fly 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 题目 https://codeforces.com/contest/81/problem/A 问题重述 两个连在一起的才能删除。如abba先删除bb,删除后变成了aa,再删除相连的aa,字符串变空。 思路 栈。每个字母与栈顶的元素比较: 相同的话删栈顶 不同的话进栈 最后翻转下字符串 代码 //原来 阅读全文
posted @ 2021-11-30 13:32 birds_fly 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 题目 https://codeforces.com/contest/1579/problem/C 思路 直接遍历,把每一个看作三角形的最下面的尖尖。 判断行不行,行的话把这个勾bool下 代码 //对于每一个钩,最短的也要大于k //遍历一遍黑点 以最下面的点为起始点, 找到符合要求的 阅读全文
posted @ 2021-11-29 18:34 birds_fly 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 题目 https://codeforces.com/problemset/problem/1494/B 思路 四个角是关键要素: 不需要填角时直接true 暴力枚举所有情况(每个角填或不填) 代码 //四个角可以一个当两个 只要角被填了, 与之对应的必须要被填 //都不用填角的话直接可以 #incl 阅读全文
posted @ 2021-11-29 17:01 birds_fly 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 题目 https://codeforces.com/contest/1520/problem/D 思路 就是找a[i] - i == a[j] - j有多少种组成方式 输入数组时初始化下,哈希表算出相等的有几对。再在值减下标相等的里面组合,公式为Cn2 代码 //a[i] - i == a[j] - 阅读全文
posted @ 2021-11-28 22:02 birds_fly 阅读(80) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示