P3926 SAC E#1 - 一道不可做题 Jelly

【链接】:https://www.luogu.org/problem/show?pid=3926

题目背景

SOL君(炉石主播)和SOL菌(完美信息教室讲师)是好朋友。

题目描述

SOL君很喜欢吃蒟蒻果冻。而SOL菌也很喜欢蒟蒻果冻。

有一天,他们在一起搓炉石,而SOL菌则要拿出蒟蒻果冻招待他的客人。

蒟蒻果冻一般在a度下保存在冰箱里。但是刚拿出来的时候太冰了,需要加热。SOL菌打算用一种神奇的电炉加热蒟蒻果冻。根据观察,它有一个特点:

1、蒟蒻果冻小于c度的时候,每p单位时间加热1单位温度;

2、当蒟蒻果冻等于c度的时候,需要q单位时间解冻(大家都知道,晶体物态变化温度不变……SOL君认为果冻属于晶体);

3、当蒟蒻果冻解冻完成之后,每r单位时间加热1单位温度。

SOL想知道,将果冻加热x单位时间的时候果冻的温度。

温度向下取整,也就是说,如果加热结束时不足p(或q)单位时间,则认为在这最后一小段时间内果冻温度没有任何变化。

输入输出格式

输入格式:

输入仅包含一行,6个整数,依次为a,c,p,q,r,x。

输出格式:

输出仅包含一个整数:即为所求温度。

输入输出样例

输入样例#1:

-10 0 2 1 3 26
输出样例#1:

1
输入样例#2:

-10 0 2 1 3 27
输出样例#2:

2

说明

对于 30\%30% 的数据,|a|, |c| \leq 200, x \leq 100∣a∣,∣c∣≤200,x≤100。

对于 60\%60% 的数据,|a|, |c| \leq 2 \times 10^9, x \leq 100∣a∣,∣c∣≤2×10​9​​,x≤100。

对于 100\%100% 的数据,|a|, |c| \leq 2 \times 10^9, 1 \leq x, p, q, r \leq 10^9∣a∣,∣c∣≤2×10​9​​,1≤x,p,q,r≤10​9​​。

数据中可能有 a = ca=c,此时算还未解冻的状态。

提示:请使用long long数据类型。

【分析】:注意点是特判x》p。

如果a>c,ans=a+[x/r];

如果a==c有两种情况:

x<=q ,ans=c;

x>q, ans=c+[(x-q)/r];

如果a<c有三种情况:

x<=(c-a)p ,ans=a+[x/p];

(c-a)p<=x<=(c-a)p+q,ans=c;

x>(c-a)p+q,ans=c+[(x-(c-a)p-q)/r];

【时间复杂度】:O(1)

【代码】:

#include <cstdio>
#include <algorithm>
using namespace std;
#define LL long long
int main()
{
LL a,c,p,q,r,x;
scanf("%lld%lld%lld%lld%lld%lld",&a,&c,&p,&q,&r,&x);
int ans;
int t=;
while(a<c&&x>=p)//注意判断x》p!!!
{
x-=p;
a++;
}
//printf("time=%d c=%d\n",t,a);
if(a==c)
x-=q;
//printf("time=%d c=%d\n",t,a);
while(x>=r)
{
x-=r;
a++;
}
//printf("time=%d c=%d\n",t,a);
printf("%lld\n",a);
return ;
}
#include <iostream>

using namespace std;

#define LL long long

int main() {
LL a,c,p,q,r,x,t;
cin >> a >> c >> p >> q >> r >> x; if(a<c) {
t = min(x, p*(c-a));
x -= t;
a += t / p;
} if(a==c) {
x -= min(x, q);
} a += x / r;
cout << a << endl;
}

标程

最新文章

  1. try...catch..finally
  2. Unity3d连接SQL Server数据库出现SocketException: 使用了与请求的协议不兼容的地址错误
  3. 脚本调用脚本时.与bash的差别
  4. 打开android虚拟机时出现a repairable android virtual device
  5. 2014中国软件开发者调查(一):Java最受欢迎 第二语言JS使用比例最高
  6. ZOJ 1092 Arbitrage
  7. 03_线程的创建和启动_实现Runnable接口方式
  8. OC - 1.面向过程和面向对象的思想对比
  9. TF31003错误的解决办法
  10. linux下的时间及时区设置
  11. 解决Windows和Linux使用npm打包js和css文件不同的问题
  12. MySQL 取得小时分钟部分
  13. iOS开发只简单动画实现
  14. Ubuntu16.04下安装nginx+mysql+php+redis
  15. &lt;jsp:param&gt;标签给属性赋值时的一个坑
  16. git入门与实践【转】
  17. 公司软raid问题
  18. 简单易用的安装文件制作工具NSIS的使用demo示例
  19. 网友写的解决uniGUI限制的方法
  20. jsp中jsp:forward 与 redirect区别

热门文章

  1. AGC016C +/- Rectangle(构造)
  2. [洛谷P3834] 【模板】可持久化线段树 1(主席树)
  3. hadoop基础----hadoop实战(九)-----hadoop管理工具---CDH的错误排查(持续更新)
  4. HTML5用canvas绘制五星红旗
  5. centos 安装mysql 笔记
  6. js删除一个父元素下面的所有子元素
  7. unity中绘制战争迷雾
  8. [FZU2261]浪里个浪
  9. ZOJ1003 Crashing Balloon
  10. 打包工具 Inno Setup 5