摘要:
思路: 维护一个单调递增的栈,对于栈顶元素#include#include#includeusing namespace std;typedef long long LL;const int N=1e5+10;int main(){ stackq; while(!q.e... 阅读全文
摘要:
题意: 题意:n个数,求某段区间的最小值*该段区间所有元素之和的最大值 思路: 主要参考:http://www.cnblogs.com/ziyi–caolu/archive/2013/06/23/3151556.html 首先我们假设第i个元素是最小的话,那么他的区间是确定的,所以... 阅读全文
摘要:
转自:http://blog.csdn.net/alongela/article/details/8227707 单调栈与单调队列很相似。首先栈是后进先出的,单调性指的是严格的递增或者递减。 单调栈有以下两个性质: 1、若是单调递增栈,则从栈顶到栈底的元素是严格递增的。若是单调递减... 阅读全文
摘要:
思路: 很显然每个连续的序列都是等差数列, 那么我们利用等差数列求和公式。 S=(a1+a1+k-1)k/2=(2·a1+k-1)*k/2;a1是首项,k是个数。 枚举k,首项最小为1,k最大,具体不说了,反正大致就是sqrt(2*n); 枚举量还是在平方以内 题外话: 这题就是没... 阅读全文
摘要:
题意: 略。 思路: n就10而已,没有环,搜一下就好了。。#include using namespace std;typedef long long LL;const int mod=1e9+7;const int N=10+10;const int INF=0x3f3f3f3... 阅读全文
摘要:
题意: 有一种值E=the number of elements where ai > i.比如1 3 2 4,只有3位置是满足的,E=1。然后他会给你一个数组和一个k,问有多少个序列的E=k。 思路: 看到n和k都是1e3我觉得就应该想到n^2的复杂度上去,然后就是dp。不是说d... 阅读全文
摘要:
思路: dp[i][0]代表第i个位置取1,dp[i][1]代表第i个位置取b[i]。#include using namespace std;typedef long long LL;const int N=5e4+10;LL dp[N][2];LL a[N];int main(... 阅读全文
摘要:
具体思路来自相关讨论 给个不太严谨的证明思路: 第一步:证明路径可逆,也就是如果(a, b) -> (x, y)可行,则(x, y) - > (a, b)可行 这个比较直观,只需要分别由(a +b, b) (a, a + b), (a - b, b), (a, a - b)推回(... 阅读全文
摘要:
求和符号 是数学中常用的符号,主要用于求多项数的和,用∑表示。 举例: 累乘符号 读pai,跟圆周率那个π是一样的读法,是希腊字母π的大写,符号表示Π。 举例: 数学期望 首先对于题目你先得保证每次可能结果的概率和结果要算对,或者已知; 如果随机变量只取得有限个值或无穷能按一定次序一一列出,... 阅读全文
摘要:
思路: 就是先排序,然后对每个取最小的结束时间。#include using namespace std;typedef long long LL;const int N=1e4+10;struct asd{ int x,y;};asd q[N];int n;bool cmp... 阅读全文