「SiR-1」Checkmate
printfmingren · · 题解
题外话:本体题目出自番剧《NO GAME NO LIFE》且题目背景中「来吧,游戏开始了。」是第一季中男主“空”的口头禅。(强烈推荐观看《NO GAME NO LIFE ZERO》)
言归正传:
题目解读:
在
题目分析:
由题目可以得到在完全空白的棋盘中,放置在角能得到
如图所示:
分类讨论情况如下:(也可以合并,因为考场没有想到第一个式子包含了第二个式子)
n≥2 且 m≥2 时
n<2 且 m<2 (就是 1 行或者 1 列的情况)
根据上式并列得出完整式子,式子得出过程如下:
//sum==val,a==angel,b==edge,c==center
a=4;
b=2*n+2*m-2*a;
c=n*m-a-b;
sum=(a*2+b*3+c*4)/2; //将此式化简可得:sum(val)=2*n*m-n-m;
将
由此可知
AC代码如下
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
ll T;
scanf("%lld",&T);
for(ll i=1;i<=T;++i)
{
ll n,m,a,b,c,sum;
scanf("%lld%lld",&n,&m);
if(n>=2&&m>=2)
{
a=4;
b=2*n+2*m-2*a;
c=n*m-a-b;
sum=(a*2+b*3+c*4)/2;
}
else
sum=n+m-2;
printf("%lld\n",sum);
}
return 0;
}
于是乎我推荐大家试试[THUPC 2023 初赛] 大富翁
感觉两题都有相似之处。
本蒟蒻的第一篇题解(问题已改正),求管理员通过,还请各位大佬指出错误,一同进步。(点个赞再走吧,QAQ)