51nod 1636
我看过题解了还下了数据,表示很惭愧不想说什么,但还是说两句吧
sol:
因为差值很小只有100,所以对数组下标存的是(选择的数值和左端点的差值)
f[i][j][k]即为第i天选了第j课 k为上述内容 还有注意转移的时候要保证上一个合法才能转到下一个,就是上一个一定不为0;
听起来不难然而我还是看了题解qwq
#include<bits/stdc++.h>
using namespace std;
#define int long long
struct node{int l, r, c;}a[];
inline bool cmp(node a,node b){return a.c < b.c;}
int n, m, K, f[][][], ans;
signed main()
{
freopen("51nod1636.in","r",stdin);
while(~scanf("%lld%lld%lld", &n, &m, &K))
{
ans = ;
memset(f, , sizeof f);
for(int i = ; i <= m; i++)
scanf("%lld%lld%lld", &a[i].l, &a[i].r, &a[i].c);
sort(a + , a + m + , cmp);
for(int i = ; i <= m; i++)
for(int j = ; j <= a[i].r - a[i].l; j++)
f[][i][j] = a[i].l + j;
for(int i = ; i <= n; i++)
for(int j = ; j <= m; j++)
for(int jj = ; jj < j; jj++)
{
if(a[j].c > a[jj].c)
for(int k = , oo; k <= a[j].r - a[j].l; k++)
{
oo = a[j].l + k - K;
if (oo >= a[jj].l && oo <= a[jj].r && f[i - ][jj][oo - a[jj].l])
f[i][j][k] = max(f[i][j][k], f[i - ][jj][oo - a[jj].l] + a[j].l + k);
if ((a[j].l + k) % K == )
{
oo = (a[j].l + k) / K;
if (oo >= a[jj].l && oo <= a[jj].r && f[i - ][jj][oo - a[jj].l])
f[i][j][k] = max(f[i][j][k], f[i - ][jj][oo - a[jj].l] + a[j].l + k);
}
}
}
for(int i = ; i <= m; i++)
for(int j = ; j <= a[i].r - a[i].l; j++)
ans = max(ans, f[n][i][j]);
if (ans) printf("YES\n%lld\n", ans);
else printf("NO\n");
}
}
51nod 1636的更多相关文章
- 51nod 1636 教育改革 | DP
51nod 1636 教育改革 | DP 题面 最近A学校正在实施教育改革. 一个学年由n天组成.A学校有m门课程,每天学生必须学习一门课,一门课程必须在一天内学习完.在学习完第i门课程后,学生们会收 ...
- 51nod 1636 教育改革
题目链接 令f[i][j][k]为第i天选择的课程为j,设置作业为a[j]+k时的最大作业量. 那么f[i][j][k]可以由哪些状态转移而来?先把课程按复杂度排序,那么可以转移来的课程是f[i-1] ...
- 【51Nod 1244】莫比乌斯函数之和
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1244 模板题... 杜教筛和基于质因子分解的筛法都写了一下模板. 杜教筛 ...
- 51Nod 1268 和为K的组合
51Nod 1268 和为K的组合 1268 和为K的组合 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 给出N个正整数组成的数组A,求能否从中选出若干个,使 ...
- 51Nod 1428 活动安排问题
51Nod 1428 活动安排问题 Link: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1428 1428 活 ...
- 51Nod 1278 相离的圆
51Nod 1278 相离的圆 Link: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1278 1278 相离的圆 基 ...
- 【51Nod 1501】【算法马拉松 19D】石头剪刀布威力加强版
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1501 dp求出环状不连续的前缀和,剩下东西都可以算出来,比较繁琐. 时间 ...
- 【51Nod 1622】【算法马拉松 19C】集合对
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1622 简单题..直接暴力快速幂 #include<cstdio&g ...
- 【51Nod 1616】【算法马拉松 19B】最小集合
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1616 这道题主要是查询一个数是不是原有集合的一个子集的所有数的gcd. ...
随机推荐
- Android root检测方法小结
转载目的,之前主要应用这里的原理解决了,手机被某个APP检测为root过的手机的问题,记录后续可能参考. 出于安全原因,我们的应用程序不建议在已经root的设备上运行,所以需要检测是否设备已经root ...
- Java性能优化之String字符串优化
字符串是软件开发中最重要的对象之一.通常,字符串对象在内存中是占据了最大的空间块,因此如何高效地处理字符串,必将是提高整体性能的关键所在. 1.字符串对象及其特点 Java中八大基本数据类型没有Str ...
- [翻译] .NET Standard 2.1 公布
[翻译] .NET Standard 2.1 公布 原文: Announcing .NET Standard 2.1 校对: Cloud 自从大约一年前发布 .NET Standard 2.0以来,我 ...
- Centos 7安装RabbitMQ 3.7.8版本(单机版)-不使用RPM
RabbitMQ是目前非常热门的消息中间件,凭借其高可靠.高扩展.高可用及丰富的功能特性:TTL.死信队列.延迟队列.优先级队列.消息持久化.镜像队列. 消息中间件是指利用高效可靠的消息传递机制进行与 ...
- 不容错过的超赞项目管理PPT
不容错过的超赞项目管理PPT(转载) 大公司的一个好处,是各个领域都有牛人,可以为你提供经验分享交流.腾讯庞大的培训体系更是保证了:如果你想学点什么东西,你总可以学到.腾讯内部资源30页PPT曝光 — ...
- LeetCode 595. Big Countries
There is a table World +-----------------+------------+------------+--------------+---------------+ ...
- python实现本地图片上传到服务区
本地图片上传到服务器,其本质上来讲,就是读取本地图片,复制到服务器,并返回服务器url 前端代码,用的form表单提交,form表单中包含两个文件选择表单元素,选择文件,点击提交按钮,提交form表单 ...
- mysql 库 行 列的 操作使用
-----------------------------------------------------------------------------时间不等你,下一刻,全是新的.每一刻都让它变得 ...
- GitHub上README.md编写教程(基本语法)
一.标题写法: 第一种方法: 1.在文本下面加上 等于号 = ,那么上方的文本就变成了大标题.等于号的个数无限制,但一定要大于0个哦.. 2.在文本下面加上 下划线 - ,那么上方的文本就变成了中标题 ...
- Python—randonm模块介绍
random是python产生伪随机数的模块 >>> random.randrange(1,10) #返回1-10之间的一个随机数,不包括10 >>> random ...