【質問】Javaの毎日のブラッシング質問2

A. プラスと乗算

タイトルの意味:

答え:

コード:

B. エアコン

タイトルの意図:合計 t 個のデータがあり、n 人、初期温度 m が与えられ、n 行入力します。各行には、到着時間 t、温度範囲 l と r の 3 つの数字が含まれます。人は耐えられる。顧客が店に到着したときに、店内の温度を対応する適応温度内に保つ必要があります。温度を 1 度ずつ上げることも、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. シアタースクエア

質問の意味:面積 n × m の長方形を形成するための辺の長さとして 2 つの数値 n と m が与えられ、次に面積が の床タイルを形成するための辺の長さ a が与えられます。 a × a. 舗装できる床タイルの最小数を求める 長方形全体がいっぱいで、床タイルの面積はロングリリースよりも大きくなる場合があります。

解決策:長方形の長さと幅を床タイルの辺の長さで割って答えを取得し、長方形の長さと幅を床タイルの辺の長さに合わせて成形します。ゼロでない場合は、それを意味します。前面の床タイルでは長方形を完全に覆うことはできません。別の長方形を追加してください。タイトルは長くする必要があることに注意してください。

コード:

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.

タイトルの意味:

答え:

コード:

おすすめ

転載: blog.csdn.net/m0_62811051/article/details/130568346