题意:

给出整数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相关推荐

  1. 【模拟】CodeForces - 127C Hot Bath

    Problem Description 输入t1, t2, x1, x2, t0分别代表冷水的温度,热水的温度,冷水的总量,热水的总量,目标温度.让你求y1,y2分别代表冷水的量,热水的量. 公式t ...

  2. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  3. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

  4. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

  5. CodeForces 获得数据

    针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...

  6. codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...

    题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...

  7. CodeForces 595A

    题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...

  8. codeforces A. Jeff and Digits 解题报告

    题目链接:http://codeforces.com/problemset/problem/352/A 题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这 ...

  9. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

最新文章

  1. 【机器视觉】探索机器学习理论的最新进展,走近云、端、芯上的视觉计算
  2. UBUNTU手动安装JDK的详细步骤
  3. GAN生成对抗网络-SSGAN原理与基本实现-半监督学习GAN-08
  4. 数据:BTC全网算力为146.06 EH/s,新增地址数51.19万
  5. virtualbox虚拟机上安装centOS的网络配置(安装centos时选择桥接网络)
  6. 讲述MPLS技术及其标准化进展
  7. 以后再也不用看“教程”!概括【配置环境】的原理,小白也能举一反三的python配置环境过程!
  8. 浅谈JVM垃圾回收机制
  9. 2月21 深度优先与广度优先
  10. v割与邮票孔_pcb板V割和邮票孔的区别
  11. SQLSERVER中使用函数去掉数据中的空格,批量删除数据中空格、换行符?,替换字段中字符串
  12. 智能电视软件安装(WIFI上网)
  13. 致远OA任意管理员登陆漏洞分析
  14. 云端转型突破临界点,金蝶云加速企业云服务落地
  15. Excel求和公式的几种用法
  16. Google Play上架总结(一)为什么要上架Google Play
  17. 安卓开发者必备的5款App:终端模拟器、颜色萃取、移动IDE等
  18. 【Other】推荐点好听的钢琴曲
  19. 浮点数为什么不精确?
  20. 【CXY】JAVA基础 之 Map

热门文章

  1. 计算机术语hpa,hpa(计算机术语)_百度百科
  2. Visual studio未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包
  3. 【BUG】The import XXX collides with another import statement
  4. for(Map.EntryString, String entry:params.entrySet())
  5. 无线串口服务器设置,怎么使用无线串口服务器
  6. dialog出现Uncaught RangeError: Maximum call stack size exceeded错误
  7. JAVA MemCache 史无前例的详细讲解
  8. shiro权限拦截失效
  9. 导出计算机配置信息吗,怎么导出电脑配置信息
  10. 网络创业者之家:盘点那些不起眼的赚钱机会,成就了大批年轻人。