hdu1422 重温世界杯
2013-01-14 11:45
197 查看
环形最长非负子序列
因为 数据 是 100000 因此遍历两次必超时
而且要求第i个城市可以回到第1个城市
因此用dp[i] 和 dp[i + ct] 表示 第 i 个城市的 w - l
所以只要一次遍历
只要num累加的和 大于等于 0 就可以
因为最多就能访问ct个城市
所以只要 tmp > ct 就 break还可优化下
因为 数据 是 100000 因此遍历两次必超时
而且要求第i个城市可以回到第1个城市
因此用dp[i] 和 dp[i + ct] 表示 第 i 个城市的 w - l
所以只要一次遍历
只要num累加的和 大于等于 0 就可以
因为最多就能访问ct个城市
所以只要 tmp > ct 就 break还可优化下
#include <stdio.h> int main ( ) { int ct, w, l, dp[210000], num; while ( scanf ( "%d", &ct ) != EOF ) { for ( int i = 1; i <= ct; ++i ) { scanf ( "%d%d", &w, &l); dp[i] = dp[i + ct] = w - l; } int tmp = 0, ans = 0; num = 0; for ( int i = 1; i <= ct * 2; ++i ) { num += dp[i]; tmp++; if ( num < 0 ) { num = 0; tmp = 0; } if ( tmp > ans ) ans = tmp; if ( tmp >= ct ) break; } if ( ans > ct ) ans = ct; printf ( "%d\n", ans ); } } ~
相关文章推荐
- hdu1422 重温世界杯
- hdu1422 重温世界杯
- hdu1422重温世界杯(小组赛B) 最长非负子序列
- HDU1422重温世界杯
- 【动态规划】HDU1422重温世界杯【最大子段和变形】
- hdu1422重温世界杯
- hdu1422 重温世界杯【动态规划】
- HDU 1422 重温世界杯 环形序列的最长非负连续子序列
- HDU 1422 重温世界杯
- HDU 1422-重温世界杯
- hdu 1422 重温世界杯(最大连续子段和变形)
- Hdu 1422 - 重温世界杯
- 【HDOJ】1422 重温世界杯
- hdu 1422 重温世界杯
- 【瞎搞】HDU 1422 重温世界杯
- 重温世界杯
- 暑期dp46道(11)——HDOJ 1422重温世界杯 dp+记忆化搜索
- HDOJ 1422 重温世界杯
- Hdu1422 重温世界杯(模拟)
- 【瞎搞】HDU 1422 重温世界杯