StevenLu1103 发表于 2019-8-10 17:22:05

分享一道我们编程社的题并求助


我写的C++代码如下,自我感觉没错但OJ会报RuntimeError,求指教
#include <iostream>
using namespace std;
int main()
{
    int L, n, rF, rB;
    cin >> L >> n >> rF >> rB;
    int c, t, x;
    for (int i = 0; i < n; i++)
                   cin >> x >> c;
           for (int i = 0; i < n; i++) {
                       int a = 0;
                       for (int j = 0; j < i; j++) a += t;
                       t = (rF - rB) * x - a;
    }
    int res = 0;
           for (int i = 0; i < n; i++) res += c * t;
           cout << res << endl;
           return 0;
}我做题的思路比较数学,设ZY老师在第i个休息点休息ti个单位时间,题意可以翻译为:

整理后:


引入拉格朗日乘子得:


求导得:

令导数为零解方程得:

欢迎各位大佬发表自己的见解,请多指教,以及这个运行时错误到底怎么来的?


Seawolf 发表于 2019-8-14 23:15:37

看不懂题目,能否解释一下input和output的样例还有提示

StevenLu1103 发表于 2019-8-15 15:53:22

Seawolf 发表于 2019-8-14 23:15
看不懂题目,能否解释一下input和output的样例还有提示

两张图片有重复,你把第二张图沿“样例输入”折起就好

Seawolf 发表于 2019-8-15 23:24:34

StevenLu1103 发表于 2019-8-15 15:53
两张图片有重复,你把第二张图沿“样例输入”折起就好

不是哦,我看不懂的是
10 2 4 3
7 2
8 1
的input,那么output 15是怎么的出来的呀

StevenLu1103 发表于 2019-8-17 14:31:21

Seawolf 发表于 2019-8-15 23:24
不是哦,我看不懂的是
10 2 4 3
7 2


在x=7处休息7秒得2*7=14点,在x=8处休息1秒得1点,共15点

Seawolf 发表于 2019-8-17 14:38:33

StevenLu1103 发表于 2019-8-17 14:31
在x=7处休息7秒得2*7=14点,在x=8处休息1秒得1点,共15点

可否解释的详细一点呢,一共的距离是10,有2个休息点,快的每单位可以走4个距离,慢的3个距离,那么为什么在7的距离可以休息7秒呢

Mangata 发表于 2019-8-25 09:53:36

Seawolf 发表于 2019-8-17 14:38
可否解释的详细一点呢,一共的距离是10,有2个休息点,快的每单位可以走4个距离,慢的3个距离,那么为什 ...

4指的是走一个单位距离需要四秒,不是一秒走四个单位距离
页: [1]
查看完整版本: 分享一道我们编程社的题并求助