【杭州赛区现场赛PROBLEM I】阅读理解与模拟-The Power of Xiangqi

本文深入探讨了一道与象棋战力计算相关的编程问题,通过阅读理解和简单模拟来解决双方棋子数量对战力的影响。特别关注了马和炮的特殊规则及其对整体战力的减损作用,同时提供了关键代码段和测试数据解析,旨在提升编程技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

来源:2012.11.04,2012 Asia Hangzhou Regional Contest,PROBLEM I,点击打开链接

这个题主要考阅读理解,主要是解决双方所剩象棋的战力问题,简单模拟。

但相比那个坑爹的求平方和,并不是说一点TRAP没有。

Since Ma and Pao working together can have good effect, if a player has no Ma or no Pao, or has neither(1), his total offense power will be decreased by one. But the total offense power can't be decreased to zero, it is at least one(2).

1的意思是,没有马||炮和没有马&&炮,效果是一样的,都是战斗力减一,不叠加。

2的意思是,战斗力最多减到一。如下测试数据应该判tie而不是RED WIN。

1

2 D E 

1 D

(结果是,TIE)

#include <iostream>
#include <string>
using namespace std;

int main()
{
    int testcase;
    cin>>testcase;
    while (testcase--)
    {
        int redpao=0,redma=0,blackma=0,blackpao=0;
        int redresult=0,blackresult=0;
        char tmp;


        int rednum;
        cin>>rednum;

        for (int i=0;i<rednum;i++)
        {
            cin>>tmp;
            if (tmp=='A')
                redresult+=16;
            if (tmp=='B')
            {
                redresult+=7;
                redma++;
            }
            if (tmp=='C')
            {
                redresult+=8;
                redpao++;
            }
            if (tmp=='D')
                redresult+=1;
            if (tmp=='E')
                redresult+=1;
            if (tmp=='F')
                redresult+=2;
            if (tmp=='G')
                redresult+=3;
        }
        if (redma==0 || redpao==0)
        {
            	redresult--;
        
        }
        if (redresult<=0)
        {
            redresult=1;
        }

        int blacknum;
        cin>>blacknum;
        for (int j=0;j<blacknum;j++)
        {
            cin>>tmp;
            if (tmp=='A')
                blackresult+=16;
            if (tmp=='B')
            {
                blackresult+=7;
                blackma++;
            }
            if (tmp=='C')
            {
                blackresult+=8;
                blackpao++;
            }
            if (tmp=='D')
                blackresult+=1;
            if (tmp=='E')
                blackresult+=1;
            if (tmp=='F')
                blackresult+=2;
            if (tmp=='G')
                blackresult+=3;
        }
        if (blackma==0||blackpao==0)
        {
            blackresult--;
           
   	        if (blackresult<=0)
        	{
            	blackresult=1;
        	}
        }


        if (redresult==blackresult)
        {
            cout<<"tie"<<endl;
        }
        if (redresult>blackresult)
        {
            cout<<"red"<<endl;
        }
        if (redresult<blackresult)
        {
            cout<<"black"<<endl;
        }

    }
    return 0;
}



最后,庆祝一下我的博客开通仅仅一个月便拥有了5000+的访问量,我会再接再厉的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值