摘要:
A-进攻 https://ac.nowcoder.com/acm/contest/8564/A 初看会以为是完全背包问题。但是如果遇到贪心和DP无法判断的时候怎么知道用哪个。。其实我也不太懂。好像可以数学证明,但是我还不会,埋个坑,接下来会学的。 其实是一个贪心问题,这个AC代码的思想很巧妙,具体的 阅读全文
摘要:
https://ac.nowcoder.com/acm/problem/15696 今天莫名奇妙被这题卡了好久,后来想想确实题解还是有我需要学习的地方。 一开始用的暴力枚举TLE了,不过也在意料之中。 但是第一遍的代码是超时在记录每株树的元素个数,第一次是用遍历的方法来更新,时间复杂度是O(n^2) 阅读全文
摘要:
https://ac.nowcoder.com/acm/problem/16430 这是一道比较刁钻的模拟题,一开始拿到题目直接开始优先队列模拟,一波操作猛如虎,最后发现每次切后忘了给每个元素加上q,而且切掉的是不加的。这就有点难受 但是如果我们换一种思路,因为是每秒切一刀,也就是每过一秒就加q。那 阅读全文
摘要:
https://ac.nowcoder.com/acm/problem/50965 这是一道在直方图中寻找最大子矩形的题目,我们可以通过将单个矩形左右延伸来计算最大值 需要注意的是,这里的数据范围是1e9,所以我们要用long long定义相关变量,否则范围不够 由于数据较多并且大,推荐使用scan 阅读全文
摘要:
思路:虽说是放在栈的题库下面,但是也可以用别的做,这里用栈结合数组 光标可以看作下标,然后左右可以看作两个数组,并且用到了前缀和的知识 下面是AC代码 #include <bits/stdc++.h> using namespace std; const int max_n=1000006; int 阅读全文
摘要:
思路:看到题目想到暴力枚举,但是不能盲目,因为一看数据必超时 我们可以换一个思路来枚举,例如: 如果n=12345时候,从哪个地方开始枚举? 假设最坏情况,就是每位都是9,那就是从12345-5*9=12300开始枚举 这样复杂度大大减小 最后说一下,不要忘记加上关闭缓冲区语句,否则会超时 #inc 阅读全文