- 博客(9)
- 收藏
- 关注
原创 hdu 1007 Quoit Design
阅读了一下平面最近点对的姿势,直接找了一道裸题来做。看完姿势的时候,我一直想不通合并时要怎么实现只考察最近6个点。。其实看了一下其他人的代码,好像都没有写只考察6个点。另外,每次合并,都要进行一次排序,那么它的真正复杂度是不是nlognlogn呢。。不管怎么样,比暴力快了许多。 #include #include #include #include #include #include
2015-07-29 21:08:08 384
原创 poj 1265 Area
网格点围成一个多边形,顶点都在格点上,求多边形内部格点数,边上格点数和面积。 运用叉积求有向面积加起来得到面积,最大公约数得到边上格点数,再根据pick定理(S=a+b/2-1)计算内部格点数。注意输出最好用"%f"不要用"%lf"。 #include #include #include #include #include #include #include #i
2015-07-28 20:42:18 342
原创 poj 1113 Wall
求凸包加上一个圆周长。弧形部分加起来肯定等于圆周,直线部分等于凸包。 看了姿势,手敲一个凸包,终于调过了。。凸包求完的时候,自动是顺时针序。 #include #include #include #include #include #include #include #include using namespace std; const int mod=1e
2015-07-28 07:37:41 341
原创 Codeforces Round #313 (Div. 1) A B C
A Gerald's Hexagon 水题,补成一个大三角形,然后减去缺的三个小三角形。 #include using namespace std; #define ll long long const int maxn=100010; int a[10]; int tb[3010]; int main(){ int delta=1; fo
2015-07-23 19:55:34 542
原创 hdu 5292 Pocket Cube
给一个二阶魔方的状态,可能安装错了,问是否可以还原。 作为一个Cuber,十分钟码出来怒拿此题FB。因为二阶魔方,可以做到交换任意两个块,所以块的位置是不用考虑的,只用考虑色向。因为黄白相对,考察黄白面的朝向,正确记为0,顺时针记为1,否则记为2,统统加起来能被3整除就是合法的。不要问我为什么,因为我是Cuber。 #include #include #include #
2015-07-21 20:09:43 1560 3
原创 Codeforces Round #311 (Div. 2) D
D Vitaly and Cycle 无向图,n个点m条边。问至少添加几条边,使得图有奇环(不能是单个点),有几种添加方法。 这里用到了一个很重要的定理:二分图没有奇环。给图染色判断是不是二分图。然后分类讨论。 #include using namespace std; #define ll long long const int m
2015-07-20 21:50:28 518
原创 Codeforces Round #312 (Div. 2) A B C D E
A Lala Land and Apple Trees 模拟。 #include using namespace std; #define ll long long pair a[110]; int main(){ int n; cin>>n; a[0]=make_pair(0,0); for(int i=1;i<=n;i++){ int x,y
2015-07-15 20:41:39 542
原创 hdu 5282 Senior's String
两个串x和y,它们的LCS长度为l,问x所有长度为l的子串中,有多少个y的子串(包括空串)。 dp。首先是求LCS,经典dp问题。然后再进行一次dp,ans(i,j)表示x前i个字符和y前j个字符的答案。状态转移是这样的,对于x的第i个字符,考虑取和不取两种情况。不取的情况比较简单,如果x的第i个字符对LCS没有贡献,那么就可以不取。如果要取x的第i个字符,找到y中前j个字符与之
2015-07-14 20:51:14 415
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人