URAL 1011 Conductors
2014-04-25 14:47
204 查看
题目大意:
叶卡捷琳堡公共汽车多,所以售票员也多,假设售票员人数大于城市人口的P%小于Q(0.01 ≤ P, Q ≤ 99.99,即精度为4位)。
现只有一个测例,给出P和Q,求城市可能的最小人口数。
题目链接
注释代码:
无注释代码:
单词解释:
conductor:n, 售票员,导体
naked:adj, 裸体的,直率的
Ekaterinburg:叶卡捷琳堡,城市名(苏联城市)
叶卡捷琳堡公共汽车多,所以售票员也多,假设售票员人数大于城市人口的P%小于Q(0.01 ≤ P, Q ≤ 99.99,即精度为4位)。
现只有一个测例,给出P和Q,求城市可能的最小人口数。
题目链接
注释代码:
/* * Problem ID : URAL 1517 Freedom of Choice * Author : Lirx.t.Una * Language : Visual C 2010 * Run Time : 0.015 * Run Memory : 136 KB */ #include <stdio.h> #include <math.h> //经测试的最低精度 #define EPS 1E-4 int main() { double p, q;//两个系数 double ori;//original,原值 double top;//经ceil或floor处理过的值 int ns;//number of salesmen,售票员可能的人数 int lft, rht;//城市总人数的区间,即总人数∈[lft, rht] //思路: //求范围 ns/q < total number of people in the city < ns/p //取整后得到 lft ≤ tot ≤ rht //只有当rht ≥ lft时tot有最优解lft //ns从1开始向上枚举 //遇到的第一个解必定是最优解 scanf("%lf%lf", &p, &q); ns = 1; do { ori = (double)ns * 100.0 / q; top = ceil(ori); if ( fabs(top - ori) < EPS )//判断浮点精度 lft = (int)top + 1; else lft = (int)top; ori = (double)ns * 100.0 / p; top = floor(ori); if ( fabs(ori - top) < EPS )//判断浮点精度 rht = (int)top - 1; else rht = (int)top; ns++; } while ( lft > rht ); printf("%d\n", lft); return 0; }
无注释代码:
#include <stdio.h> #include <math.h> #define EPS 1E-4 int main() { double p, q; double ori; double top; int ns; int lft, rht; scanf("%lf%lf", &p, &q); ns = 1; do { ori = (double)ns * 100.0 / q; top = ceil(ori); if ( fabs(top - ori) < EPS ) lft = (int)top + 1; else lft = (int)top; ori = (double)ns * 100.0 / p; top = floor(ori); if ( fabs(ori - top) < EPS ) rht = (int)top - 1; else rht = (int)top; ns++; } while ( lft > rht ); printf("%d\n", lft); return 0; }
单词解释:
conductor:n, 售票员,导体
naked:adj, 裸体的,直率的
Ekaterinburg:叶卡捷琳堡,城市名(苏联城市)
相关文章推荐
- URAL1011 - Conductors - 水题
- ural 1011. Conductors
- ural 1011 Conductors
- URAL 1011|Conductors|暴力
- URAL1011:Conductors
- URAL 1011 Conductors
- 1011. Conductors
- URAL ——1011 精度之坑
- 算法艺术与信息学竞赛习题1.2.4——售货员(ural1011 )
- Timus 1011. Conductors
- URAL 1011(枚举)
- URAL_2032_Conspiracy Theory and Rebranding(暴力枚举)
- URAL 1356. Something Easier(哥德巴赫猜想)
- 树形DP(HDOJ1011 2196 4003 5148 POJ2342)
- 1011. A+B和C (15)(数学啊 ZJU_PAT)
- URAL 1495. One-two, One-two 2
- 对于POJ 1011的一点理解
- Ural 1880. Psych Up's Eigenvalues
- 【BZOJ 1011】 [HNOI2008]遥远的行星
- Ural 1297 Palindrome 【最长回文子串】