Codeforces 127C Hot Bath
题意:
给出整数t1,t2,x1,x2,t0,和公式,(1 ≤ t1 ≤ t0 ≤ t2 ≤ 106, 1 ≤ x1, x2 ≤ 106).求满足(0 ≤ y1 ≤ x1, 0 ≤ y2 ≤ x2)此条件的y1,y2使得t最接近t0,但要保证t>t0.输出y1,y2.多种方案时输出最大的y1,y2.
题解:不4个特判必WA。不过这4个特判不太容易想全。
case 1:t1==t0 && t2!=t0 => y1=x1,y2=0
case 2:t2==t0 && t1!=t0 => y1=0,y2=x2
case 3:t1==t2 =>y1=x1,y2=x2
做法:
枚举y1,然后t2可以解出来。在选最小的,不过也有坑!见程序吧
case 4:非常难想到的是,当y1==0,方程解出y2=0此时显然不对,所以此种情况仍需处理。
#include<iostream>
#include<cstring>
using namespace std;
long long t1,t2,x1,x2,t0,f1,f2;
long long cal(long long t1,long long y1,long long t2,long long y2)
{return t1*y1+t2*y2-t0*(y1+y2);
}
void solve(long long y1,long long y2)
{if(y2<0)y2=0;else if(y2>x2)y2=x2;//溢出if(y1==0 && y2==0)return;//WAif(t1*y1+t2*y2<t0*(y1+y2))return;//不满足t>=t0的条件if(cal(t1,y1,t2,y2)*(f1+f2)<cal(t1,f1,t2,f2)*(y1+y2)||(f1<0 && f2<0)){f1=y1;f2=y2;}elseif(cal(t1,y1,t2,y2)*(f1+f2)==cal(t1,f1,t2,f2)*(y1+y2)&&y1+y2>f1+f2){f1=y1;f2=y2;}
}
int main()
{long long y2;while(cin>>t1>>t2>>x1>>x2>>t0){f1=-1,f2=-1;if(t1==t2)//case{f1=x1;f2=x2;}else if(t1==t0)//case{f1=x1;f2=0;}else if(t2==t0)//case{f1=0;f2=x2;}elsefor(long long y1=1;y1<=x1;y1++){if(t0>t2){y2=(t1*y1-t0*y1)/(t0-t2);solve(y1,y2);}elseif(t0<t2){y2=(t1*y1-t0*y1)%(t0-t2)==0?(t1*y1-t0*y1)/(t0-t2):1+(t1*y1-t0*y1)/(t0-t2);solve(y1,y2);}}//y1=0 case 4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!if(t2>=t0)solve(0,x2);cout<<f1<<" "<<f2<<endl;}return 0;
}
Codeforces 127C Hot Bath相关推荐
- 【模拟】CodeForces - 127C Hot Bath
Problem Description 输入t1, t2, x1, x2, t0分别代表冷水的温度,热水的温度,冷水的总量,热水的总量,目标温度.让你求y1,y2分别代表冷水的量,热水的量. 公式t ...
- CodeForces 375D Tree and Queries
传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...
- 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)
题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...
- 【codeforces 812C】Sagheer and Nubian Market
[题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...
- CodeForces 获得数据
针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...
- codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...
题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...
- CodeForces 595A
题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...
- codeforces A. Jeff and Digits 解题报告
题目链接:http://codeforces.com/problemset/problem/352/A 题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这 ...
- Codeforces Round #506 (Div. 3)
Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...
最新文章
- 【机器视觉】探索机器学习理论的最新进展,走近云、端、芯上的视觉计算
- UBUNTU手动安装JDK的详细步骤
- GAN生成对抗网络-SSGAN原理与基本实现-半监督学习GAN-08
- 数据:BTC全网算力为146.06 EH/s,新增地址数51.19万
- virtualbox虚拟机上安装centOS的网络配置(安装centos时选择桥接网络)
- 讲述MPLS技术及其标准化进展
- 以后再也不用看“教程”!概括【配置环境】的原理,小白也能举一反三的python配置环境过程!
- 浅谈JVM垃圾回收机制
- 2月21 深度优先与广度优先
- v割与邮票孔_pcb板V割和邮票孔的区别
- SQLSERVER中使用函数去掉数据中的空格,批量删除数据中空格、换行符?,替换字段中字符串
- 智能电视软件安装(WIFI上网)
- 致远OA任意管理员登陆漏洞分析
- 云端转型突破临界点,金蝶云加速企业云服务落地
- Excel求和公式的几种用法
- Google Play上架总结(一)为什么要上架Google Play
- 安卓开发者必备的5款App:终端模拟器、颜色萃取、移动IDE等
- 【Other】推荐点好听的钢琴曲
- 浮点数为什么不精确?
- 【CXY】JAVA基础 之 Map
热门文章
- 计算机术语hpa,hpa(计算机术语)_百度百科
- Visual studio未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包
- 【BUG】The import XXX collides with another import statement
- for(Map.EntryString, String entry:params.entrySet())
- 无线串口服务器设置,怎么使用无线串口服务器
- dialog出现Uncaught RangeError: Maximum call stack size exceeded错误
- JAVA MemCache 史无前例的详细讲解
- shiro权限拦截失效
- 导出计算机配置信息吗,怎么导出电脑配置信息
- 网络创业者之家:盘点那些不起眼的赚钱机会,成就了大批年轻人。