2015年四川省赛

A,E,I,J sb题

B 数学题

对于两个数\(A,B\)相加,第i位数是否进位取决于\(A%10^i+B%10^i\)是否大于\(10^i\).
代码:http://paste.ubuntu.com/24714109/

C 字符串匹配

  • 难得写一篇题解
  • 大体思路是用看毛片算法
  • 当场想的算法请戳这里
  • 逻辑很好的栈请戳这里
  • 字符串哈希(待补)
  • 字符串链表(待补)

D Vertex Cover[WQF补]
传送门
dfs+剪枝
一般图的最小点覆盖问题是是一个npc问题。但是这题有一点特殊的地方,每条边必定包含前面30个点的的一个,所以这题可以枚举钱30个点的选和不选的状态,后面的点对应的状态就唯一了。
代码

F dp+树状数组

  • 枚举数值为perfect的点,然后顺序构造一个新的数组没有perfect数。然后题目就变成了求和最大的非递增/非递减序列。另设两个\(dp\),很显然\(dp\)\(O(n^2)\)的。可以利用树状数组来更新\(dp\)值。(套路是根据原序列的值作为\(BIT\)的下标取值)
  • 最后的答案需要枚举分割点。

G 二分图 关键点在这句: “Luckily, frogs can be divided into 2 groups such that no two frogs in the same group dislike each other.”说明这张图可以构造出二分图,所以 对这个图黑白染色。再开始建网络流的边。
1.每个点拆为Ai和Bi,Ai→Bi权值Wi.
2.若一个点为黑色,不能喝红茶则S→Ai,不能喝绿茶则Bi→T,容量都是INF。
3.若一个点为白色,不能喝红茶则Bi→T,不能喝绿茶则S→Ai,容量都是INF。
4.对每一条矛盾边,Bi→Aj,Bj→Ai,容量INF。
然后就是求最小割
WQF代码

H 完备匹配的最小字典序

posted on 2017-05-30 15:57  ACGO  阅读(250)  评论(0编辑  收藏  举报

导航