목록PS (96)
정화 코딩
https://www.acmicpc.net/problem/30446 #include #include #include using namespace std;long long n;int posn, endn;long long ans = 0;bool fin = false;string res = "";void dfs(int idx) { if (fin) return; if (idx == endn) { if (stoll(res) > n; posn = to_string(n).size(); for (int i = 1; i n보다 자릿수가 작은 회문수들을 카운트할 때는 9 * 10 * 10 ... 이런식으로 빠르게 구하고 (맨앞이 9인 이유는 맨 앞에는 0이 나올 수 없기 때문이다.) n과..
https://www.acmicpc.net/problem/25333 #include #include #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int t; cin >> t; while (t--) { int a, b, x; cin >> a >> b >> x; vector chk(x + 1, false); queue q; q.push(0); chk[0] = true; int cnt = 0; while (!q.empty()) { i..
https://www.acmicpc.net/problem/11727 #include #include using namespace std;int mod = 10007;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; vector dp(n + 1, 0); dp[1] = 1; if (n > 1) dp[2] = 3; for (int i = 3; i 점화식: dp[n] = (2 * dp[n - 2] + dp[n - 1]) % mod(n - 2)까지 채운 것에 1 * 2 타일 2개 또는 2 * 2 타일 1개 붙이기 + (n - 1)까지 채운 것에 1 * 2 타일 1개..
https://www.acmicpc.net/problem/7696 #include #include #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); while (true) { int n; cin >> n; if (n == 0) break; int i = 1; while (i chk(10, false); while (tmp > 0) { if (chk[tmp % 10]) { eq = true; ..
https://www.acmicpc.net/problem/2638 #include #include #include using namespace std;int dx[] = {1, -1, 0, 0};int dy[] = {0, 0, 1, -1};int n, m;vector> g;bool bfs() { vector> vst(n, vector(m, false)); vector> out(n, vector(m, false)); bool finish = true; queue> q; q.emplace(0, 0); vst[0][0] = true; while (!q.empty()) { int curi = q.front().first; int curj = q.fr..
https://www.acmicpc.net/problem/17939 #include #include using namespace std;int n;vector c;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n; c = vector(n); for (int i = 0; i > c[i]; int ans = 0; int s = 0; int e = c.size(); while (s = maxv) { maxv = c[i]; maxi = i; } } for (int i = s;..
https://www.acmicpc.net/problem/4673 #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); bool sn[10001]; fill_n(sn, 10001, true); for (int i = 1; i 0) { ans += tmp % 10; tmp = tmp / 10; } if (ans C++에서 초기화를 하려면 fill_n(sn, 10001, true); 이렇게 해야 한다. 끙.. 맨날 벡터만 써서 몰랐네. (정답)
#include #include #include #include using namespace std;string str;int n;string res;bool fin = false;vector a;vector chk;void dfs(int idx) { if (fin) { return; } if (idx == n) { if (res > str) { for (char c: res) { cout > str; res = str.substr(); n = str.size(); chk = vector(n); for (char c: str) { a.push_back(c - '0'); } ..