刷题表

刷题表

由于博主越来越懒 有时懒得写blog

于是决定 写个刷题表

记录部分简要题解


BZOJ 3152: [Ctsc2013]组合子逻辑

被题意杀了一波。。。题意传送门http://www.codevs.cn/wiki/solution/?problem_id=2028

做法就挺简单的 第一个一定要用 那么就直接搞 搞不完 就用他搞过的 继续搞

//感觉BJ题解杀了一波。。。

BZOJ 3133: [Baltic2013]ballmachine

首先 每次只取一个球 所以插入时一个个插复杂度不会爆炸!//BJ脑瘫了一波。。

之后就随便搞了 下落优先级一定 直接维护先搞哪个空闲点就行 用PQ可搞

BZOJ 2217: [Poi2011]Lollipop

http://blog.csdn.net/neither_nor/article/details/52247199

BZOJ 3017: [Usaco2012 Nov]Cow Breeds

用f[i]表示当前有i个左括号未匹配的方案数

dp转移就直接在每个括号推进来时候搞就行了 转移随便YY就就好

BZOJ 5127: [Lydsy12月赛]数据校验

虎题,显然一个区间满足条件当且仅当排序之后相邻两数之差<=1

BZOJ 3427: Poi2013 Bytecomputer

最后一定是-1-1-1000001111 猜结论或者YY下就行 之后就可以随便dp了

BZOJ 2337: [HNOI2011]XOR和路径

xor嘛 先拆位 之后 令f(i)表示在i处为1的概率 就会有如下的转移

f(i)= ∑[e(i,j).val==0]*f(j)/outdegree(i)+∑[e(i,j).val==1]*(1-f(j))/outdegree(i)

高斯消元搞一搞就好了

BZOJ 4818: [Sdoi2017]序列计数

首先思想应该是去掉素数限制 之后再减掉没有素数的

dp很好想 式子就不写了 之后呢 优化的话 可以用矩乘 O(lognp^3)

但是它还有更好的优化方法 每次转移时是 p^2 的 所以直接倍增优化 每次爆乘

BZOJ 4870: [Shoi2017]组合数问题

做完了才意识到 这tm是去年省选题啊... 竟然毫无印象 当时拿了60还是70...

真是大水题啊... 只要放弃推式子 试一试dp 你就可以A掉了...

矩乘做法太low了 来说一下dp倍增的优化方式

这个东西是满足结合律的 (大雾

按其他blog的说法就是 有 f[n][] 就可以求 f[2n][]

// 理解成每次枚举前/后n个选几个

所以就有一个类似卷积的式子 每次暴力乘 O(lognk^2)

UPD: 这个东西确实是结合律 本质是多项式相乘 (A*B)*B=A*(B*B)

BZOJ 3029: 守卫者的挑战

O(n^3)dp显然... n那个唬人的范围根本无卵用啊...

BZOJ 1195: [HNOI2006]最短母串

不想写code了 写个题解算了...

f[s][j] 表示状态为 s 最后一个为 j 的最小代价

至于字典序 可以记 g[s][j] 维护该状态的串

也可以爆搜剪枝 先随便dp得到的答案剪掉字典序比它大的 还有用已知dp值剪掉最少加入字符数+现在字符数>最小代价的

BZOJ 1009: [HNOI2008]GT考试

这种题就该一眼秒掉 太显然了

f[i] 表示匹配 i 位的结果 每次填一个数的转移由m的next决定 kmp一下

之后矩乘优化dp就行了

BZOJ 2689: 堡垒

    考虑最外层的三角形 显然是选择靠内侧的两个点更优

    所以拓扑排序 每次更新度数为2的点就行了

    不过还有另一种做法

    找到一个最大独立集 之后减掉 弦图区间图应该可做 等这两天看看补补坑

BZOJ 4002: [JLOI2015]有意义的字符串

真是道劲题。https://www.cnblogs.com/rausen/p/4448713.html

BZOJ 2956: 模积和

这个应该是经典套路了吧,数论分块

BZOJ 5278: [Usaco2018 Open]Out of Sorts

这是一道智商题,BJ又不会。。。

题面是对数组双向冒泡排序,问几轮后有序。

记 M_i 表示前 i 个里在排序后有几个不在前 i 个里,取 M_i 最大值即为答案。

考虑模拟一遍,发现每个 M_i 不为0一定-1。




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值