Codeforces
文章平均质量分 72
saucyJack
外科
展开
-
Codeforces Round #343 (Div. 2) C. Famil Door and Brackets(DP)
比赛期间有想到是dp,但是并没有写出状态转移方程..只好去看了一下网上的题解dp[i][j]表示前缀为i个字符且左括号数-右括号数j的最优解。则当j==0时,dp[i][j]+=dp[i-1][j+1];当j>=0时,dp[i][j]+=dp[i-1][j+1]+dp[i-1][j-1];先计算出字符串s的平衡度S,然后枚举p串的平衡度。p串从左向右看,q串从右向左看。当p原创 2016-03-02 15:04:25 · 204 阅读 · 0 评论 -
Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition) ABCD
传送门:http://codeforces.com/contest/673A:#include using namespace std;typedef __int64 ll;const int INF=0x3f3f3f3f;const int maxn=200005;int T,n,m;int a[maxn];int main(){ while(~scanf("原创 2016-05-08 15:06:21 · 375 阅读 · 0 评论 -
Yandex.Algorithm 2011 Round 2 D. Powerful array(莫队算法)
题意:给出一个由n个正整数形成的数组,t次询问,每次询问一个区间[l,r]内所有ks^2*s的和,ks为数s在区间内出现的次数。莫队算法讲解传送门:莫队算法详解个人觉得这个pdf讲得还是比较容易懂的,内附模版,修改一下add和remove酒很容易可以过这道题了。另外,需要注明的是,用__int64开数组会爆内存,用longlong才可以,表示很无语。#include #inclu原创 2016-04-26 16:11:13 · 341 阅读 · 0 评论 -
Codeforces Round #340 (Div. 2)E - XOR and Favorite Number(Mo's algorithm)
题目链接:http://codeforces.com/contest/617/problem/E题意:有一个大小为n的数组,m次询问,查询区间[l,r]中点对(i,j)满足l思路:利用xor的性质,很容易得到sum[i-1]=sum[j]^k,所以cnt[sum[i-1]]=cnt[sum[j]^k],我们只需要纪录sum[j]^k的数量即可。不过对于左边界,要注意先进行cnt--,因为一原创 2016-04-26 21:17:18 · 247 阅读 · 0 评论 -
Codeforces Round #350 (Div. 2) ABCDE
传送门:http://codeforces.com/contest/670A(写的很啰嗦...):#include using namespace std;typedef long long ll;const int INF=0x3f3f3f3f;const int maxn=1000005;int T,n,m;int main(){ while(~scanf("原创 2016-05-06 19:59:45 · 593 阅读 · 0 评论 -
Codeforces Round #353 (Div. 2) ABCD
传送门:http://codeforces.com/contest/675A:#include #include #include #include #include #include using namespace std;const int INF=0x3f3f3f3f;const int maxn=30;int T,n;int a,b,c;int m原创 2016-05-17 23:30:25 · 224 阅读 · 0 评论 -
Codeforces Round #352 (Div. 2) ABCD
传送门:http://codeforces.com/contest/672A:数据太小,直接打表过...#include using namespace std;typedef __int64 ll;const int INF=0x3f3f3f3f;const int maxn=10005;int T,n,m;string str="123456789101112原创 2016-05-12 13:52:14 · 395 阅读 · 0 评论 -
Codeforces Round #339 (Div. 2)C. Peter and Snow Blower(简单几何)
题意:给出一个圆心,圆心连接一根线,线的另一端是一个多边形,现在将多边形绕着圆心旋转一圈,求扫过的面积。思路:离圆心最远的点必然是某一个顶点,但是离圆心最近的距离不一定在顶点上,可能是某一边上的某一点。根据该三角形是否为钝角三角形判断,如果是,则选取两个顶点到圆心最近的距离作为最小距离,否则计算该三角形的高作为最小距离。计算方式可以根据海伦公式求出面积,然后利用三角形面积公式H=2*s原创 2016-03-08 23:08:08 · 292 阅读 · 0 评论 -
Codeforces Round #338 (Div. 2)B. Longtail Hedgehog(DP)
题意:有n个点,连接点画出刺猬的尾巴和刺,尾巴是由多个严格递增的点组成的线段,从该尾巴上选取一点,该点所连接的其余线段视为刺猬的刺,现在给出m条线段,每条线段连接两个不同的点,求出尾巴长度x刺的长度的最大值。即求某点的长度x深度的最大值。dp[i]表示到i点最长的长度值len,记录i点的深度d,所求即为max(len x d);扫描与i相连的且小于i的所有点即可;状态转移方程即原创 2016-03-09 15:05:12 · 464 阅读 · 0 评论 -
Codeforces Round #340 (Div. 2)C. Watering Flowers(暴力)
题意:在笛卡尔坐标系中给出n个点和两个圆心坐标,以两个点为圆心画圆,要求所画的圆能够覆盖坐标系内所有的点,求r1^2+r2^2的最小值;思路:先计算出所有点到第一个圆心的距离,然后以此为半径,直接枚举。需要注意的是范围大于int#include#include#include#include#includeusing namespace std;typedef lon原创 2016-03-07 09:02:46 · 255 阅读 · 0 评论 -
Codeforces Round #341 (Div. 2)C. Wet Shark and Flowers(数学期望)
题意:输入n,p,给出n个区间【l,r】,从每个区间各取一个数,如果相邻两个数的乘积为p的倍数,则每个sharks可以得到1000费用看,求最终的数学期望。首先计算每个区间选出的数为p的倍数的概率(因为p是质数,所以如果两个数的乘积为p的倍数,则两个数中至少有一个数为p的倍数)然后计算相邻区间至少有一个数为p的倍数的概率,最后乘以2000即为所求数学期望。#include#i原创 2016-03-05 13:31:06 · 252 阅读 · 0 评论 -
Codeforces Round #343 (Div. 2) D. Babaei and Birthday Cake(线段树+dp)
官方题解:首先,我们计算每个蛋糕的体积: vi=π∗hi∗r2i现在,考虑序列 v1,v2,v3,…,vn :问题的答案是这个序列中递增子序列的最大和。我们怎么样解决它?首先去掉小数,我们可以定义一个新的数组 a1,a2,a3,…,an,ai=vi/π=hi∗r2i们考虑 dpi是以 ai结束的序列和的最大值且 dpi=max(ai,maxj这个问题的答案就是: π∗m原创 2016-03-02 22:56:52 · 366 阅读 · 0 评论