自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

“NOIP2015跪了哈哈哈哈要成退役狗了哈哈哈哈”

  • 博客(21)
  • 收藏
  • 关注

原创 Codeforces Round #332 (Div. 2)

【A. Patrick and Shopping】 【题目大意】有三个点,给出两点之间的距离,求从A出发访问BC后返回A的最短路径。【分析】乱搞即可……对于我这种蒟蒻写出所有的情况最粗暴,第一次还没考虑全…… 代码:#include <cstdio>#include <algorithm>using namespace std;int main(){ int d1,d2,d3;

2015-11-26 19:35:52 619

原创 Codeforces Round #327 (Div. 2)

//A#include <cstdio>using namespace std;int main(){ int a,b,s; scanf("%d%d%d",&s,&a,&b); printf("%f",s*1.0/(a+b)*a);}//B#include <cstdio>#include <algorithm>using namespace std;char

2015-11-12 11:54:50 529

原创 【Codeforces】Testing Round #12

【A. Divisibility】 【题目大意】输出[a,b]中能被k整除的数。【分析】……我没看到负数…… 代码:#include <cstdio>#include <algorithm>using namespace std;int main(){ long long a,b,k; scanf("%I64d%I64d%I64d",&k,&a,&b); if

2015-11-12 11:26:37 652

原创 【算法杂谈】Dancing Link

Dancing Link是解决精确覆盖问题的最有效方法之一。精确覆盖问题:给定一个由0和1组成的矩阵,是否能找到一个行的集合,使得集合中每一列都恰好包含一个1? 例如,下面这个矩阵 就包含了这样一个集合(第1,4,5行)。我们把列想象成全集的一些元素,而行看作全集的一些子集;或者我们可以把行想象成全集的一些元素,而把列看作全集的一些子集;那么这个问题就是要求寻找一批元素,它们与每个子集恰好有一个

2015-04-07 20:18:09 1398

原创 【心情日志】ZJOI2015酱油记

这是一片心情日志,与算法无关,与题解无关。来了三年省选,每次都是酱油而归。 记得,第一次参加省选的时候。 屏幕上四个大字:难题选讲。 看见丽洁姐在上面挂着满脸(和谐)的笑容,指着那道只有两行描述的题目,说:这道题在世界上只有不超过十个人会做,你们有谁有想法吗?唉……那是年少不懂事,还认真把题目看了一遍。接下来么,第二题,他说:N=3(还是2?记不得了吧)的时候大家都会做吧,就是网络流嘛,不过现

2015-04-03 21:59:50 1504 2

原创 BZOJ3098: Hash Killer II

【题目描述】 这天天气不错,hzhwcmhf神犇给VFleaKing出了一道题: 给你一个长度为N的字符串S,求有多少个不同的长度为L的子串。 子串的定义是S[l]、S[l + 1]、… S[r]这样连续的一段。 两个字符串被认为是不同的当且仅当某个位置上的字符不同。VFleaKing一看觉得这不是Hash的裸题么!于是果断写了哈希 + 排序。 而hzhwcmhf神犇心里自然知道,这题就是

2015-03-26 19:11:57 727

原创 BZOJ2938: [Poi2000]病毒

【题目描述】 二进制病毒审查委员会最近发现了如下的规律:某些确定的二进制串是病毒的代码。如果某段代码中不存在任何一段病毒代码,那么我们就称这段代码是安全的。现在委员会已经找出了所有的病毒代码段,试问,是否存在一个无限长的安全的二进制代码。 示例: 例如如果{011, 11, 00000}为病毒代码段,那么一个可能的无限长安全代码就是010101…。如果{01, 11, 000000}为病毒代码

2015-03-25 20:28:20 828

原创 【字符串】KMP算法

如果机房马上要关门了,或者你急着要和MM约会,请直接跳到第六个自然段。——引用自Matrix67的博客什么是字符串匹配?就是在一个字符串中找一个子串,比如在“233333”里面找“233”,这会返回0(如果你的字符串是从1开始的,那么会返回1,我觉得没有人丧心病狂到字符串从2开始吧……→_→),但是你一定要在“pig”里面找“zzy”,那是找不到的。又比如,Matrix67这样说:“你可以委婉地问你

2015-03-23 21:10:47 534

原创 【字符串】Trie

Trie,又名字典树。 相信大家看过图之后大致应当已经了解Trie是个什么东西。 那么它有什么用呢: ①串的快速检索:对字典建树,沿边向下查找,时间复杂度O(len(s))。 ②串排序:建树时,很明显这棵树的每个结点的所有儿子都按照其字母大小排序。要进行排序只需进行先序遍历。 ③最长公共前缀:很明显最长公共前缀就是树根到他们最近公共祖先的树链,也就是到两个字符串分叉的节点。 ④作为某些其

2015-03-23 20:30:16 573

原创 BZOJ1007: [HNOI2008]水平可见直线

【题目描述】 在xoy直角坐标平面上有n条直线L1,L2,…Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为可见的,否则Li为被覆盖的. 例如,对于直线: L1:y=x; L2:y=-x; L3:y=0 则L1和L2是可见的,L3是被覆盖的. 给出n条直线,表示成y=Ax+B的形式(|A|,|B|<=500000),且n条直线两两不重合

2015-03-23 19:47:21 473

原创 【计算几何】半平面交

有向直线的定义:struct Line{ Point P;//直线上任意一点 Vector v;//方向向量,左边是对应的半平面 double ang;//极角。从x正半轴旋转到向量v所需要的角度(弧度) Line() {} Line(Point P, Vector v):P(P),v(v) { ang=atan2(v.y,v.x); } bo

2015-03-22 19:41:52 646

原创 【计算几何】多边形与凸包

多边形的面积计算:double PolygonArea(Point* p, int n) { double area=0; for (int i=1; i<n-1; i++) area+=Cross(p[i]-p[0],p[i+1]-p[0]); return area/2;}点在多边形内判定:double PolygonArea(Point* poly,

2015-03-21 15:14:08 550

原创 【计算几何】点和直线

直线的参数方程:P=P_0+tv P_0表示直线上一点,v表示方向向量,它的长度没有意义,t是参数。有这个我们很容易知道两点(A,B)直线方程:A+(B-A)t 这个方程不仅适用与直线。对于射线,t>0;对于线段,1>t>0.直线定义:struct Line { Point P; Vector v; Line (Point P=0, Vector v=0):P(P),v(v

2015-03-21 11:21:59 565

原创 【计算几何】点与向量的表示

来自大白书的模板:点的定义:struct Point{ double x,y; Point (double x=0, double y=0):x(x),y(y) { }};向量的定义:typedef Point Vector; //从程序的实现上定义与点一致四则运算:Vector operator + (Vector A, Vector B) { return Vector(A.

2015-03-21 11:06:51 1057

转载 【算法杂谈】计算几何题目推荐

//第一期计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很巧妙2.做计算几何题目,模板很重要,模板必须高度可靠。3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面大部分是模板。如果代码一片混乱,那么会严重影响做题正确率。4.注意精度控制。5.能用整数的地方尽量用整数,要想到扩大数据的方法(扩大一倍,或扩大sqrt2)。因为整

2015-03-19 21:02:14 1207

原创 BZOJ2657: [Zjoi2012]旅游(journey)

【题目描述】 到了难得的暑假,为了庆祝小白在数学考试中取得的优异成绩,小蓝决定带小白出去旅游~~ 经过一番抉择,两人决定将T国作为他们的目的地。T国的国土可以用一个凸N边形来表示,N个顶点表示N个入境/出境口。T国包含N-2个城市,每个城市都是顶点均为N边形顶点的三角形(换而言之,城市组成了关于T国的一个三角剖分)。两人的旅游路线可以看做是连接N个顶点中不相邻两点的线段。 为

2015-03-19 20:19:48 672

原创 BZOJ2656: [Zjoi2012]数列(sequence)

【题目描述】 小白和小蓝在一起上数学课,下课后老师留了一道作业,求下面这个数列的通项公式: A_0=0 A_1=1 A_2i=A_i(for any integer i>0) A_2i+1=A_i+A_i+1(for any integer i>0)小白作为一个数学爱好者,很快就计算出了这个数列的通项公式。于是,小白告诉小蓝自己已经做出来了,但为了防止小蓝抄作业,小白并不想把公式公

2015-03-18 21:14:19 774

转载 【算法杂谈】算法竞赛中数论相关

以下等式或者不等式均可以用数学归纳法予以证明!1 + 3 + 5 + ... + (2n - 1) = n^21*2 + 2*3 + 3*4 + ... + n*(n + 1) = n*(n + 1)*(n + 2) / 31*1! + 2*2! + 3*3! + ... + n*n! = (n + 1)! - 11^2 + 2^2 + 3^2 + ... + n^

2015-03-17 20:19:46 625 1

转载 【算法杂谈】算法艺术:Treap的“优美”写法

Treap有很多写法,今天研究了一下,觉得这种写法比较好(主要是代码比原来短多了): 如果是直接编的话,会比较烦,因为很多代码是对称的(对于旋转,插入,删除这些操作来说). 所以我们可以用0表示左,1表示右.那么son[0]是左儿子,son[1]是右儿子;Rotate(p,0)表示;左旋Rotate(p,1)表示右旋. 这样的话,很多对称的操作,都可以通过传递一个bool参数统一起来,就不用写

2015-03-17 20:11:04 924

原创 BZOJ2570: [NOI2000]算符破译

【题目描述】 考古学发现,几千年前古梅文明时期的数学非常的发达,他们懂得多位数的加法和乘法,其表达式和运算规则等都与现在通常所用的方式完全相同(如整数是十进制,左边是高位,最高位不能为零;表达式为中缀运算,先乘后加等),唯一的区别是其符号的写法与现在不同。有充分的证据表明,古梅文明的数学文字一共有13个符号,与 0,1,2,3,4,5,6,7,8,9,+,*,= 这13个数字和符号(称为现代算符

2015-03-17 20:05:02 1691

原创 BZOJ3519: [Zjoi2014]消棋子

【题目描述】 消棋子是一个有趣的游戏。游戏在一个r * c的棋盘上进行。棋盘的每个格子,要么是空,要么是一种颜色的棋子。同一种颜色的棋子恰好有两个。每一轮,玩家可以选择一个空格子(x, y),并选择上下左右四个方向中的两个方向,如果在这两个方向上均存在有棋子的格子,而且沿着这两个方向上第一个遇到的棋子颜色相同,那么,我们将这两个棋子拿走,并称之为合法的操作。否则称这个操作不合法,游戏不会处理这个操

2015-03-17 19:39:26 1298

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除