{"id":344,"date":"2018-11-05T19:35:39","date_gmt":"2018-11-05T11:35:39","guid":{"rendered":"http:\/\/SmokeyDays.top\/wordpress\/?p=344"},"modified":"2018-11-05T19:36:16","modified_gmt":"2018-11-05T11:36:16","slug":"lp5006-%e7%a9%ba%e9%97%b4%e5%a4%8d%e6%9d%82%e5%ba%a6","status":"publish","type":"post","link":"http:\/\/SmokeyDays.top\/wordpress\/2018\/11\/05\/lp5006-%e7%a9%ba%e9%97%b4%e5%a4%8d%e6%9d%82%e5%ba%a6\/","title":{"rendered":"lp5006 \u7a7a\u95f4\u590d\u6742\u5ea6"},"content":{"rendered":"<p>\u4e00\u9053\u5927\u529b\u6a21\u62df\u9898\u3002<br \/>\n\u51e1\u662f\u6a21\u62df\u9898\u90fd\u53ef\u4ee5\u8003\u8651\u9762\u5411\u5bf9\u8c61\u3002<br \/>\n\u5f53\u7136\u9762\u5411\u5bf9\u8c61\u5728\u901f\u5ea6\u4e0a\u6709\u52a3\u52bf\uff0c\u4f46\u662f\u663e\u7136\u662f\u66f4\u6e05\u6670\u7684\u3002<\/p>\n<pre class=\"pure-highlightjs\"><code class=\"cpp\">\r\n#include&lt;iostream&gt;\r\n#include&lt;cstdio&gt;\r\nusing namespace std;\r\n#define Max(_A,_B) ((_A)&gt;(_B)?(_A):(_B))\r\nstruct Ans{\r\n    int HP,STR,DEF;\r\n};\r\nchar MAP[105][105];\r\nint enemyHP,enemySTR,enemyDEF;\r\nclass Player{\r\n    private:\r\n        int HP;\r\n        int STR;\r\n        int DEF;\r\n        int X;\r\n        int Y; \r\n    public:\r\n        inline void playerReset(int _X,int _Y,int _STR,int _DEF){\r\n            X=_X,Y=_Y,STR=_STR,DEF=_DEF;\r\n            HP=0;\r\n        }\r\n        inline Ans playerQuery(){\r\n            return (Ans){HP,STR,DEF};\r\n        }\r\n        inline void eventQ(){\r\n            STR+=5;\r\n        }\r\n        inline void eventY(){\r\n            DEF+=5;\r\n        }\r\n        inline void eventR(){\r\n            HP=(HP&gt;10)?(HP-10):0;\r\n        }\r\n        inline void eventM(){\r\n            int monsterDamage;\r\n            monsterDamage=Max(1,((enemyHP+Max(1,STR-enemyDEF)-1)\/(Max(1,STR-enemyDEF)))*(Max(1,enemySTR-DEF)));\r\n            HP+=monsterDamage;\r\n        }\r\n        inline void playerGetEvent(){\r\n            switch(MAP[X][Y]){\r\n                case '.':{\r\n                    return;\r\n                    break;\r\n                }\r\n                case 'M':{\r\n                    eventM();\r\n                    break;\r\n                }\r\n                case 'R':{\r\n                    eventR(); \r\n                    break;\r\n                }\r\n                case 'Q':{\r\n                    eventQ();\r\n                    break;\r\n                }\r\n                case 'Y':{\r\n                    eventY();\r\n                    break;\r\n                }\r\n            }\r\n        }\r\n        inline void playerMove(char moveOperator){\r\n            int _DX,_DY;\r\n            switch(moveOperator){\r\n                case 'W':{\r\n                    _DX=0;\r\n                    _DY=-1;\r\n                    break;\r\n                }\r\n                case 'E':{\r\n                    _DX=0;\r\n                    _DY=1;\r\n                    break;\r\n                }\r\n                case 'N':{\r\n                    _DX=-1;\r\n                    _DY=0;\r\n                    break;\r\n                }\r\n                case 'S':{\r\n                    _DX=1;\r\n                    _DY=0;\r\n                    break;\r\n                }\r\n            }\r\n            X+=_DX,Y+=_DY;\r\n            playerGetEvent(); \r\n        }\r\n};\r\nint n,m,q;\r\nPlayer player;\r\nvoid init(){\r\n    scanf(\"%d%d\",&amp;n,&amp;m);\r\n    for(int i=1;i&lt;=n;++i){\r\n        cin&gt;&gt;MAP[i]+1;\r\n    }\r\n    scanf(\"%d%d%d\",&amp;enemyHP,&amp;enemySTR,&amp;enemyDEF);\r\n    int x,y,d,e;\r\n    scanf(\"%d%d%d%d%d\",&amp;x,&amp;y,&amp;d,&amp;e,&amp;q);\r\n    player.playerReset(x,y,d,e);\r\n    char ch[5];\r\n    Ans nw;\r\n    for(int i=1;i&lt;=q;++i){\r\n        cin&gt;&gt;ch;\r\n        if(ch[0]=='M'){\r\n            cin&gt;&gt;ch;\r\n            player.playerMove(ch[0]);\r\n        }else if(ch[0]=='Q'){\r\n            nw=player.playerQuery();\r\n            printf(\"%d %d %d\\n\",nw.HP,nw.STR,nw.DEF);\r\n        }\r\n    }\r\n}\r\nint main(){\r\n    init();\r\n    return 0;\r\n}\r\n<\/code><\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u9053\u5927\u529b\u6a21\u62df\u9898\u3002 \u51e1\u662f\u6a21\u62df\u9898\u90fd\u53ef\u4ee5\u8003\u8651\u9762\u5411\u5bf9\u8c61\u3002 \u5f53\u7136\u9762\u5411\u5bf9\u8c61\u5728\u901f\u5ea6\u4e0a\u6709\u52a3\u52bf\uff0c\u4f46\u662f\u663e\u7136\u662f\u66f4\u6e05\u6670\u7684\u3002 #incl &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/SmokeyDays.top\/wordpress\/2018\/11\/05\/lp5006-%e7%a9%ba%e9%97%b4%e5%a4%8d%e6%9d%82%e5%ba%a6\/\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb<span class=\"screen-reader-text\">\u201clp5006 \u7a7a\u95f4\u590d\u6742\u5ea6\u201d<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[25,8,6,5],"tags":[],"_links":{"self":[{"href":"http:\/\/SmokeyDays.top\/wordpress\/wp-json\/wp\/v2\/posts\/344"}],"collection":[{"href":"http:\/\/SmokeyDays.top\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/SmokeyDays.top\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/SmokeyDays.top\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/SmokeyDays.top\/wordpress\/wp-json\/wp\/v2\/comments?post=344"}],"version-history":[{"count":2,"href":"http:\/\/SmokeyDays.top\/wordpress\/wp-json\/wp\/v2\/posts\/344\/revisions"}],"predecessor-version":[{"id":346,"href":"http:\/\/SmokeyDays.top\/wordpress\/wp-json\/wp\/v2\/posts\/344\/revisions\/346"}],"wp:attachment":[{"href":"http:\/\/SmokeyDays.top\/wordpress\/wp-json\/wp\/v2\/media?parent=344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/SmokeyDays.top\/wordpress\/wp-json\/wp\/v2\/categories?post=344"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/SmokeyDays.top\/wordpress\/wp-json\/wp\/v2\/tags?post=344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}