SRM 677 Div2 Easy: PalindromePrime
SRM は何回かやってたけど初めてコンテスト中に提出できました…(easy のみ)。
250: PalindromePrime
区間 [L, R] のうちで、素数かつ後ろから読んでも同じ(回分みたいになってる)整数をカウントする。 本番ではエラトステネスのふるいを書いたけど素数判定と回文判定だけすればいいらしい。
class PalindromePrime { public: // 回文かどうか bool is_r(int s) { stringstream ss; ss << s; string a = ss.str(); int n = a.size(); for(int i=0; i<n; i++) { if(a[i] != a[n - 1 - i]) return false; } return true; } bool is_prime(int n) { for(int i=2; i*i <= n; i++) if(n % i == 0) return false; return n != 1; } int count(int L, int R) { int ans = 0; for(int i = max(2, L); i <= R; i++) { if(is_prime(i) and is_r(i)) ans++; } return ans; } };
来年は本気を出して緑以上になりたい。
アイカツ画像をツイートするTwitter botを作った
https://twitter.com/aikatsu_image
#aikatsu pic.twitter.com/qp5oJG33Gx
— aikatsu_image (@aikatsu_image) January 30, 2016
アイカツの画像をツイートする bot です。所持してるアイカツ画像を PC に溜めておくのも宝の持ち腐れ感があったので作りました。
bot のプログラムは python で書いて、Windows のタスクスケジューラで実行させています。tweepy というモジュールを使うと数行で書けて凄い。Twitter API を使うのは面白そうなのでもう少し遊んでみたいと思った一瞬でした。
ところでデスクトップ PC 上で動かすと常時起動が必要なので Raspberry PI とかが欲しいですね。サーバーを借りるようなものでもないと思うので…。
追記(2015/12/19)
RasPI 上で動かすことにしました。cron が使えて便利です。あと省電力。
オタク Raspberry PI pic.twitter.com/D74rPAZJjV
— fushime2 (@fushime2) December 15, 2015
AOJ0516: Maximum Sum(累積和, しゃくとり法)
Maximum Sum | Aizu Online Judge
累積和としゃくとり法を知らなかったのでメモ。計算量を考えずに全探索までしていたので書いておく。 最悪 O(n2) で最大 n = 100000 だから全探索はダメ(指数記号が出せない…)。
続きを読むAOJ0030: Sum of Integers
Sum of Integers | Aizu Online Judge
深さ優先探索の問題。C++ で書いたものを Python に翻訳して分かった気になるアレ。
#!/usr/bin/env python def dfs(pos, t, sum): global cnt if t == n: if sum == s: cnt += 1 return if pos > 9: return dfs(pos+1, t, sum) dfs(pos+1, t+1, sum + pos) while True: n, s = map(int, raw_input().split()) if n==0 and s==0: break cnt = 0 dfs(0, 0, 0) print cnt
蟻本の DFS の説明の理解に時間がかかったし、遷移の仕方が直感的にわからないから演習を詰むしかなさそう。
DP でも解けるらしいけどもっとわからん。