51nod算法马拉松25

A:将1~n放入n个位置,问有多少种方案使得按照题目给出的寻找m的二分程序最终找到的位置是k可以模拟题目的二分程序,最后的位置是k,那么有log个位置的值和m的大小关系就确定了,算先放这些位置的方案数,剩下的位置放什么都行,有(n-log)!种方案 因为n的值很大,所以算阶乘可以分段打表B:给出n个数字,问用这n个数字组成的序列有多少种满足相邻两项差的绝对值小于1首先排序,如果值不是连续的就一定无...
阅读(46) 评论(0)

Codeforces 812

A 判断会不会撞到人 判一下有人走的路有没有车经过就行了 B n*(m+2)的矩形,一开始在左下角,移动一格需要1的时间,关灯不需要时间,两端可以上楼 问关掉所有的灯最少需要的时间 DP一下到第i层左端点和右端点的最短时间 细节注意一下(比如某层楼上面的楼层都不需要关灯了就可以停下来了) C 每个物品有编号xi和花费ai 若买了n个物品...
阅读(31) 评论(0)

bzoj4527: K-D-Sequence

先特判d=0的情况 然后对于d≠0: 若a[i]和a[i+1]的差不是d的倍数,即a[i]和a[i+1]在模d下不等,那么他们肯定不会在同一个kd串中,将中间断开 于是得到了若干个原串的子串数列中不能有相同的数(还是挺好处理的吧),下文的叙述省略了数列中有相同的数的处理因为每个串内的数在模d下相同,所以先将他们全部/d(这样方便处理) 因为l~r中没有相同的数,那么这个数列若要成为kd数列,...
阅读(49) 评论(0)

GDOI2017游记

真的要盲了Day0: 上午方的不行,看了一遍洲阁筛,感觉出了可能也不太会做= =,于是跑去复SAM,做了一道模板题,然后就翻着各种板子看 下午在车上睡了3h….Day1: 进考场喜闻乐见的发现评测环境有问题,不能用gdb,虽说后来还是解决了 今年的题目感觉画风比去年正常.. 看T1,看完后,子串相关?感觉….是个SAM?常数好像不太行,不管了先跳T2(怎么旁边的dalao已经开始打了…我刚...
阅读(160) 评论(0)

BZOJ3442: 学习小组

最小费用最大流 源连向每个学生流量为k,费用为-Fi 每个学生连向他能去的学习小组,流量为1,费用为0 每个学习小组的支出费用与参加的人数平方相关,所以拆边连向汇(类似石头剪刀布),拆出n条边代表参加的人数为1~n时增加的支出,因为最小费用,所以总是会先选小的边,比如第i条边,选的时候1~i-1一定已经流满了,那这时i的贡献为 C∗i2−C∗(i−1)2=C∗(2∗i−1)C*i^2-C*(...
阅读(67) 评论(0)

BZOJ4205: 卡牌配对

大胆使用渐进复杂度较高的算法… 最大流 要求至多1个属性互质即至少2个属性不互质 设立三类节点(a,b),(a,c),(b,c)代表这两项不互质,枚举a,b,c不互质的公共质因子,因为200以内质数不多,所以大概也就50*50*3个节点 然后每个节点和这三类节点,相符合的话就连边流量1,X类在左边,Y类在右边 源连X类流量1,Y连汇流量1code:#include #includ...
阅读(36) 评论(0)

BZOJ4663: Hack

最小割 要求0-n-1的每一条路径上有且仅有一条被控制的边 正常情况下跑最小割,每条路上是只会割一条的,但是有些非正常情况 要不你们看这篇?这篇有图… 然后…我不知道为什么要这样建图,是怎么想的(有人会了告诉我一声?)…..但是这样建图是对的..因为它能避免所有非法情况… 只处理起点能到的点,最后答案超过inf即无解(终点在环内)code:#include #include<ma...
阅读(40) 评论(0)

BZOJ3482: [COCI2013]hiperprostor

询问不多可以当单次询问做 对于一条A到B的路径,若上面有a条特殊边,他的长度就为ax+b 先将特殊边长视为0,求出f[x][t]表示A到t,走了x条特殊边的最短路 那么A->B=a*x+f[a][B],这些路径的长度对应平面上的若干条直线,a就是这些直线的斜率 如果不存在f[0][B]就有无限种可能值,因为没有上界 否则维护一个凸包就可以求出所有最短路的可能值了code:#include<...
阅读(94) 评论(0)

BZOJ2753: [SCOI2012]滑雪与时间胶囊

可以发现要求的是一个有向图的最小生成树 但这个有向图满足一个特性,即边都是从高的点连向低的点或相同高度的点 直接按无向图用kruskal之所以不行,是因为会出现下图情况 先访问了a->b,再访问c->b且此时c不在最小生成树中,那这条有向边本来无法拓展,但被当作无向边拓展了 于是考虑避免这种情况,先只处理起点能到达的节点,然后将边按终点高度第一关键字排序,边权为第二关键字排序,就可以避免...
阅读(60) 评论(0)

BZOJ2709: [Violet 1]迷宫花园

二分v(上下移动花费)的值,跑最短路验证code:#include #include #include #include #include #include #include #include #include #include #include...
阅读(52) 评论(0)

BZOJ2039: [2009国家集训队]employ人员雇佣

经典最小割 先将所有收益E加到答案 源代表不雇佣,汇代表雇佣 每个点向汇连边流量为雇佣价格对于每对关系i,j之间, 如果两个都不雇佣,损失为2e 如果雇佣i不雇佣j,损失为fi(雇佣花费)+2e 如雇佣j不雇佣i,损失为fj+2e 两个都雇佣,损失为fi+fj于是源向i,j连边流量为ei,j i向j,j向i连边,流量为2ecode:#include #include<map...
阅读(38) 评论(0)

BZOJ2007: [Noi2010]海拔

首先最优解一定可以是左上的一片区域海拔为0,右下的一片区域海拔为1 证明的话,如果有很多小数的话,对于一个海拔为小数的格子,他的海拔变成相邻的格子中的一个的海拔,一定不比原来劣,那么对于海拔相同的,连在一起的格子视为一个块,这个块的海拔若是小数,他仍然可以按上文的方式合并到其他块,最后只剩一块0和一块1(为什么0和1不能合并?能合并当然好但是题目规定了两个点的海拔)然后花费就来自于0和1的分界线,...
阅读(59) 评论(0)

BZOJ1927: [Sdoi2010]星际竞速

每个点到达恰好一次,相当于出度入度都为1 最小费用最大流 源连出度,入度连汇,费用0 源向入度点连边,费用为跳过去的花费 出度点向能到达的入度点连边,费用为走航道的花费 流量都为1code:#include #include #include #include #include #include #include<...
阅读(50) 评论(0)

BZOJ1221: [HNOI2001] 软件开发

经典餐巾问题 最小费用最大流 每天拆成两个点代表出入度,左边点出度代表每天用完的毛巾的去向,右边点入度代表每天毛巾的来源, 源向左边每个点连边流量为这一天用掉的毛巾,费用0, 左边的点i可以向右边的i+a+1连边流量inf,费用fA,i+b+1连边流量inf,费用fB,代表这天用完后的毛巾消毒后拿到这一天用, 每天用完的毛巾可以不消毒堆积到下一天,所以左边的点i向i+1连边流量inf,费用...
阅读(54) 评论(0)

BZOJ1237: [SCOI2008]配对

将两个数列排序后,可以发现对于序列A中的Ai,和他匹配的Bj满足abs(i-j)<=2 然后可以直接状压,f[i][j]表示匹配完第i个,Bi-1~Bi+2的状态 code:#include #include #include #include #include #include #include #inc...
阅读(74) 评论(0)
243条 共17页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:65134次
    • 积分:3005
    • 等级:
    • 排名:第10906名
    • 原创:239篇
    • 转载:0篇
    • 译文:0篇
    • 评论:10条