51nod 1636 教育改革
令f[i][j][k]为第i天选择的课程为j,设置作业为a[j]+k时的最大作业量.
那么f[i][j][k]可以由哪些状态转移而来?先把课程按复杂度排序,那么可以转移来的课程是f[i-1][t][r],
其中t是<j,且复杂度a[t].c严格小于a[j].c. 这是前提条件, 其次, 对于a[t]布置的作业数量r,根据题意需要满足作业j布置的作业(a[j]+k) % r == 0,或者是 (a[j]+k) - K = r. 在这些状态转移中取最值即可.
需要留意的地方:因为bi-ai<=100,也就是说布置的作业量的状态属于[ai,bi],所以我们用差值来记录布置了多少作业,没必要朴素的真的去记录布置作业量,因为ai<=10^16..太大了.
其次,要用long long, 各个地方都别漏了. 再其次,转移的时候,需要上一个状态合法,即上一个状态的值非0.
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define FOR(i,a,b) for(int i=(a);i<=(b);++i)
ll N, M, K, cas;
struct node{ll l, r, c;} a[55];
bool cmp(node a, node b) {return a.c < b.c;}
bool ok(ll v, node nd) {return nd.l <= v && v <= nd.r;}
ll f[55][55][105], ans;
int main () {
while (~scanf("%lld%lld%lld", &N, &M, &K)) {
ans = 0;
memset(f, 0, sizeof f);
FOR(i, 1, M) scanf("%lld%lld%lld", &a[i].l, &a[i].r, &a[i].c);
sort(a + 1, a + 1 + M, cmp);
FOR(i, 1, M)
FOR(j, 0, a[i].r - a[i].l)
f[1][i][j] = a[i].l + j;
FOR(i, 2, N) {
FOR(j, 2, M) {
FOR(t, 1, j - 1) {
if (a[j].c <= a[t].c) continue;
FOR(k, 0, a[j].r - a[j].l) {
ll pre = a[j].l + k - K;
ll &cur = f[i][j][k];
if (ok(pre, a[t]) && f[i - 1][t][pre - a[t].l])
cur = max(cur, f[i - 1][t][pre - a[t].l] + a[j].l + k);
pre = (a[j].l + k) / K;
if ((a[j].l + k) % K == 0 && ok(pre, a[t])
&& f[i - 1][t][pre - a[t].l])
cur = max(cur, f[i - 1][t][pre - a[t].l]
+ a[j].l + k);
}
}
}
}
FOR(i, 1, M)
FOR(j, 0, a[i].r - a[i].l)
ans = max(ans, f[N][i][j]);
if (ans) printf("YES\n%lld\n", ans);
else puts("NO");
}
return 0;
}
51nod 1636 教育改革的更多相关文章
- 51nod 1636 教育改革 | DP
51nod 1636 教育改革 | DP 题面 最近A学校正在实施教育改革. 一个学年由n天组成.A学校有m门课程,每天学生必须学习一门课,一门课程必须在一天内学习完.在学习完第i门课程后,学生们会收 ...
- 51 Nod 1636 教育改革(dp)
1636 教育改革 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 最近A学校正在实施教育改革. 一个学年由n天 ...
- 51nod 1636
1636 教育改革 我看过题解了还下了数据,表示很惭愧不想说什么,但还是说两句吧 sol: 因为差值很小只有100,所以对数组下标存的是(选择的数值和左端点的差值) f[i][j][k]即为第i天选了 ...
- 教育改革——国家认证 “网红” 编程语言 Python
特大消息!!! 不止是上海计算机二级考试 ,全国计算机考试等级考试也有要求 如果你正打算考计算机等级,那你需要学习以下知识 要求学习的知识太多了,我就不一一在这里展示了! 一.考试改革的目标 据悉 ...
- 51nod-1636-dp
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1636 1636 教育改革 题目来源: CodeForces 基准时间限制 ...
- 好未来谢华亮:AI 在教育行业中的应用
11 月 23 日,在以「AI 产业技术的渗透与融合」为主题的 NIUDAY 北京站中,好未来 SEG 智慧教育事业部技术总监谢华亮为大家带来了关于「AI 在教育行业中的应用」的分享. 本文是对分享内 ...
- BZOJ 1036 && 树链剖分
还是太弱啊..各种数据结构只听过名字却没有一点概念..树链剖分也在这个范畴..今天来进一步深化一下教育改革推进全民素质提高. 性质 忘了在哪里看到的一篇blog有一句话讲得非常好,树链剖分不是一种数据 ...
- 加州wonders教材扫盲
加州语文教材主要包含以下内容: 1.主教材Reading/Writing Workshop(读写研讨) 2.拓展教材Literature Anthology(文学选集) 3.延伸阅读材料Leveled ...
- 龙芯将两款 CPU 核开源,这意味着什么?
10月21日,教育部计算机类教学指导委员会.中国计算机学会教育专委会将2016 CNCC期间在山西太原举办“面向计算机系统能力培养的龙芯CPU高校开源计划”活动,在活动中,龙芯中科宣布将GS132和G ...
随机推荐
- git第二节----git clone与git tag
@git 远程克隆(clone)仓库,将远程工程clone到本地仓库:默认克隆远程master 分支 git clone https://github.com/kaokaozhu/Test.git ...
- 自制 Chrome Custom.css 设置网页字体为微软雅黑扩展
自己做的將網頁自動替換為微軟雅黑的擴展.很好用. 將Customcss.rcx拖到擴展裏就可. 下載:Customcss.zip
- 用python写web一定要去破解的异步请求问题.经历web.py和tornado,完破!
1.问题 上个学期,给学校写了一个数据服务,主要从oracle里面读取一些数据供查询使用,非常快速的用web.py搭建了起来.调试顺利,测试正常,上线!接下来就是挨骂了,我铁定知道会卡,但是没想到会那 ...
- C# WebApi 返回JSON
在默认情况下,当我们新建一个webapi项目,会自动返回XML格式的数据,如果我们想返回JSON的数据,可以设置下面的三种方法. 1. 不用改配置文件,在Controller的方法中,直接返回Http ...
- [转]Winform开发框架的重要特性总结
本文转自:https://www.cnblogs.com/wuhuacong/p/3199829.html 从事Winform开发框架的研究和推广,也做了有几个年头了,从最初的项目雏形到目前各种重要特 ...
- CRC16位校验
之前有跟第三方通讯合作,应为CRC表码问题导致校验出结果不一致,纠结了很久,最后直接采用CRC计算方式校验才解决. 两种方式贴,自行对比. CRC校验计算方法 private ushort CRC_1 ...
- PetaPoco源代码学习--2.TableInfo、ColumnInfo类和Cache类
当把常用的特性填写到POCO实体类时,执行数据库操作时,需要根据实体类上的特性信息进行相应的操作,PetaPoco中的TableInfo和ColumnInfo类就是用来保存实体类上的特性信息. Tab ...
- JS 格林威治时间格式(GMT)格式化
Date.prototype.format = function (format) { var o = { "M+": this.getMonth() + 1, //month & ...
- winform窗体 小程序【登录窗体】【恶搞程序】
登录窗体 using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; ...
- javascript经典面试题之for循环click
经典重现 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf- ...