题目传送门:P10884 [COCI 2017-2018#2] San

看下标签

COCI(克罗地亚) 2017

比我小4年的题

—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

硬肝的分割线

分析

定义 dp[i][j] 表示从第 i 栋楼开始,获得至少 j 个金币的方案数。

初始时,dp[i][j] = 1 当且仅当 G_i \geq j。

然后,我们可以从右往左依次计算每个 dp[i][j] 的值。

对于当前的 dp[i][j],我们需要计算它的子问题 dp[k][j] 的值,并累加到 dp[i][j] 上。其中,k > i 且 H_k \geq H_i。

最终,我们要求的答案就是 dp[1][K] 的值

时间复杂度就是是 O(N^2K)

为什么博客园不支持Latex!好难受啊

Code

#include<bits/stdc++.h>
using namespace std; long long mx[45];
long long way[45];
int n;long long K; struct Build
{
int h,v;
}edge[45]; long long ans;
void dfs(int now,long long tot)
{
if(tot>=K) {ans+=way[now];return ;}
if(now==n+1) return ;
for(int i=now+1;i<=n;i++)
{
if(edge[i].h>=edge[now].h)
{
if(tot+mx[i]<tot) continue;
dfs(i,tot+edge[i].v);
}
}
} int main()
{
scanf("%d%lld",&n,&K);
for(int i=1;i<=n;i++) {scanf("%d%d",&edge[i].h,&edge[i].v);}
mx[n]=edge[n].v;way[n]=1;
for(int i=n-1;i>=1;i--)
{
for(int j=i+1;j<=n;j++)
{
if(edge[i].h<=edge[j].h) mx[i]=max(mx[i],mx[j]),way[i]+=way[j];
}
mx[i]+=edge[i].v;way[i]++;
} for(int i=1;i<=n;i++)
dfs(i,edge[i].v); printf("%lld\n",ans);
return 0;
}

AC记录

为什么是120分啊

P10884 [COCI 2017-2018#2] San的更多相关文章

  1. MyEclips 2017/2018 (mac 版)安装与破解

    MyEclips 2017/2018 (mac 版)安装与破解 现在在学J2EE,然后使用的工具就是 MyEclipse,现在就抛弃 Eclipse 了,我就不多说它俩的区别了,但是 MyEclips ...

  2. MyEclipse 2017/2018 安装与破解 图文教程

    SSM 框架-02-MyEclipse 2017/2018 安装与破解 现在在学J2EE,然后使用的工具就是 MyEclipse,现在就抛弃 Eclipse 了,我就不多说它俩的区别了,但是 MyEc ...

  3. </2017><2018>

    >>> Blog 随笔原始文档及源代码 -> github: https://github.com/StackLike/Python_Note >>> 统计信 ...

  4. 我的2017&2018

    最近项目进入验收阶段,所以上班没那么忙碌了,但是怎么说呢,我可能天生是闲不住的主,觉得浑身不自在(我这样的人是不是特别不会享福),此处应该有个笑脸哈. 翻看了博客园好几个大牛写的技术文章,感慨大牛不愧 ...

  5. [2017 - 2018 ACL] 对话系统论文研究点整理

    (论文编号及摘要见 [2017 ACL] 对话系统. [2018 ACL Long] 对话系统. 论文标题[]中最后的数字表示截止2019.1.21 google被引次数) 1. Domain Ada ...

  6. CorelDRAW X7 X8 2017 2018是什么关系?

    从CorelDRAW 2017版本开始我们叫习惯了的X几系列的CorelDRAW毅然决然的就换了称呼,所以有时候很多朋友对于软件版本,经常会傻傻分不清,还有人认为X8版本比2017版本高,究竟为什么会 ...

  7. JetBrains 2017/2018全系列产品激活工具

    可谓是工欲善其事,必先利其器,相信作为优秀开发工程师的你都想拥有一套快捷高效的编码工具,而JetBrains这家公司的产品,不管是那种编程语言,其开发工具确实让开发者们着迷,JetBrains的产品博 ...

  8. 【LOJ】#2349. 「JOI 2017/2018 决赛」团子制作

    题解 有意思的一个dp,我们对G计数,发现如果不在同一条对角线上的G肯定不会互相影响,所以我们对于每一条对角线dp dp的方式是枚举这个G以什么方式放,横着还是竖着,还是不放 代码 #include ...

  9. 【LOJ】#2350. 「JOI 2017/2018 决赛」月票购买

    题解 首先求一个最短路图出来,最短路图就是这条边在最短路上就保留,否则就不保留,注意最短路图是一个有向图,一条边被保留的条件是 dis(S,u) + val(u,v) = dis(v,T)我们需要求两 ...

  10. 【LOJ】#2351. 「JOI 2017/2018 决赛」毒蛇越狱

    题解 没啥特别好的算法,是个讨论题,由于0 1 ?三类数位中最少的不会超过6 如果1不超过6,那么记录\(f1(S)\)为 \(\sum_{T \subset S} val(T)\)这个可以通过类似F ...

随机推荐

  1. ubuntu16 python2 安装M2Crypto报错

    正文 pip2 install M2Crypto # 报错: # unable to execute 'swig': No such file or directory # error: comman ...

  2. IDEA 设置自动去掉不用的import

  3. 洛谷P2864

    来一发在洛谷的第一篇题解 解析 首先从原点出发回到原点会形成一个环 要计算在环上的路程,首先我们要破环 利用建墙法破环 可以选取任意一个边缘上的树,往上或者往下或者往左往右建立一堵墙'|' 这样利用b ...

  4. 小程序-浅谈云函数获取数据和云数据库api获取数据的区别

    区别:在于条数的限制,云数据库api获取数据限制20条以内,云函数限制100条以内 index.wxml <button bindtap="shujukuget">数据 ...

  5. 在Visual Studio Code中,鼠标双击PHP变量的时候,如何选择包括$在内的整个变量名

    依次点击:文件->首选项->设置 并在"editor.wordSeparators"设置中为您的语言指定删除"$"符号:

  6. 一文全懂:Linux磁盘分区

    一.物理设备的命名规则 在 Linux 系统中一切都是文件,硬件设备也不例外.所有的硬件设备文件都在/dev文件夹中. 硬件 在Linux内的文件名 SCSI/SATA/USB /dev/sd[a-p ...

  7. .NET 开源快捷的数据库文档查询和生成工具

    前言 在实际项目开发中,需求变更和项目迭代是常态.要求我们能够迅速响应,对数据库结构进行相应的调整,如添加新表.更新现有表结构或增加字段等. 为了确保团队成员之间的信息同步,实时更新和维护数据库文档变 ...

  8. 7、SpringBoot2之整合事务及AOP

    本文在SpringBoot2之整合Mybatis的基础上进行 7.1.整合事务 7.1.1.mapper接口 int deleteEmployeeById(int id); 7.1.2.mapper映 ...

  9. 英语词汇:simplistic和simple区别

    "Simplistic" 和 "simple" 都表示简单,但它们有不同的含义和语境: Simplistic: 含义: 过于简单化的,有贬义,表示忽略了复杂性或 ...

  10. 外形最漂亮的人形机器人——通用机器人Apollo,设计为可以在任何任务和环境中与人类进行协作

    视频地址: https://www.bilibili.com/video/BV11F4m1M7ph/