笨笨种西瓜

Time Limit:10000MS  Memory Limit:165536K
Total Submit:163 Accepted:82
Case Time Limit:1000MS

Description

笨笨种了一块西瓜地,但这块西瓜地的种植范围是一条直线的……
笨笨在一番研究过后,得出了m个结论,这m个结论可以使他收获的西瓜最多。
笨笨的结论是这样的:
从西瓜地B处到E处至少要种植T个西瓜,这个范围的收获就可以最大化。
笨笨不想那么辛苦,每个位置最多种一个西瓜,所以他想种植的西瓜尽量少,而又满足每一个所得的结论。

Input

第一行两个数n,m(0<n<=5000,0<=m<=3000),表示笨笨的西瓜地长n,笨笨得出m个结论。
接下来m行表示笨笨的m个结论,每行三个数b,e,t(1<=b<=e<=n,0<=t<=e-b+1)。

Output

输出笨笨最少需种植多少西瓜。

Sample Input

9 4
1 4 2
4 6 2
8 9 2
3 5 2

Sample Output

5

Hint

基本上来说,笨笨的西瓜地就是一条壮观的线……

这道题除了题目中给出的约束条件外其实还有两个题目中暗示的约束条件

那么所有的约束条件如下:

1:题目要求两个点(b和e)之间至少需要t个,就相当于Se-S(b-1)>=t
2:一个点至少要种0个,就是Si-S(i-1)>=0
3:一个点最多种1个(暂且这样认为),就是Si-S(i-1)<=1,移项得到S(i-1)-Si>=-1

然后再增加一个虚拟节点,到所有点的权值为0,再求最长路就行了

#include<cstdio>
#include<iostream>
#include<queue>
#define inf 2e9
using namespace std;
int n,m,cnt;
void _read(int &d){d=0;char t=getchar();for(d=0;t>='0'&&t<='9';t=getchar())d=(d<<3)+(d<<1)+t-'0';
}
int next[300005],end[300005],last[300005],len[300005];
int dis[300005];
bool f[300005];
queue<int>q;
void fst(int a,int b,int l){end[++cnt]=b;len[cnt]=l;next[cnt]=last[a];last[a]=cnt;
}
void spfa(){int i,y,t,x;for(i=n;i>=1;i--)dis[i]=-inf;q.push(0);f[0]=true;dis[0]=0;while(!q.empty()){x=q.front();q.pop();f[x]=false;t=last[x];while(t!=0){y=end[t];if(dis[x]+len[t]>dis[y]){dis[y]=dis[x]+len[t];if(!f[y]){f[y]=true; q.push(y);}} t=next[t];}}
}
int main(){int i,e,b,c;_read(n);_read(m);for(i=n;i>=1;i--){fst(0,i,0);fst(i,i-1,-1);fst(i-1,i,0);}for(i=1;i<=m;i++){_read(b);_read(e);_read(c);fst(b-1,e,c);}spfa();cout<<dis[n];
}

一直wrong answer的话可以试一试这组数据

6 3
1 3 2
2 6 3
4 6 13

NKOI 1385 笨笨种西瓜相关推荐

  1. NKOJ——P1385——笨笨种西瓜

    时间限制 : 10000 MS 空间限制 : 165536 KB 原题 问题描述 输入格式 输出格式 样例输入 样例输出 题解 原题 问题描述 笨笨种了一块西瓜地,但这块西瓜地的种植范围是一条直线的- ...

  2. 考试题目“笨笨的西瓜种植”

    [题目描述] 笨笨种了一块西瓜地,但这块西瓜地的种植范围是一条直线的-- 笨笨在一番研究过后,得出了m个结论,这m个结论可以使他收获的西瓜最多. 笨笨的结论是这样的: 从西瓜地B处到E处至少要种植T个 ...

  3. 笨笨工作室告别十月模拟赛

    笨笨工作室告别十月模拟赛 为了大家适应今年复赛电子版题目特意整理了一份电子版题目: /Files/hhdllhflower/笨笨工作室告别十月模拟赛.rar Chess Background 笨笨:& ...

  4. 木老师教笨笨课堂——系列讲座(从函数指针到委托) 四、C#的委托

    四.C#的委托 ".Net以委托的形式实现了函数指针的概念."--<C#高级编程(第四版)> 现在看这句话,可能笨笨同学就有感觉了. 看书可能就是这样,想当初天山童姥的 ...

  5. 笨笨图片批量抓取下载 V0.2 beta[C# | WinForm | 正则表达式 | HttpWebRequest | Async异步编程]...

    一.     先贴一张图,这个界面就是程序的主界面了: 二.     部分代码说明(主要讲解异步分析和下载): 异步分析下载采取的策略是同时分析同时下载,即未等待数据全部分析完毕就开始把已经分析出来的 ...

  6. 算法训练 笨笨的机器人(20分)c++实现

    笨笨的机器人(20分) 问题描述 一个机器人位于一个 m x n 网格的左上角 . 机器人每次只能向下或者向右(果然很笨)移动一步.机器人试图达到网格的右下角 . 现在考虑网格中有障碍物.那么笨笨的机 ...

  7. 木老师教笨笨课堂——系列讲座(从函数指针到委托) 三、C++语言里的函数指针...

    先来回顾一下,我们说函数指针有一个重要的特性,它可以指向任何形参相同的函数.这样可以用统一的方式去调用不同的函数.(这个我还是希望笨笨同学好好思考一下,我想也是程序思想的精髓之一吧),就好比武功秘籍中 ...

  8. 快递小哥5年赚260万:哪有什么天生​牛逼,不过是笨笨地熬

    优秀的人,愿意笨笨地熬. 所有的体力活 最终都是脑力活 中国300多万快递员,谁是当中最牛的哪个? 窦立国应该被提名. 窦立国是一名快递小哥,2014年,阿里巴巴在纽约上市,马云带了8位敲钟人,他就是 ...

  9. 不遗憾的故事里,伴随着一颗笨笨的专心

    22.3岁是我人生"视野"极大开阔的一段时光.工作的原因,时常遇见不同行业的人,很容易就会被新鲜的事物迷惑,而误以为自己的"眼界"已大有不同.最可怕莫过于,在什 ...

最新文章

  1. 同样是AI技术,为什么只有一加6称得上“全速”旗舰?
  2. cmake使用教程(十一)-使用cpack打包源码并编写自动化脚本上传到仓库
  3. 在Eclipse中创建Maven多模块工程的例子
  4. keras inception_resnet_v2训练
  5. 0046-简单的分段函数(二)
  6. 如何通过httpd和DVD ISO在RHEL上配置yum本地源
  7. c#endread怎么打印出来_NetworkStream.EndRead(IAsyncResult) 方法 (System.Net.Sockets) | Microsoft Docs...
  8. 信息学奥赛一本通C++语言——1002:输出第二个整数
  9. php artisan key,Laravel:php artisan key:generate三种报错解决方案,修改默认PHP版本(宝塔面板)...
  10. nginx 与php版本,nginx-php不同版本问题
  11. 萌新的Python练习实例100例(五)输入三个整数x,y,z,请把这三个数由小到大输出。
  12. 『天涯杂谈』走的地方越多,越觉的中国的狭隘
  13. 阿里云 ubuntu 安装 curl
  14. python deap_在Python中用DEAP绘制多目标pareto边界
  15. 曾经一学长的ACM总结帖,膜拜之。
  16. Linux 之十五 Kernel 仓库、Kernel 协作方式、订阅邮件列表、提交 PATCH
  17. 交换机 VLAN 端口类型
  18. Debian10.12安装oracle11g(亲测有效)
  19. 五最好的应聘者可以问问题
  20. 计算机视觉未来的挑战,搜狗斩获ICPR 2020人脸关键点检测挑战赛冠军 计算机视觉技术持续领先...

热门文章

  1. 【MM32F5270开发板试用】一、让MM32F5270支持RT-Thread~打通串口UART
  2. 不评价别人,是对别人的尊重,也能让自己留下体面
  3. mysql datepart_MySql 的查询语句中有没有Datepart函数?
  4. 【推荐系统】隐语义模型(LFD)与矩阵分解(Matrix Factorization)
  5. 四川华巨同诚:拼多多月卡购买之后怎么退款
  6. 再次解读2006━2020年国家信息化发展战略
  7. IDEA 中某个项目 pom 文件灰色且有删除线
  8. ubuntu opencv安装教程
  9. 对接支付宝支付接口开发详细步骤
  10. SDUT 2021 Spring Individual Contest(for 20) - 2