[hgoi#2019/2/16t3]psolve
题目描述
Dustar有n道题目要做。他的月薪是m元。
由于题目是一流的难题,所以Dustar不得不找个人来帮(代)助(替)他写作业。
找人写作业不是免费的,但是他们能保证在一个月内做出任何题目。每做一道题需要两笔付款,第一笔ai元在做题的那一个月初支付,第二笔b[i]元(1<=b[i]<=m)在做完后的下一个月初支付。每一个月Dustar用上一个月挣的钱来付款。
Dustar没有任何存款意识,所以每个月的节余都回拿用去买糖吃掉了。
因为题目是相互关联的,它们必须按顺序解出。比如,题目3必须在题目4之前或同一个月解出。
请问做完所有题目并支付完所有款项的最少月数。
解法
第一眼看到这道题会想到贪心,如果当前可以放到下一个月里去,但是这样很明显是错的。。。
试试这组数据
10 9
1 9
9 1
这样就会被卡住,那么怎么做?
那么就是DP。我们设置\(f[i][j]\)表示到第\(i\)天买了\(j\)物品的答案。
我们每次看一下前后天是否满足状态就好了。
ac代码
#include<bits/stdc++.h>
#define N 305
using namespace std;
int f[N][N],a[N],b[N];
int n,m;
int r(){
int w=0,x=0;char ch=0;
while(!isdigit(ch))w|=ch=='-',ch=getchar();
while(isdigit(ch))x=(x<<1)+(x<<3)+(ch^48),ch=getchar();
return w?-x:x;
}
int main(){
m=r(),n=r();
for(int i=1;i<=n;i++)a[i]=r(),b[i]=r();
memset(f,-1,sizeof(f));
f[1][0]=m;
for(int i=1;i<=n;i++){
for(int j=0;j<=n;j++) {
if(f[i][j]<0) break;
int res1=f[i][j],res2=m;
f[i+1][j]=max(f[i+1][j],m);
for(int k=j+1;k<=n;k++){
if(res1-a[k]<0||res2-b[k]<0) break;
res1-=a[k],res2-=b[k];
f[i+1][k]=max(f[i+1][k],res2);
}
}
}
int ans;
for(int i=1;i<=2*n;i++){
if(f[i][n]!=-1){ans=i;break;}
}
printf("%d\n",ans+1);
return 0;
}
[hgoi#2019/2/16t3]psolve的更多相关文章
- 「HGOI#2019.4.19省选模拟赛」赛后总结
t1-Painting 这道题目比较简单,但是我比较弱就只是写了一个链表合并和区间DP. 别人的贪心吊打我的DP,嘤嘤嘤. #include <bits/stdc++.h> #define ...
- [hgoi#2019/3/21]NOIP&NOI赛后总结
前言 今天做的是是2010年提高组和NOI的题目,做过几道原题,但是还是爆炸了,我真的太弱了. t1-乌龟棋 https://www.luogu.org/problemnew/show/P1541 这 ...
- [hgoi#2019/3/10]赛后总结
关于本次hg模拟赛,题目来源于CF1110. t1-无意义运算符(meaning) 题目描述 最大公约数和位运算之间有共同点吗?是时候来研究一下了. 给定一个正整数a,请找到一个闭区间[1,a-1] ...
- [hgoi#2019/3/3]赛后总结
T1--最长公共前缀(lcp) 定义两个字符串S,T 的最长公共前缀lcp(S,T)为最长的字符串R,满足R 既是S 的前缀又是T 的前缀. 给定一个字符串S,下标从1 开始,每次询问给出四个正整数a ...
- [hgoi#2019/2/16t2]friend
题目描述 在一个遥远的国度里有n个人,每个人手上写着4个互不相同的数. 这个国度比较奇怪,如果两个人至少有一个数字相同,则他们是一对朋友. 现在这n个人按序号从左到右排成了一排,每个人都想知道在他左边 ...
- [hgoi#2019/2/16t1]math
题目描述 解法 我们稍微枚举一下前面几位,可以得到这样的规律. \[X_i=\frac{1}{2^{i+1}-1}\] \[Y_i=\frac{1}{2^{2^i}-1}\] 那么要使\(xm=yn\ ...
- [hgoi#2019/2/24]玄学考试
感想 对于这次考试,真的不想说什么了,太玄学了!!! t1输出比标准输出长,这是什么操作???难道要关文件???但是交到oj上又A掉了.这是什么操作. t2还好,没有出什么意外...但是要吐槽一下出题 ...
- [hgoi#2019/2/18]比较水
T1--调换纸牌(card) Alex有 n张纸牌,每张纸牌上都有一个值ai,Alex把这些纸牌排成一排,希望将纸牌按值从小到大的顺序排好.现在他把这个任务交给你,你只能进行一种操作:选中一张牌,然后 ...
- [hgoi#2019/2/17t1]million
题目描述 面对格鲁的入侵,小黄人们要组建一支队伍,来抵御进攻,现在有编号为1 至n 的小黄人,任命编号为n 的队长,由其挑选队员,当然编号不是随便编的,每一个编号里都包含一个小黄人的个人信息,现在队长 ...
随机推荐
- VS2017中 C# dll引用(C生成dll,C++生成dll)小结 - 简书
原文:VS2017中 C# dll引用(C生成dll,C++生成dll)小结 - 简书 dll引用小结 一.dll与应用程序 动态链接库(也称为DLL,即为“Dynamic Link Library” ...
- Rabbitmq-direct演示
在上一节中我们创建了一个日志系统.实现将日志消息广播给所有的cusumer. 在这片教程中,我们将为日志系统添加一个功能:仅仅订阅一部分消息.比如:我们可以直接将关键的错误类型日志消息保存到日志文件中 ...
- Linux/CentOS下安装MySql RPM Bundle
一.下载对应的版本的MySql安装文件 1.下载路径 https://dev.mysql.com/downloads/mysql/ 2.选择对应的Linux版本和x86/x64位的安装文件 查看Lin ...
- 重启 IIS7 应用或者应用程序池的批处理bat
重启应用 本地: ctrl+r->iisreset -stop ctrl+r->iisreset -start ctrl+r->iisreset 远程(假如远程机器地址为10.5.6 ...
- (译)理解 LSTM 网络 (Understanding LSTM Networks by colah)
@翻译:huangyongye 原文链接: Understanding LSTM Networks 前言:其实之前就已经用过 LSTM 了,是在深度学习框架 keras 上直接用的,但是到现在对LST ...
- Spring Boot 2.0 版的开源项目云收藏来了!
给大家聊一聊云收藏从 Spring Boot 1.0 升级到 2.0 所踩的坑 先给大家晒一下云收藏的几个数据,作为一个 Spring Boot 的开源项目(https://github.com/cl ...
- 【已解决】HeidiSQL连接(登录)MySQL数据库报错10061问题
解决方法: 打开cmd->输入命令services.msc 然后打开即可解决.
- python-scapy学习笔记-(1)
主要功能函数sniff sniff(filter="",iface="any",prn=function,count=N) filter参数允许我们对Scapy ...
- Ionic 入门与实战之第二章第二节:Ionic 环境搭建之 Ionic Lab 使用
原文发表于我的技术博客 本文是「Ionic 入门与实战」系列连载的第二章第二节,主要对 Ionic Lab 工具作了介绍,并讲解了其使用方法,这也是一个开发 Ionic 比较好的调试工具. 原文发表于 ...
- inode 软/硬链接
一.inode是什么? 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统 ...