07 2019 档案
摘要:原题地址 前缀和水题,没什么好讲的,注意横纵坐标加1。 另外此题空间有点紧。 代码实现如下: #include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for (register int i = (a); i <= (b);
阅读全文
摘要:原题地址 差分,想到了这个再看看代码应该就很好做了。 代码实现如下: #include <bits/stdc++.h> using namespace std; #define int long long #define rep(i, a, b) for (register int i = (a);
阅读全文
摘要:原题地址 这题讲一下第一行的枚举就可以了。 第一行枚举的k的第j位如果是1,是指第一行的这一位应该被切换状态(开或关),与初始状态无关(实际上,遇1切换和遇0切换是一样的)。 那么就直接放代码了。 代码实现如下: #include <bits/stdc++.h> using namespace st
阅读全文
摘要:原题地址 虽然很简单但却是map很典型的运用,姑且就放上来吧。 代码实现如下: #include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for (register int i = (a); i <= (b); i++) m
阅读全文
摘要:原题地址 单调栈板子题,代码很简单。 注意将a[n + 1]赋值为0,防止栈中矩形未弹完。 代码实现如下: #include <bits/stdc++.h> using namespace std; #define int long long #define rep(i, a, b) for (re
阅读全文
摘要:原题地址 虽说是NOI的题目,但其实并不难,所以解析我就写在代码里了。 代码实现如下: //本题应首先将数拆为二进制. #include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for (register int i = (
阅读全文
摘要:原题地址 本来这题我是从最短路标签进去的,但实在想不出最短路该怎么做,所以就用ST表水过去了。 代码实现如下: #include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for (register int i = (a);
阅读全文