UESTC OJ 1647Battery Charging 模拟题
2012-05-06 15:14 javaspring 阅读(212) 评论(0) 编辑 收藏 举报题意很简单,就是判断在把手机卖出之前最多能玩多少天,能玩手机的前提是要有足够的电量。第i天充电能获得i单元的电量,第i天玩手机需要消耗i单位的电量。
思路:模拟,能玩的时候就玩,因为数据范围过大,模拟的时候不能一天一天模拟,需要跳跃式模拟。
题目:http://acm.uestc.edu.cn/problem.php?pid=1647
ac代码:
#include <iostream> #include <cstdio> using namespace std; int main() { int numcase; scanf("%d",&numcase); for(int i = 1;i <= numcase;++i) { int m,n; scanf("%d%d",&m,&n); int sum = 0; if(n - m <2) { sum = 0; continue; } else { while(m <= n) { int x = 2 * m + 1 - m - 2; m += 2; if(n >= m + 2*x + 1) { sum += (x + 1); m = m + 2*x + 1; } else { int y = (n - m)/2; sum += (y + 1); break; } } } printf("Case #%d: %d\n",i,sum); } return 0; }