天天看点

【POJ】:POJ 3117 World Cup吐槽题意解题思路代码

吐槽

呵呵呵呵,一下子想到了方法,然后对其进行了实现,但是后来居然仍然没有被AC,最后上网找了些许答案,发现他们跟我的一样,不知道是怎么AC的,最后试了很多最后终于AC了

题意

一场足球赛中,若果双方 平手 的话,那么双方各得一分,否则,赢的一方得3分,输的一方不得分。 输入比赛的数量 t 和 各队的得分,求出结果为平局的比赛的数量。

解题思路

如果用其他方法肯定不太好使,数学方法巨简单。。。

先求出各队得分的 总和 sum ,设 不是 平局的数量为 X, 平局的数量 为 Y, 则可得方程组:

3X + 2Y = sum ; X + Y = t (t 为比赛的总数量)

解之得 : Y = 3t - sum

代码

呵呵呵呵,我能告诉你OJ系统真坑吗,代码中指出

#include <iostream>
#include <string>
using namespace std;
int main(){
    int num,frequency;
    while(cin>>num>>frequency && num ){//就是这个点,不能添加 && frequency,否则就会认为是错的
        string s;
        int p_score,sum=;
        for(int i=;i<num;i++){
            cin>>s>>p_score;
            sum+=p_score;
        }
        cout<<(frequency*-sum)<<endl;
    }
    return ;
}