质疑

这道题不能够想当然吧!

此处贴上已通过的代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c,x,y,z;
    cin>>a>>b>>c>>x>>y>>z;
    long long ans=0;
    ans+=y<=a?y:a;
    ans+=z<=b?z:b;
    ans+=x<=c?x:c;
    cout<<ans;
    return 0;
}
我的质疑:
    直接上例子: 若牛牛出石头、剪刀和布的次数依次为3,2,1;牛可乐出石头、剪刀和布的次数依次为1,2,3。按照已通过的代码的思路走一遍的话,得出的答案应该是5,可是正确答案应该是4。如题所示,a,b,c,x,y,z依次表示牛牛出石头、剪刀和布的次数和牛可乐出石头、剪刀和布的次数
        a(3) > y(2); ans = 2(y);
        b(2) < z(3); ans += 2(b) --> ans = 4;
        c(1) = x(1); ans += 1(c或x) --> ans = 5;
可是此时牛牛还剩1次石头(a)没有出,牛可乐还有1次布(z)没有出,所以最后一次牛牛必输,ans -= 1;
综上所述:答案是4,并非已通过程序跑出来的5!
全部评论
有趣...
1 回复 分享
发布于 2020-02-11 14:22
确实不能够想当然
1 回复 分享
发布于 2020-02-08 18:27
按你说的例子,如果按照如下顺序,牛牛可以获得最优解,胜利五次.(题目问的是最多) 牛牛: 石,石,石,剪,剪,布 可乐: 剪,剪,布,布,布,石 评判: 胜,胜,负,胜,胜,胜
1 回复 分享
发布于 2020-02-08 18:13
明白了,谢谢,问的是赢得局数,我这算的是得分😶
点赞 回复 分享
发布于 2020-02-19 15:19
想起了电影动物世界里的博弈。这里输了又不会扣赢的星星😂。。
点赞 回复 分享
发布于 2020-02-12 13:35
是最多赢几次,输了不会对赢了的次数有影响,所以你最后不用ans-=1; 你应该是没仔细看题目,想当然了
点赞 回复 分享
发布于 2020-02-12 11:40

相关推荐

04-29 22:35
门头沟学院 Java
牛友说改了名字能收到offer:旧图新发查看图片
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务