考试题目“笨笨的西瓜种植”
来源:互联网 发布:尚硅谷java视频百度云 编辑:程序博客网 时间:2024/04/28 20:36
【题目描述】
笨笨种了一块西瓜地,但这块西瓜地的种植范围是一条直线的…… 笨笨在一番研究过后,得出了m个结论,这m个结论可以使他收获的西瓜最多。 笨笨的结论是这样的: 从西瓜地B处到E处至少要种植T个西瓜,这个范围的收获就可以最大化。 笨笨不想那么辛苦,所以他想种植的西瓜尽量少,而又满足每一个所得的结论。
【输入】
第一行两个数n,m(0<n<=5000,0<=m<=3000),表示笨笨的西瓜地长n,笨笨得出m个结论。
接下来m行表示笨笨的m个结论,每行三个数b,e,t(1<=b<=e<=n,0<=t<=e-b+1)
【输出】
输出笨笨最少需种植多少西瓜。
【输入样例】
9 4
1 4 2
4 6 2
8 9 2
3 5 2
【输出样例】
5
这道题必须做到“贪”!
尽量一个西瓜种的地方满足尽量多的条件
先sort
先以右边越小越好,再以左边越小越好
西瓜尽量种右边
问题就解决啦
代码如下:
<span style="font-size:12px;"><span style="BACKGROUND-COLOR: #ffff99">#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<stack>#include<queue>using namespace std;struct ill{int l,r,g;}a[3001];bool fuu(ill x,ill y){if(x.r<y.r)return 1;if(x.r==y.r&&x.l<y.l)return 1;return 0;}int v[5001],k;int main(){freopen("watermelon.in","r",stdin);freopen("watermelon.out","w",stdout);int n,m,i,j;scanf("%d%d",&n,&m);for(i=0;i<m;i++)scanf("%d%d%d",&a[i].l,&a[i].r,&a[i].g);sort(a,a+m,fuu);for(i=0;i<m;i++){for(j=a[i].l;j<=a[i].r;j++)if(v[j])a[i].g--;if(a[i].g>0){for(j=a[i].r ; j>=a[i].l&&a[i].g>0 ; j--){if(!v[j]){v[j]=1;a[i].g--;}}}}for(i=0;i<=n;i++)if(v[i])k++;printf("%d",k);}</span><span style="font-size:14px;"></span></span>
贪得好开心,一次AC!!(^-^)
2 0
- 考试题目“笨笨的西瓜种植”
- 笨笨的西瓜种植【贪心】
- 模拟考试9.3-笨笨的西瓜种植(watermelon.cpp)
- 树状数组+快排 笨笨的西瓜种植(赛)
- NOIP2016年普及组模拟考试(9.3) 2.笨笨的西瓜种植
- 【NOIP普及组】2016年模拟考试(9.3)——笨笨的西瓜种植
- Tyvj1415西瓜种植题解
- tyvj 1415 西瓜种植
- 考试小心的题目
- 几个考试遇到的题目
- 丝瓜的种植技术
- 考试题目
- 考试题目
- 考试题目
- 考试题目
- poj3254:玉米田的种植规划
- 自家种植的血橙
- 一道有趣的C#考试题目
- C++学习笔记(六)-- 类和对象 构造函数和析构函数 const成员函数 this指针 对象数组 堆栈管理变量
- textBox弹出Iframe下拉文本框
- 前端idea+tomcat搭建本地服务
- ubuntu设置环境变量
- 领域驱动DDD相关
- 考试题目“笨笨的西瓜种植”
- 我的第一篇博客
- static_assert的作用
- Visual Studio专业版下载安装激活破解教程
- cocos2dx Fadein FadeOut 无效
- CC2540 BLE peripheral 主动断开连接
- Java线程:线程的调度-让步
- 无题
- Lightoj1239