uva507 - Jill Rides Again(JIll又骑车了)
来源:互联网 发布:php curl 设置cookie 编辑:程序博客网 时间:2024/04/30 16:09
思路不难,就是暴力,
两层暴力。不过要剪枝,
考虑那次循环是无用的,则跳过那样的耗时、
假如1~m目前求得的最大值是M。
那么如果a[1]>0的话,就没有必要让i=2再来一次循环了,因为a[1]>0,所以2~m最大值会比M少a[1].,所以把这样的无用功剪去就好了
代码如下:
#include <cstdio>#define M 20010int n, a[M];int main (){ int cas, t = 0, n, sum, maxi, maxj, max, m; scanf("%d",&cas); while(t++<cas) { scanf("%d",&n); for(int i = 1; i < n; i++) scanf("%d",&a[i]); a[0] = -1; sum = -1; maxi = maxj = max = m = 0; for(int i = 1; i < n; i++) { m+=a[i-1];//剪枝条件判断 if(m>=0) continue; sum = 0; for(int j = i; j < n; j++) { sum+=a[j];//printf("%d %d = %d\n",i,j,sum); if(sum>max) {max = sum; maxi = i; maxj = j;} if(sum==max&&maxj-maxi<j-i) {max = sum; maxi = i; maxj = j;} } m = 0; } if(max<=0) printf("Route %d has no nice parts\n",t); else printf("The nicest part of route %d is between stops %d and %d\n",t,maxi, maxj+1); } return 0;}
- uva507 - Jill Rides Again(JIll又骑车了)
- UVA507-Jill Rides Again
- uva507 - Jill Rides Again(好题)
- uva507 - Jill Rides Again(最长连续和)
- uva507 - Jill Rides Again(最大子序列和)
- 507 - Jill Rides Again
- UVaOJ507 - Jill Rides Again
- UVa 507 - Jill Rides Again
- UVa 507 - Jill Rides Again
- uva 507 - Jill Rides Again
- UVa 507 - Jill Rides Again
- UVa 507 Jill Rides Again
- UVA 507 - Jill Rides Again
- UVA - 507 Jill Rides Again
- UVa 507 - Jill Rides Again
- UVa 507 - Jill Rides Again
- UVA--507 Jill Rides Again
- UVa 507 - Jill Rides Again
- 内核的移植
- 百度ueditor单文件上传
- Path Data 常用图形
- bmp文件
- ruby require VS autoload
- uva507 - Jill Rides Again(JIll又骑车了)
- GET和POST
- JavaWeb之会话技术
- Linux平台上手动卸载Oracle数据库
- The Program of Algorithms ------- Diveide and Conquer ---- Randomized-Select
- 重定向和跳转的区别
- 孫子に学ぶITマネジメント CIOの予算獲得編(1)勝ち方は体系化できる
- Tomcat部署工程的3种方法
- e-人事管理系统-系统概述-应用范围