A. Graph Coloring

答案为$1$很好判,为$2$只需要二分图染色,对于$3$,首先爆搜哪些边要染成第$3$种颜色,然后二分图染色判定即可。

B. Decimal Fraction

枚举前缀,那么只需要求出后面部分的最小循环节即可,将串翻转之后进行KMP,循环节长度$=i-next[i]$。

时间复杂度$O(n)$。

C. Teams of Equal Power

首先将球员按能力值从大到小排序,假设一队的队长能力值比二队队长高,那么显然一队队长只能是第一个人,枚举二队队长,然后看看后面是否存在合法方案即可。

判断合法,可以设$f[i][j]$表示用$[i,n]$这些人能否组成能力值之和为$j$的队伍,可以用bitset加速。

时间复杂度$O(\frac{n^3}{64})$。

D. Hexagon

轮廓线DP,设$f[i][j][S]$表示考虑到$(i,j)$这个三角形,轮廓线上的匹配情况为$S$的方案数,然后打表即可,注意去掉冗余的状态。

E. Maximal Matching

建图:$S$向左边每个点连边,费用为点权,流量为$1$;右边每个点向$T$连边,费用为点权,流量为$1$;左边的点向能匹配的右边的点连边,费用为$0$,流量为$1$,那么答案就是这个图的最大费用流。

注意到与$S$和$T$相连的边费用非负,且中间的边费用都是$0$,第一次增广后,左右那两条边费用取负,中间的$0$权边反向,因为左右两条边与源汇连接,所以以后最长增广路必然不会经过它,可以删除。而对于中间的$0$权边来说,将它们按强连通分量合并后增广路不变,所以可以如此缩成DAG,就可以每次在$O(n+m+e)$的时间内找到增广路。

时间复杂度$O(e(n+m+e))$。

然后不想写,写个裸费用流居然A了。

F. Right Turn Only

按题目要求分类讨论即可。

G. Similar Strings

$O(2^k)$枚举串中哪些位置必须匹配,算出Hash值,相同的Hash值的串之间可以互相更新答案。

时间复杂度$O(2^kn\log n)$。

H. Traffic Lights

留坑。

I. Triple Connections

区间DP,细节很多,留坑。

XIII Open Cup named after E.V. Pankratiev. GP of SPb的更多相关文章

  1. XIII Open Cup named after E.V. Pankratiev. GP of Ukraine

    A. Automaton 后缀自动机可以得到$O(2n+1)$个状态,但是后缀自动机会拒绝接收所有不是$S$的子串的串,所以在建立后缀自动机的时候不复制节点即可得到$n+1$个状态的DFA. #inc ...

  2. XIII Open Cup named after E.V. Pankratiev. GP of Asia and South Caucasus

    A. RPG 首先计算出每个技能对于每个属性值的可行区间,若区间为空则不合法. 枚举两个技能,以及每个属性值,根据区间的关系可以得到哪个必须要在另一个之前学,连边看看是否有环即可. 时间复杂度$O(n ...

  3. XIII Open Cup named after E.V. Pankratiev. GP of Azov Sea

    A. Freestyle 如果逆序对为$0$,那么先手必败. 因为每次只能翻转长度为$4k+2$和$4k+3$的区间,所以每次操作之后逆序对的奇偶性一定会发生改变. 因此如果逆序对个数为偶数,则先手必 ...

  4. XIII Open Cup named after E.V. Pankratiev. GP of America

    A. Explosions 注意到将炸弹按坐标排序后,每个炸弹直接引爆和间接引爆的都是连续的一段区间,因此只需要求出每个炸弹能间接炸到的最左和最右的炸弹即可. 建立图论模型,炸弹$i$向炸弹$j$连单 ...

  5. XIII Open Cup named after E.V. Pankratiev. GP of Saratov

    A. Box Game 注意到局面总数不超过$50000$,而且每次操作都会改变石子的奇偶性,因此按奇偶可以将状态建成二分图,然后求出最大匹配. 如果状态数是偶数,那么先手必胜,策略就是每次走匹配边, ...

  6. XVII Open Cup named after E.V. Pankratiev. GP of SPb

    A. Array Factory 将下标按前缀和排序,然后双指针,维护最大的右边界即可. #include<cstdio> #include<algorithm> using ...

  7. XVI Open Cup named after E.V. Pankratiev. GP of SPB

    A. Bubbles 枚举两个点,求出垂直平分线与$x$轴的交点,答案=交点数+1. 时间复杂度$O(n^2\log n)$. #include<cstdio> #include<a ...

  8. XIV Open Cup named after E.V. Pankratiev. GP of SPb

    A. Bracket Expression 直接按题意模拟即可. 时间复杂度$O(n)$. #include<stdio.h> #include<algorithm> #inc ...

  9. XVIII Open Cup named after E.V. Pankratiev. GP of SPb

    contest Link A. Base i − 1 Notation solved by sdcgvhgj 238 求出a+b的2进制后从低位到高两位两位地转化为i-1进制 i-1进制的第2k位和第 ...

随机推荐

  1. Ubuntu自定义服务

    1.准备脚本 准备好一个bash服务脚本,包括start|stop|restart等参数,将脚本文件命名为“服务名”,拷贝到/etc/init.d/目录下. 2.添加服务sudo update-rc. ...

  2. IOS8下,百度地图无法定位解决办法

      通过在论坛中搜索,找到解决办法,我只是论坛的搬运工.分享如下:   1.在info.plist中加入: NSLocationAlwaysUsageDescription=YES NSLocatio ...

  3. notifyDataSetInvalidated和notifyDataSetChanged有什么区别

    notifyDataSetChanged方法通过一个外部的方法控制如果适配器的内容改变时需要强制调用getView来刷新每个Item的内容.public void notifyDataSetChang ...

  4. poj1733(种类并查集+离散化)

    题目链接: http://poj.org/problem?id=1733 题意: 输入n表示有一个长度为n的0,1字符串, m表示接下来有m行输入, 接下来的m行输入中x, y, even表示第x到第 ...

  5. 使用C与C++混合编程封装UDP协议

    引入头文件,导入lib文件 #include <stdio.h> #include <stdlib.h> #include <string.h> #include ...

  6. Delphi版本顺序

    1.02.03.04.05.06.07.08.0200520062007 现在应该又出新的版本了

  7. 无废话ExtJs 入门教程四[表单:FormPanel]

    无废话ExtJs 入门教程四[表单:FormPanel] extjs技术交流,欢迎加群(201926085) 继上一节内容,我们在窗体里加了个表单.如下所示代码区的第28行位置,items:form. ...

  8. log4j设置日志格式为UTF-8

    想要log4j输出的日志文件的编码格式为UTF-8.正常情况下只需要添加下述的代码即可: log4j.appender.appender_name.Encoding=UTF-8 但是在spring与l ...

  9. js注入

    1.JavaScript注入就是在浏览器地址栏中输入一段js代码,用来改变页面js变量.页面标签的内容. 使用Javascript注入,用户不需要关闭或保存网页就可以改变其内容,这是在浏览器的地址栏上 ...

  10. IBM AppScan 安全扫描:支持弱 SSL 密码套件 分类: 数据安全 2014-06-28 11:34 1844人阅读 评论(0) 收藏

    问题描述: ​ 解决方法: 1.Server 2008(R2) 根据appScan的修订建议访问地址:http://msdn.microsoft.com/en-us/library/windows/d ...