Solution to HW

214, 437, 438

Wu-Jun Pei@Sprout2018

214-SOP

1. 處理輸入輸出

int N, M;
// Deal with the Input
std::cin >> N >> M;
for (int i = 0; i < N; i++) {
	for (int j = 0; j < M; j++) {
		std::cin >> mp[i][j];
	}
}

2. 處理

枚舉i, j,算周圍八格有幾個1

 

看code

3. 輸出

印出來,等AC

參考程式碼

437-SOP

1. 處理輸入

int R, C, T;
std::cin >> R >> C;
for (int i = 0; i < R; i++)
	for (int j = 0; j < C; j++)
		std::cin >> mp[i][j];

2. 四個方向都走一格

// go up
for (int tx = x - 1, cnt = 0; 0 <= tx && x - 3 <= tx; tx--) {
	if (mp[tx][y] == '!') {
		cnt++;
		ans = std::max(ans, cnt);
	} else if (mp[tx][y] == '#') {
		break;
	}
}

以向上為例

3. 比大小輸出!

等著拿AC

參考程式碼

438-SOP

1. 處理輸入

2. 初始化一些東西

思想上:

  • 我的x是往下長的,Spacecraft_x記的是船的x座標

  • 我的y是往右長的,Spacecraft_y記的是船的y座標

  • (Spacecraft_x, Spacecraft_y) 其實代表的就是船左上角的座標位置

3. 操作

什麼時候要動?什麼時候不用動?不用動:

  • 操作指令不存在(e.g. 7)

  • 碰到邊界:

    以上下(x坐標系)為例:

    如果上面已經到頂了(x == 1),就不能繼續往上走。

    下面比較麻煩些(x + l == N v.s. x + l - 1 == N),小心那個1的問題。

4. 看成果

把太空船塞進去

一開始把地圖的邊緣弄好了,現在弄中間

5. 印出來

等著拿AC

[Sprout2018] Solution to homework of week3

By Wu-Jun Pei

[Sprout2018] Solution to homework of week3

  • 179