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的更多相关文章

  1. 51nod 1636 教育改革 | DP

    51nod 1636 教育改革 | DP 题面 最近A学校正在实施教育改革. 一个学年由n天组成.A学校有m门课程,每天学生必须学习一门课,一门课程必须在一天内学习完.在学习完第i门课程后,学生们会收 ...

  2. 51nod 1636 教育改革

    题目链接 令f[i][j][k]为第i天选择的课程为j,设置作业为a[j]+k时的最大作业量. 那么f[i][j][k]可以由哪些状态转移而来?先把课程按复杂度排序,那么可以转移来的课程是f[i-1] ...

  3. 【51Nod 1244】莫比乌斯函数之和

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1244 模板题... 杜教筛和基于质因子分解的筛法都写了一下模板. 杜教筛 ...

  4. 51Nod 1268 和为K的组合

    51Nod  1268  和为K的组合 1268 和为K的组合 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 给出N个正整数组成的数组A,求能否从中选出若干个,使 ...

  5. 51Nod 1428 活动安排问题

    51Nod   1428  活动安排问题 Link: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1428 1428 活 ...

  6. 51Nod 1278 相离的圆

    51Nod 1278 相离的圆 Link: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1278 1278 相离的圆 基 ...

  7. 【51Nod 1501】【算法马拉松 19D】石头剪刀布威力加强版

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1501 dp求出环状不连续的前缀和,剩下东西都可以算出来,比较繁琐. 时间 ...

  8. 【51Nod 1622】【算法马拉松 19C】集合对

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1622 简单题..直接暴力快速幂 #include<cstdio&g ...

  9. 【51Nod 1616】【算法马拉松 19B】最小集合

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1616 这道题主要是查询一个数是不是原有集合的一个子集的所有数的gcd. ...

随机推荐

  1. Docker资源限制与Cgroups

    一.Linux control groups 简介     Linux CGroup全称Linux Control Group, 是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如 ...

  2. 无预挖无ICO-潜力币XDAG最强攻略

    更新下XDAG上交易所了,当时看好这个币才推荐的,那时场外才2毛不到,现在涨到9毛一个了... https://www.coinbat.com/trade/panel/xdag... VBitEX [ ...

  3. 命令行创建mysql数据库指定编码方法

    GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; UTF8: CREATE DATABASE t ...

  4. 第一行代码:以太坊(2)-使用Solidity语言开发和测试智能合约

    智能合约是以太坊的核心之一,用户可以利用智能合约实现更灵活的代币以及其他DApp.不过在深入讲解如何开发智能合约之前,需要先介绍一下以太坊中用于开发智能合约的Solidity语言,以及相关的开发和测试 ...

  5. Quartz.NET 任务调度新教程

    https://www.cnblogs.com/yscit/p/10393867.html

  6. 针对2017年淘宝开放平台应用整改被封停或强制入塔政策实现不入塔不模糊正常调用API的解决方案

    淘宝开放平台入驻先是限制上架,提高入驻资质,然后又模糊化R2信息,强制入塔,如今开始大规模整改应用. 此次整改势必导致很大一批个人开发的应用无法使用. 在此本人有偿提供正常调用淘宝开放平台API的解决 ...

  7. python 链接 redis 失败 由于目标计算机积极拒绝,无法连接

    whereis redis-cli ps -ef |grep redis 1.启动redis redis-server & 2.查看redis 进程 ps -ef |grep redis 3. ...

  8. nodejs源码编译-mipse64el架构

    下载nodejs,node-v6.1.0.tar.gz 链接: https://pan.baidu.com/s/1eCtNBWD5yaKiQIHp3pRKew 提取码: faun 注意对应版本的gcc ...

  9. H5 颜色属性

    07-颜色属性 我是段落 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  10. IOS - UTF-8转码问题

    2016.07.06 21:45* 字数 61 阅读 921评论 0喜欢 2 IOS中提供的转码. [utf8str stringByAddingPercentEscapesUsingEncoding ...