反正只要 30 分以上就可以進 Round 1 了
pA 可以 WA 到把 Penalty 飆超高我也是醉了啦!
pA. Foregone Solution 題意大致是說,給你個 $N$,請輸出正整數 $A, B$,並且 $A + B = N$ 然後 $A, B$ 不能有任何的 $4$ 出現
一開始我是用$\div 2$方式去做的 但沒有考慮太多情況 然後就吃了5次WA
後來就想說$A = 1, B = N - 1$ 如果$B$的某個位數為$4$ 就把那個位數減去$1$加在$A$上 然後這個解法一次就過了…(ㄏㄏ)
本題 Hidden Test 只有 1 分 但$N$高達$10^{100}$,就直接用 Python 解了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 T = int (input ())for i in range (1 , T + 1 ): N = int (input ()) A = 1 B = N - 1 Run = 1 while Run < B: NowE = B // Run NowE = NowE % 10 if NowE == 4 : A += Run B -= Run Run *= 10 print ("Case #" + str (i) + ": " + str (A) + " " + str (B))
pB. You Can Go Your Own Way 題意大致是說,給你一個 $N\times N$ 的格子 找個路徑,只能往右走$E$跟往下走$S$ 不能跟他給的路徑重複
就直接跟他相反就不會重複了 他走$E$,你就走$S$ 他走$S$,你就走$E$
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 #pragma GCC optimize ("O2" ) #include <bits/stdc++.h> #include <unistd.h> using namespace std;typedef long long ll;typedef vector<int > vi;typedef pair<int ,int > pi;#define _ ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define FZ(n) memset((n),0,sizeof(n)) #define FMO(n) memset((n),-1,sizeof(n)) #define F first #define S second #define PB push_back #define MP make_pair #define ALL(x) begin(x),end(x) #define SZ(x) ((int)(x).size()) #define REP(i,a,b) for (int i = a; i < b; i++) int main () { _ int T; cin >> T; REP (i, 1 , T + 1 ){ int N; cin >> N; cout << "Case #" << i << ": " ; string enter; cin >> enter; REP (j, 0 , SZ (enter)){ if (enter[j] == 'S' ) cout << "E" ; if (enter[j] == 'E' ) cout << "S" ; } cout << '\n' ; } return 0 ; }
pC. Cryptopangrams 應該就直接用 Python 寫,不會寫,ToDo
pD. Dat Bae 互動式題目,不會寫,ToDo
總結 pA 跟 pB 的 Visible Test 過就可以進 Round 1 了
另外兩題等有詳解 Code 再來試寫好了(X)