nyoj 309 bobsledding 即河南省第四届大学生程序设计大赛第七题
2012-03-09 07:56
381 查看
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=309
题意:很好理解就是选手可以选择加速,或者保持速度不变,但在要求的点处速度不能超过给定的值。
思路就是从起点开始不断加速,到有限制点时比较当前的速度和限制速度,如果当前速度小于限制速度则继续进行,否则,把当前的速度改为限制速度继续进行,直到最后,将结果保存到一个数组中,然后从后向前做同样的操作,直到0,不同之处在于在终点时的初始速度不能为1,而应该为不能达到的速度,将结果保存在另一个数组中,比较上面的两个数组,取相同位置的最小值,这样在这些值里边找最大的就是最求的最大速度。
View Code
题意:很好理解就是选手可以选择加速,或者保持速度不变,但在要求的点处速度不能超过给定的值。
思路就是从起点开始不断加速,到有限制点时比较当前的速度和限制速度,如果当前速度小于限制速度则继续进行,否则,把当前的速度改为限制速度继续进行,直到最后,将结果保存到一个数组中,然后从后向前做同样的操作,直到0,不同之处在于在终点时的初始速度不能为1,而应该为不能达到的速度,将结果保存在另一个数组中,比较上面的两个数组,取相同位置的最小值,这样在这些值里边找最大的就是最求的最大速度。
View Code
#include<iostream> #include<cmath> #include<cstring> #include<cstdio> using namespace std; int a[1005]; int b[1005]; int c[1005]; int main() { int i,n,m,k,x,y; while(scanf("%d%d",&n,&m)!=EOF) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); for (i=1;i<=m;i++) { scanf("%d%d",&x,&y); a[x]=y; } k=1; for (i=0;i<=n;i++) { if(!a[i]) b[i]=k++; else { if(a[i]>k); else k=a[i]; b[i]=k++; } } k=2000; for (i=n;i>=0;i--) { if(!a[i]) c[i]=k++; else { if(a[i]>k); else k=a[i]; c[i]=k++; } } for (i=0;i<=n;i++) { if(b[i]<c[i]); else b[i]=c[i]; } k=0; for(i=0;i<=n;i++) if(b[i]>k)k=b[i]; cout<<k<<endl; } return 0; }
相关文章推荐
- 第四届河南省程序设计大赛 序号互换 nyoj 303
- nyoj 1236挑战密室 河南省第八届大学生程序设计大赛acm
- NYOJ-305-表达式求值(第四届河南省程序设计大赛C题(模拟+栈||递归)(sscanf函数的应用))
- nyoj308 Substring(第四届河南省程序设计大赛)
- NYOJ-308-Substring(第四届河南省程序设计大赛F题(简单状压dp))
- nyoj 303 序号互换 第四届河南省程序设计大赛
- nyoj305表达式求值(第四届河南省程序设计大赛)
- NYOJ-303-序号互换(第四届河南省程序设计大赛A题(模拟))
- NYOJ 303【序号互换】第四届河南省程序设计大赛
- 第四届河南省程序设计大赛-NYOJ-303-序号互换
- NYoj303 第四届河南省程序设计竞赛
- NYOJ-168-房间安排(第三届河南省程序设计大赛A题)
- 第八届河南省程序设计大赛-NYOJ-1237-最大岛屿(DFS)
- 第三届河南省程序设计大赛-NYOJ-171-聪明的kk
- nyoj714 Card Trick(第六届河南省程序设计大赛)
- 第四届河南省程序设计大赛 - 部分题解
- 第四届吉林省大学生程序设计大赛个人解题报告 Problem H: New Feature in Windows 7
- NYoj303 第四届河南省程序设计竞赛
- 第八届河南省程序设计大赛-NYOJ-1238-最少换乘
- nyoj1249 物资调度 (第七届河南省程序设计大赛)