UOJ Logo wym6912的博客

博客

寒假小测 1 题解

2018-01-23 21:44:25 By wym6912

Problem A:

可以证明,金牌到银牌、银牌到铜牌、铜牌到铁牌的差值不会超过 2 。

当奖牌数 $n$ 被 5 (20%) 或者 10 (10%) 整除时会产生误差。

核心代码如下:

  int x1, x2, x3;
  if(n % 10 != 0)
    x1 = 1;
  else x1 = 0;
  x2 = x1;
  if(n % 5 != 0)
    x2 ++;
  x3 = x2;
  if(n % 10 != 0)
    x3 ++;

AC 代码:http://ppoj.ac.cn/submission/1002

Problem B:

这道题只需要记录最小值和最大值,然后利用公式:

\begin{equation} \frac {18k} {5 * (m + \max \limits_{1, 2, ..., n} {{x} _ {i}} )} \end{equation}

即可。

注意两个问题:

  • 注意特判。当 n = 0 或者 n = 1 的时候,请注意速度的特殊处理。

  • 读入优化。

    核心代码如下:

    ll ans1 = (k * 18) / (5 * maxx) + ((k * 18) % (5 * maxx) != 0);
    ll ans2 = (k * 18) / (5 * minx) + ((k * 18) % (5 * minx) != 0);

    AC 代码:http://ppoj.ac.cn/submission/1094

Problem C:

这道题可以寻找递推关系,也可以直接打表做。

AC 代码:http://ppoj.ac.cn/submission/1047

Problem D:

这道题本子应该 1, 2, 1, 2, ... 这样送,是需要本子最少的。

AC 代码:http://ppoj.ac.cn/submission/1101

Problem E:

这道题是一道模拟题。你需要设计一个变量 x, 表示可能弹出的最大数。如果当前数字与其相等,则直接输出;否则需要将它放入一个栈中。

接下来,如果栈不是空栈的话,就把栈内的东西按序输出。

AC 代码:http://ppoj.ac.cn/submission/1103

评论

暂无评论

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。