T1是个容斥,我掐手指一算他为了卡容斥的正确性,绝不会把n和m出的很相近($O(n^2)$算法在nm相等的时候达到最高时间复杂度),不然就太好做了,于是开了特判+各种卡常和滚动数组优化,卡到了70分,$n^2$过100000,暴力碾标算。T2十三分钟AC没啥说的,也就是审题吧。大概是个flag了。T3的话自以为状压拿了50,看来是我太天真了。WA了10分,QJ的另外10分没拿到noooooooo。其实是题意理解有偏差。

T1想了好久组合数没有想到,T2直接秒掉,T3打了半天废的,大概这就是命吧,下次目标就是A掉T1,(这么多场从没A过T1。。)

下面是题解:

T1:考虑大力容斥,考场上一直在想怎么挖掉dp的一维,最终发现不可挖,就直接过了,没有想容斥,其实挺好想的。

$ans=C_{m-n+n-1}^{n-1}+\sum \limits_{i=1}^{min(n,m/K)}(-1)^iC_{m-n+(n-1)-iK}^{n-1}C_n^i$

$ans=C_{m-1}^{n-1}+\sum \limits_{i=1}^{min(n,m,K)}(-1)^iC_{m-1-iK}^{n-1}C_n^i$

O(m)容斥既可。

T2:老套路建反图Tarjan缩点+拓扑+dp即可。

设$dp[i]$为第i个的SCC完全被轰炸所需要的时间。

$dp[i]=\max \limits_j^{e(i,j)} dp[j]+sz[i]$

$ans=\max \limits_{i=1}^{n} dp[i]$

T3是个神仙dp,是真的神仙。

看了标程序才弄明白。

大体思路是用一个类似背包的东西把n个人的贡献压到一起,真正做到了一个数组来表现n个人除了多少个剪刀石头布的意义,同时用下一次的决策来统计答案,在最后错排来达到压在一起之后的离散,从而乘上正确的概率。

具体来说,将状态$i,j,k$分成两种,已经确定当前次的决策的和未确定当前次决策的,一个已确定决策的可以由未确定状态的当前阶段状态转移过来,同时也可以由相同决策的较低阶段状态转移过来。

前者的转移直接乘上当前人的概率即可,表示这个人作为当前的决策士兵来转移;后者的转移表示的是当前士兵作为之前某一阶段的士兵插在当前决策的前面,所以用相同决策的上一阶段状态来转移。这是理性的理解。

感性理解一下,一个状态可以由他之前的所有状态转移而来,当前阶段的无决策状态转移到我身上毫无疑问,而那些同决策上一阶段的状态转移到我身上,其实也是转移到他们身上的上一阶段无决策状态借此机会转移到了我身上,而他们身上的状态其实是无状态的转移“前缀和”,所以当前这个状态通过一系列的转移最终的到了各个阶段的无决策状态的转移。

  理解的快感,让我难以自拔。

「2019.8.9 考试」神仙的dp总让人无所适从的更多相关文章

  1. 「2019.8.11 考试」一套把OI写的很诗意的题

    这次写的更惨了,T2暴力再次挂掉了. 先写了T1的75暴力,然后写了T2的70分暴力(挂成了25),T3啥也不会骗了12分.T3看完题一点思路没有,心态爆炸了,一直在观察数据,忽略的思考的重要性,以至 ...

  2. 「2019.7.22 考试」AC和WA0一步之遥

    这卷子还是答的挺惨的. 第一题5min写完了,自认为AC(其实WA了80),第二题推了半天CRT的公式老出错结果发现是程序打错了.第三题打模拟150行结果数组没开够,开大就是0->60的转变.状 ...

  3. LOJ #2731. 「JOISC 2016 Day 1」棋盘游戏(dp)

    题意 JOI 君有一个棋盘,棋盘上有 \(N\) 行 \(3\) 列 的格子.JOI 君有若干棋子,并想用它们来玩一个游戏.初始状态棋盘上至少有一个棋子,也至少有一个空位. 游戏的目标是:在还没有放棋 ...

  4. #507. 「LibreOJ NOI Round #1」接竹竿 dp

    题目: 题解: 我们考虑把每对花色相同的牌看作区间. 那么如果我们设 \(f_i\) 表示决策在 \([1,i]\) 内的最优答案. 那么有 \(f_i = max\{max\{(f_{j-1}+\s ...

  5. LibreOJ #507. 「LibreOJ NOI Round #1」接竹竿

    二次联通门 : LibreOJ #507. 「LibreOJ NOI Round #1」接竹竿 /* LibreOJ #507. 「LibreOJ NOI Round #1」接竹竿 dp 记录一下前驱 ...

  6. LOJ #6436. 「PKUSC2018」神仙的游戏(字符串+NTT)

    题面 LOJ #6436. 「PKUSC2018」神仙的游戏 题解 参考 yyb 的口中的长郡最强选手 租酥雨大佬的博客 ... 一开始以为 通配符匹配 就是类似于 BZOJ 4259: 残缺的字符串 ...

  7. WAIC | 奇点云携「酷炫AI应用」亮相2019世界人工智能大会

    你是否还在疑惑“人工智能可否改变世界?” 那么,你该有一些危机感了. 机器视觉.自然语言处理.智能语音.机器人问诊.智慧驾驶……这些AI技术及应用早已渗入了我们日常生活的点滴. 29日,以「智联世界, ...

  8. kettle并行运行时出现「Unknown error in KarafBlueprintWatcher」

    背景:在使用kettle 6进行大量数据并行抽取时,偶尔会出现「Unknown error in KarafBlueprintWatcher」的错误,详细的报错信息可以查看下面的代码块. ERROR: ...

  9. 面试必备:高频算法题终章「图文解析 + 范例代码」之 矩阵 二进制 + 位运算 + LRU 合集

    Attention 秋招接近尾声,我总结了 牛客.WanAndroid 上,有关笔试面经的帖子中出现的算法题,结合往年考题写了这一系列文章,所有文章均与 LeetCode 进行核对.测试.欢迎食用 本 ...

随机推荐

  1. js模拟下拉菜单-键盘、鼠标(代码详解)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. 【主动学习】Variational Adversarial Active Learning

    本文记录了博主阅读ICCV2019一篇关于主动学习论文的笔记,第一篇博客,以后持续更新哈哈 论文题目:<Variational AdVersarial Active Learning> 原 ...

  3. Solidity 编程实例--Blind Auction 盲拍

    接下来扩展前面的公开拍卖成为一个盲拍.盲拍的特点是拍卖结束以前没有时间压力.在一个透明的计算平台上创建盲拍系统听起来可能有些矛盾,但是加密算法能让你脱离困境. During the bidding p ...

  4. 利用 turtle库绘制简单图形

    turtle库是python的基础绘图库,这个库被介绍为一个最常用的用来介绍编程知识的方法库,其主要是用于程序设计入门,是标准库之一,利用turtle可以制作很多复杂的绘图. turtle名称含义为“ ...

  5. Be Nice!要善良

    [1]  It is nice to be important, but it is more important to be nice. [2]  What simple act of kindne ...

  6. SVN应用

    一:从服务器上down资料 1.在电脑上安装SVN客户端 2.在电脑本地创建个文件夹作为版本库 3.进入xfssvn文件夹右击鼠标选择SVN Checkout或SVN Update 4.输入服务器中配 ...

  7. .Net Core3.0使用gRPC

    gRPC是什么 gRPC是可以在任何环境中运行的现代开源高性能RPC框架.它可以通过可插拔的支持来有效地连接数据中心内和跨数据中心的服务,以实现负载平衡,跟踪,运行状况检查和身份验证.它也适用于分布式 ...

  8. Mac部署hadoop3(伪分布式)

    环境信息 操作系统:macOS Mojave 10.14.6 JDK:1.8.0_211 (安装位置:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jd ...

  9. PHP stream_wrapper_register

    <?php /** * 引用:http://php.net/manual/en/function.stream-wrapper-register.php * 把变量当成文件读写的协议 * * C ...

  10. PMP涉及的几个工作系统

    PMP涉及的几个工作系统   工作系统作为事业环境因素,提高或限制项目管理的灵活性,并可能对项目结果产生积极或消极影响,包括项目管理系统.项目管理信息系统PMIS.配置管理系统.变更控制系统.合同变更 ...