A. Plus and Multiply
题意:
题解:
代码:
B. Air Conditioner
题意:共 t 组数据,给你n个人和初始温度 m ,输入 n 行,每行有三个数到店时间 t 、这个人能承受的温度范围 l 和 r 。要你在顾客到店时使店内温度能够在它对应的适应温度内,每分钟可以调高1°,调低1°或者不调,问你是否能够让所有人都爽到。
题解:这个题就是在问你空调调节温度范围与顾客能承受的温度区间内有没有交集,如果有一个人和空调可调节范围没交集,就不能让所有人都爽,否则就让大家都爽到了。
因为给的顾客的到店时间都是递增的,所以可以依次进行判断。先求出从上一个顾客到这个顾客之间的时间ans,可以让温度变化的范围 l-=ans,r+=ans,如果可调节的温度范围与现在这个人的温度范围没有交集,则不能使得所有人满意。如果有交集,求出最小区间作为下一次的上一个范围继续循环。
代码:
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int tt = cin.nextInt();
while(tt>0) {
tt--;
int n = cin.nextInt();
int m = cin.nextInt();
ArrayList<Integer> t = new ArrayList<>();
ArrayList<Integer> l = new ArrayList<>();
ArrayList<Integer> r = new ArrayList<>();
t.add(0);
l.add(0);
r.add(0);
for(int i=0; i<n; i++) {
int a = cin.nextInt();
int b = cin.nextInt();
int c = cin.nextInt();
t.add(a);
l.add(b);
r.add(c);
}
int flag=1,ll=m,rr=m,ans=0;
for(int i=1; i<=n; i++) {
ans = t.get(i) - t.get(i-1);
ll -= ans;
rr += ans;
ll = Math.max(l.get(i), ll);
rr = Math.min(r.get(i), rr);
if(ll>rr) {
flag=0;
break;
}
}
if(flag==1) {
System.out.println("YES");
}else {
System.out.println("NO");
}
}
cin.close();
}
}
C. Theatre Square
题意:给你两个数n、m为边长,构成一个面积为n × m的长方形,再给你一个边长a,构成一个面积为a × a的地砖,求最少要多少地砖能铺满整个长方形,地砖面积可以比长放行大。
题解:用长方形的长和宽分别除以地砖边长,得到一个ans,在将长方形的长和宽分别模一下地砖边长,如果不为零说明前面的到的ans个地砖不能完全覆盖长方形,就再加一个长方形。注意题目要开long。
代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
long n = cin.nextLong();
long m = cin.nextLong();
long a = cin.nextLong();
long x = n/a;
long y = m/a;
if(n%a!=0) x++;
if(m%a!=0) y++;
System.out.println(x*y);
}
}
D.
题意:
题解:
代码:
E.
题意:
题解:
代码:
F.
题意:
题解:
代码:
G.
题意:
题解:
代码:
H.
题意:
题解:
代码: