动态规划 洛谷P1868 饥饿的奶牛
P1868 饥饿的奶牛
题目描述
有一条奶牛冲出了围栏,来到了一处圣地(对于奶牛来说),上面用牛语写着一段文字。
现用汉语翻译为:
有N个区间,每个区间x,y表示提供的x~y共y-x+1堆优质牧草。你可以选择任意区间但不能有重复的部分。
对于奶牛来说,自然是吃的越多越好,然而奶牛智商有限,现在请你帮助他。
输入输出格式
输入格式:
第一行,N,如题
接下来N行,每行一个数x,y,如题
输出格式:
一个数,最多的区间数
输入输出样例
输入样例#1:
3 1 3 7 8 3 4
输出样例#1:
5
说明
1<=n<=150000
0<=x<=y<=3000000
我太菜了......难受
第一遍写了个zz的贪心,刚写完就发现错误了
第二遍二维动归,迷之错误,现在我仍然不知道为什么二维是错的
第三遍改邪归正,老老实实地瞎写......
记录几句毒鸡汤:
1.别学了,退役吧
2.高考都这么菜,退役吧
3.下学期就省赛了,你连这水题都不会做,退役吧
4.待更新......
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 int n,ans; 7 struct data{ 8 int x,y,len; 9 }node[2000010]; 10 int f[4000010]; 11 bool cmp(const data&aa,const data&bb){ 12 return aa.y<bb.y; 13 } 14 int main(){ 15 scanf("%d",&n); 16 for(int i=1;i<=n;i++){ 17 scanf("%d%d",&node[i].x,&node[i].y); 18 node[i].len=node[i].y-node[i].x+1; 19 } 20 sort(node+1,node+n+1,cmp); 21 for(int i=1;i<=n;i++){ 22 for(int j=node[i].y-1;j>=0;j--){ 23 if(f[j]) break; 24 f[j]=ans; 25 } 26 f[node[i].y]=max(f[node[i].x-1]+node[i].len,ans); 27 ans=max(f[node[i].y],ans); 28 } 29 printf("%d",ans); 30 return 0; 31 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥