链接:https://ac.nowcoder.com/acm/contest/329/E
来源:牛客网
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
既然昨天晚上处女座已经训练了,明天才要交作业,那今天就是平淡无奇要上课的一天了。
然而处女座也想自己的小姐姐了,可是这节课是老师安排座位,处女座坐在(1,1),而小姐姐坐在(n,m)。他们之间只能通过传纸条的方式来交流感情。对于处女座而言,他上课不想过度分心,因此并不想传纸条,只在那里趁机折千纸鹤。
老师上课喜欢用"开火车"的方式让大家轮流回答问题,显然处女座作为(1,1)位,会被第一个叫起来回答,之后老师将依次叫起(2,1),(3,1), \dots .(n,1),(n,2),(n-1,2)\cdots (1,2) ,\cdots的人起来回答问题,每个人回答问题需要1秒。处女座在自己回答完以后会以每秒1个千纸鹤的速度折叠,在小姐姐开始回答问题的时候停止折叠。
处女座想知道,他这节课一共要折多少个千纸鹤?
输入描述:
输入文件包含T+1行,第一行包含一个整数T,表示用例组数。
接下来T行,每行包含两个整数n,m表示小姐姐的位置和教室的大小。
输出描述:
对于每一组用例,用一行输出一个整数,表示处女座要折的千纸鹤的个数。
示例1
输入
复制
1
3 3
输出
复制
7
备注:
2 \leq n,m \leq 1,000
思路:刚开始的时候直接就做了,没有考虑全,后来改了一下就AC了
错误代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T=sc.nextInt();
while(T>0){
int n=sc.nextInt();
int m=sc.nextInt();
System.out.println(n*m-2);
T--;
}
sc.close();
}
}
AC代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T=sc.nextInt();
while(T>0){
int n=sc.nextInt();
int m=sc.nextInt();
if(m%2==0)
System.out.println(n*(m-1)-1);
else
System.out.println(n*m-2);
T--;
}
sc.close();
}
}