DP上课覆盖知识点,POJ(1513)
题目链接:http://poj.org/problem?id=1513
解题报告:
思路:
知识点从第二个开始扫,递推表达式是:minlec[i]=min(minlec[k])+1,并且要保证,time[k+1]+...+time[i]<L,即在一节课之内上完知识点k+1到知识点i;
要是minlec[i]==minlec[k]+1;就要比较他的不满意度了。
很有趣的一道题,不过还是WA了很多次,还有一点就是输出格式。
#include<cstdio>
#include<iostream>
using namespace std; int C; int DI(int t)
{
if(t==) return ;
else if(t>=&&t<=) return -C;
else return (t-)*(t-);
} int main()
{
int n,L,count=,i,j;
int time[]; ///每个知识点要的时间
int minLec[]; ///知识点1~i最少要上的课的节数
int minDis[]; ///对应的不满意度 while(scanf("%d",&n),n)
{
count++;
if(count>)
printf("\n"); scanf("%d %d",&L,&C); for(i=;i<=n;i++)
scanf("%d",&time[i]);
minLec[]=minDis[]=; minLec[]=;
minDis[]=DI(L-time[]); for(i=;i<=n;i++)
{
minLec[i]=minLec[i-]+;
minDis[i]=minDis[i-]+DI(L-time[i]); int sum=time[i];
for(j=i-;j>;j--)
{
sum+=time[j];
if(sum<=L)
{
int cost=minDis[j-]+DI(L-sum);
if(minLec[i]>minLec[j-]+)
{
minLec[i]=minLec[j-]+;
minDis[i]=cost;
}
else if(minLec[i]==minLec[j-]+)
minDis[i]=minDis[i]>cost?cost:minDis[i];
}
else
break;
}
}
printf("Case %d:\n\n",count);
printf("Minimum number of lectures: %d\n",minLec[n]);
printf("Total dissatisfaction index: %d\n",minDis[n]);
}
return ;
}
DP上课覆盖知识点,POJ(1513)的更多相关文章
- 概率dp的边界处理 POJ 2096
题目地址:https://vjudge.net/problem/POJ-2096 说的是有n个bug,和s个系统.现在一个人一天能发现一个bug,它可能是任何一个系统中的,也可能会发现已经发现过的bu ...
- 【BZOJ 3997】 3997: [TJOI2015]组合数学 (DP| 最小链覆盖=最大点独立集)
3997: [TJOI2015]组合数学 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 919 Solved: 664 Description 给出 ...
- 区间dp E - Multiplication Puzzle POJ - 1651
E - Multiplication Puzzle POJ - 1651 这个题目没有特别简单,但是也没有我想象之中的那么难,这个题目时区间dp,因为我们是要对区间进行考虑的. 但是呢,这个也和动态 ...
- DP:Making the Grade(POJ 3666)
聪明的修路方案 题目大意:就是农夫要修一条路,现在要求这条路要么就是上升的,要么就是下降的,总代价为∑|a[i]-b[i]|,求代价最低的修路方案, (0 ≤ β≤ 1,000,000,000) , ...
- DP:Islands and Bridges(POJ 2288)
2015-09-21 造桥基建工程 题目大意,就是有n座岛和k座桥,要你找一条哈密顿圈(找完所有的岛,并且每个岛只经过一次),当经过一座岛就加上岛的价值,如果两岛联通,则加上两座岛的价值之积,如果三座 ...
- DP:Corn Fields(POJ 3254)
北大教你如何高效养牛(误)(点我查看) 2015-08-21: 问题的大意就是有一片稻田,里面有很多坑,你要在上面种稻谷,然后呢田里面还会养牛,牛不喜欢扎堆吃饭,所以呢你种的稻谷要间隔种在坑里面,所 ...
- 【dp 背包变形】 poj 1837
#include <cstdio> #include <memory.h> #include<iostream> using namespace std; ][]; ...
- (线性dp,LCS) POJ 1458 Common Subsequence
Common Subsequence Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 65333 Accepted: 27 ...
- (树形DP)Strategic game POJ - 1463
题意: 给你一棵树,树的每一个节点可以守护与其相连的所有边,问你最少用多少个节点可以守护这整棵树 思路: 仔细思考不难发现,要想守护一条边,边的两个端点必须有一个可以被选(两个都选也可以),然后这个问 ...
随机推荐
- ZPL打印机命令解释
个人备忘: 1.装驱动,装驱动要装对应的ZPL或者EPL版本,目前发现GK888T无需选择,直接装GK888T即可,其他机型未知. 2.标签设计,文本部分用SimSun-ExtB字体,变量内容部分用Z ...
- 5.SpringMVC
1.SpringMVC概述 概述: SpringMVC是基于请求驱动,围绕一个核心Servlet 转发请求到对应的Controller而设计的优点:是一个典型的教科书式的MVC构架,易学易用提供了清晰 ...
- navicat premiun连接mysql数据库报错,错误代码:1251
今天在电脑上安装了Mysql 8.0.11,然后想用 Navicat Premium连接数据库,结果报错了: error 1251:client does not support authentica ...
- 18-----BBS论坛
BBS论坛(十八) 18.首页轮播图实现 (1)front/css/front_base.css .main-container{ width: 990px; margin: 0 auto; over ...
- 爬虫(POST)——有道翻译(有bug)
工具:python3 过程:抓包得到有道翻页面的url:复制post请求头,得到headers中的信息:复制post请求的body,得到formdata中的信息.构造post请求,返回响应 impor ...
- 转 oracle cursor 游标
转自:http://blog.csdn.net/liyong199012/article/details/8948952 游标的概念: 游标是SQL的一个内存工作区,由系统或用户以变量的形式定 ...
- dict 增删改查
# dict # 数据类型划分: 可变数据类型,不可变数据类型 # 不可变数据类型: 元组 bool int str set (又被称为可哈希) # 可变数据类型: list dict (又被称为不可 ...
- maya2016安装失败如何卸载重装
AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...
- 初识contiki(2.7版本)
一个偶然的机会,我接触到了contiki这个家伙. Contiki 是一个开源的.高度可移植的.采用 C 语言开发的非常小型的嵌入式操作系统,针对小内存微控制器设计,适用于联网嵌入式系统和无线传感器网 ...
- Intellij IDEA 14 自动生成 serialVersionUID
1. Preferences > Editor > Inspections > Java > Serialization issues > Serializable c ...