一、cpp 语言上的知识
1.如果没有给定参数的数量 n,直接处理一组输入
while(cin>>s)
2.pair 的使用
vector〈pair〈int,int〉〉v
make_pair(3,6)
头文件是 utility
3.unordered_map 的使用
auto range=hash.equal_range(key)
for(auto it=range.first;it!=range.second;range++){
cout<<it.second;
}
二、具体题目
1.模拟题 求 6x 和 sum-x 的最大值的最小值,用前缀和以及逐个判断,每次左边当 6x
2.贪心题目 考察覆盖光伏板最少数目优化器,解决是用三个数组,分别代表原数据,优化器的位置,是否被覆盖了
3.BFS,和 DFS 需要记录访问过的位置,BFS 可以从可达的开始访问就像层序遍历是从每层遍历一样
其他
1.动态规划类问题 139/140
解决思路是 139 是前面 i 个词是否能匹配,最后到 dp n
140 是判断从 j 到结束有多少种拆分方法
2.找最长公共子串
可以使用前 i 和 j 最长子串,然后根据 i 和 j 是否相等来判断,如果不相等怎么怎么样。