摘要:
20210820 eriri 先去 \(i\) 比 \(j\) 更加优秀,就需要满足: \((a_it+b_i+1)*a_j\leq(a_jt+b_j+1)*a_i\) 即 \((b_i+1)*a_j\leq(b_j+1)*a_i\) 我们先对所有商店进行这样的排序,然后实际情况就在序列中。 当没有 阅读全文
摘要:
CF1552 A: 不多说了。。。 #include<bits/stdc++.h> using namespace std; int t; int a,b; int main() { cin>>t; while(t--){ cin>>a>>b; cout<<a*b<<endl; } return 0 阅读全文
摘要:
CF1553 \(A\) , \(B\) 先不谈,我们先谈谈 \(C\) 的问题。 #\(C\) 状态# C: 本题数据很小,可以考虑状压枚举,从0000000000到1111111111挨个尝试。 如何判断至少比几局呢?可以利用贪心的思想,从左到右把分加给双方,对于每一个位置,如果一方剩下全赢对方 阅读全文
摘要:
fhq Treap 引入: 平时的 \(treap\) 又长又需要旋转,而且不能求区间序列问题 因此我们用 \(fhqtreap\) 解决。 数组定义: int ch[MAXN][3];//0 左孩子,1右孩子 int val[MAXN];//每个点的权值 int rnd[MAXN];//每个点的随 阅读全文
摘要:
二叉查找树 引入: 平衡树的基础就是二叉寻找树。 首先看一下这个二叉树: 假如说查询第 \(n\) 大的值,那么排序时间复杂度爆炸。 如果我们用上这棵树,就可以在 \(O(\log n)\) 的时间内查找,并且 \(O(\log n)\) 修改,\(O(1)\) 连边。 实现过程: 函数定义: st 阅读全文
摘要:
四边形不等式 引入: 动态规划中,经常遇到形如下式的状态转移方程: \(m(i,j)=min {m(i,k-1),m(k,j)}+w(i,j)(i≤k≤j)(min也可以改为max)\) 上述的 \(m(i,j)\) 表示区间 \([i,j]\) 上的某个最优值。\(w(i,j)\) 表示在转移时需 阅读全文
摘要:
分数规划: 定义: 给定整数 \(a_i,b_i\),规定 \(w_i=0/1\) ,存在一组解 \({w_i}\),使得 \(\displaystyle \frac{\sum_{i=1}^{n} a_iw_i}{\sum_{i=1}^{n} b_iw_i}\) 最大。 解决: 这颗式子可以转化成: 阅读全文
摘要:
半平面交 定义: 半平面: 顾名思义,就是平面的一半。一条直线会把平面分成两部分,就是两个半平面。对于半平面,我们可以用直线方程式如:\(ax+by>=c\) 表示,更常用的是用直线表示。 半平面交: 顾名思义,就是多个半平面求交集。其结果可能是一个凸多边形、无穷平面、直线、线段、点等。 多边形的核 阅读全文
摘要:
P3829 [SHOI2012]信用卡凸包 这题是个非常好的用来练手凸包的题目。 题意: 给定几个旋转后的顶点是半径为 \(r\) 的类似矩形,让你求出能包含所有矩形的多边形的边长。 解题思路: 一眼就是凸包问题,关键是怎么转换成正常的凸包。 我们从第三个样例开始分析: 首先可以做出来图: 然后进一 阅读全文