P2876 [USACO07JAN]解决问题Problem Solving
显然的 $dp$,设 $f[i][j]$ 表示做完第 $i$ 题,此月做的题的区间为 $[j,i]$ 需要的最少月数
每个月记得分成还钱并写新题,和只还钱分类讨论,不要搞成每个月强制做一题
那么 $f[i][i+1]$ 就表示把 $i$ 题做完并还完钱需要的最少月数,注意一下边界什么的就好了
第一个月不能做题,月薪是月底才发的
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long ll;
inline int read()
{
int x=,f=; char ch=getchar();
while(ch<''||ch>'') { if(ch=='-') f=-; ch=getchar(); }
while(ch>=''&&ch<='') { x=(x<<)+(x<<)+(ch^); ch=getchar(); }
return x*f;
}
const int N=;
int n,m,a[N],b[N];
int sa[N],sb[N],f[N][N];
int main()
{
memset(f,0x3f,sizeof(f));
m=read(),n=read();
for(int i=;i<=n;i++)
{
a[i]=read(),b[i]=read();
sa[i]=sa[i-]+a[i]; sb[i]=sb[i-]+b[i];
}
f[][]=; f[][]=;
for(int i=;i<=n;i++)
{
for(int j=;j<=i;j++)
for(int k=;k<=j;k++)
if(sb[j-]-sb[k-]+sa[i]-sa[j-]<=m)
f[i][j]=min(f[i][j],f[j-][k]+);
for(int k=;k<=i;k++)
if(sb[i]-sb[k-]<=m) f[i][i+]=min(f[i][i+],f[i][k]+);
}
printf("%d\n",f[n][n+]);
return ;
}
P2876 [USACO07JAN]解决问题Problem Solving的更多相关文章
- Luogu_2876_[USACO07JAN]解决问题Problem Solving
题目描述 过去的日子里,农夫John的牛没有任何题目. 可是现在他们有题目,有很多的题目. 精确地说,他们有\(P(1 \leq P \leq 300)\)道题目要做. 他们还离开了农场并且象普通人一 ...
- <USACO07JAN>解决问题Problem Solvingの思路
日常为dp贡献脑细胞 #include<iostream> #include<cmath> #include<cstdio> #include<cstdlib ...
- LuoguP2876 [USACO07JAN]解决问题Problem Solving (区间DP)(未完成)
#include "Head.cpp" const int N = 307; int f[N][N], a[N], b[N], sumA[N], sumB[N]; int main ...
- 【BZOJ1700】[Usaco2007 Jan]Problem Solving 解题 动态规划
[BZOJ1700][Usaco2007 Jan]Problem Solving 解题 Description 过去的日子里,农夫John的牛没有任何题目. 可是现在他们有题目,有很多的题目. 精确地 ...
- KXO151 Programming & Problem Solving
Page 1 of 9KXO151 Programming & Problem SolvingAIEN-SOU - 2019Assignment 2Deadline for Submissio ...
- 学习笔记之Problem Solving with Algorithms and Data Structures using Python
Problem Solving with Algorithms and Data Structures using Python — Problem Solving with Algorithms a ...
- 【BZOJ】1700: [Usaco2007 Jan]Problem Solving 解题
[题意]给定n道题,每月末发放工资m,要求从1解到n,每道题需要在当月初付费ai,下月初付费bi,多道题可以安排在同月,求最少月数. [算法]DP [题解]参考自:[bzoj1700]Problem ...
- bzoj 1700 Problem Solving 解题 dp
[Usaco2007 Jan]Problem Solving 解题 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 492 Solved: 288[Sub ...
- AST11103 Problem Solving
AST11103 Problem Solving with Programming SkillsAdditional Individual Assignment: Min-Game Programmi ...
随机推荐
- Git之仓库管理
介绍以及安装: Git 是一个开源的分布式版本控制软件,用以有效.高速的处理从很小到非常大的项目版本管理. Git 最初是由Linus Torvalds设计开发的,用于管理Linux内核开发.Git ...
- Vuejs使用scoped(私有) style为v-html中标签添加CSS样式
最近使用Vue框架的时候遇到一个问题,就是后台把数据写好了,而且写好的数据的某些内容是html格式的,使用Vue框架的v-html虽然可以很简单的就把数据转换成html的标签渲染在页面上,但是有些样式 ...
- tomcat 启动一傘而过问题
tomcat 启动一傘而过问题 D:\apache-tomcat-7.0.75\bin startup.bat打开记事本打开 第一行:设置启动环境变量JAVA_HOME,CATALINA_HOME S ...
- 如何在Web页面里使用高拍仪扫描上传图像
如何在Web页面里使用高拍仪扫描上传图像 市场上所有的高拍仪都支持扫描图片并保存到本地,一般公司都会提供控件.开发人员只需要在页面集成就可以进行拍照和扫描.只不过一般扫描的图片是保存在本地固定的文件夹 ...
- c++ bitset——一个有趣的类型
转自:https://www.cnblogs.com/magisk/p/8809922.html 概况:一个最小可达1bit的特殊数据结构
- 通过运行窗口输入命令方式,打开Internet窗口
WIN + R 按键, 运行窗口出来后,我们输入‘inetcpl.cpl“,然后按确定. 弹出Interent属性窗口.
- Oracle--创建TRIGGER实现跟踪用户登录信息
---创建日志表记录用户登录信息create table user_log( user_id VARCHAR2(30), session_id NUMBER(10), ...
- Gradle 学习笔记
配置 Gradle 的环境变量 export GRADLE_HOME=/opt/software/java/gradle-3.1 export PATH=\(PATH:\)GRADLE_HOME/bi ...
- Mysql中主键与索引
摘自: https://www.cnblogs.com/wicub/p/5898286.html 一.什么是索引?索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没 ...
- 图像bayer格式介绍【转】
本文转载自:http://www.cnblogs.com/whw19818/p/6223143.html 1 图像bayer格式介绍 bayer格式图片是伊士曼·柯达公司科学家Bryce Bayer发 ...