4011HDU

	这道题大概是说,人一开始在北京,在每一个特定的日子就需要返回上海。
	题目说的所谓要提前一天坐飞机和在那一天之后的一天再返回没有任何意义。
	去上海和返回北京都需要机票钱,最后必须返回北京,人在北京每一天都有工资,如果去了上海,那么就得不到这一天的工资。
	有很多个这样需要返回上海的日子,需要判断
	如果两次需要返回上海的日子的间隔期间不能挣的工资钱小于往返的机票钱,那么人就不需要返回北京
	最后题目所求的最小cost总的来说就是求最少花费的钱,包括所耽误的不能挣的工资钱,往返的机票钱
#include<iostream>
#include<algorithm>
using namespace std;
int date[100001];
int main()
{
	ios::sync_with_stdio(false);
	int t;
	cin>>t;
	for(int j=1;j<=t;j++)
	{
		int n,a,b;
		unsigned long long cost=0;
		//注意这里使用了unsigned long long 数据,如果数据使用的范围小了,就不会ac
		cin>>n>>a>>b;
		for(int i=0;i<n;i++)
		{
			cin>>date[i];
		}
		cost+=(a*2+b);
		for(int i=0;i<n-1;i++)
		{
			cost+=min((date[i+1]-date[i])*b,2*a+b);
		}
		cout<<"Case #"<<j<<": "<<cost<<endl;
	}
	return 0;
}
	注意在上面的代码中使用了这样一条语句
	ios::sync_with_stdio(false);
	如果不使用这样一条语句,就会超时
	原因如下

因为C++中,cin和cout要与stdio同步,中间会有一个缓冲,所以导致cin,cout语句输入输出缓慢,这时就可以用这个语句,取消cin,cout与stdio的同步,说白了就是提速,效率基本与scanf和printf一致。然后就可放心的使用cin,cout了。(不过实际上使用了using namespace std;之后就可以直接打ios::sync_with_stdio(false);了)
ios::sync_with_stdio(false);加在cin和cout之前

	当然,除了加入这条语句,还有另一种提高速度的办法,那就是将代码中的所有cout和cin语句换成printf和scanf
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值