随笔分类 - acwing算法练习
摘要:本题为八方向枚举,且结合枚举状态时的直角拐弯。 如图,假设我们正在枚举1号方向,它可以向7和3方向转弯,观察其二进制规律,第一位取反,及d ^ 2, 第2位为0和1, 枚举详见代。 #include<iostream> #include<cstdio> #include<cstring> #incl
阅读全文
摘要:给我们一些排列,问我们在这些排列中,哪些元素的相对位置没有发生变化。 1.利用哈希 我们对每个数据对(i, j)进行哈希处理 v = i * 100 + j; 然后对剩下的排列进行枚举,看看有没有 j * 100 + i == v的,如果有,就说明所有排列中即出现了(i, j) 也出现了(j, i)
阅读全文
摘要:h指数问题,当看到题目要求最大,最小的字眼是,可以想到二分,dp,枚举。 本题采用二分答案,对h指数进行二分。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std;
阅读全文
摘要:大模拟,本题我们可以唯一确定每头牛的相对年龄。 若无法确定牛的相对年龄,可以用图论进行遍历。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<unordered_map> using
阅读全文
摘要:利用计数的思想,把每个字母分配到26个桶中,下标从小到大排序,利用upper_bound即可判断 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int ma
阅读全文
摘要:简单模拟,最小的两个数字是a, b, 最大的数字时a + b + c #include<iostream> #include<cstdio> #include<algorithm> #include<set> using namespace std; int main() { multiset<in
阅读全文