反正只要 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 解了
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$
#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++)
// Let's Fight!
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)