题目链接:点击打开链接
找规律,dp也可以,滚动数组+预处理(如果不用滚动数组这里dp的内存还是能卡卡过的)
附上找规律代码
#include <stdio.h>
int main(){
int n,m,i;
while(~scanf("%d %d",&n,&m)){
if(n>m){i=n;n=m;m=i;}
if(n==1){printf("%d\n",n>m?n:m);continue;}
if(n==2){printf("%d\n",(m/4)*4+(((m%4)*2)>4?4:((m%4)*2)));continue;}
if(m%2==0){printf("%d\n",m*n/2);continue;}
else {if(n%2==0)printf("%d\n",m*n/2);
else printf("%d\n",m*(n-1)/2+(m+1)/2);
}
}
return 0;
}