2014年も残り僅かとなってきたので2015年の目標を
勉強
高専の数学を終わらせる
マクマリー有機化学を読み終える
Forest読み終える
競技
PCK2015の本選に出場して入賞する
AOJ solved数 500
資格
SC/NWを取得
数検1級
TOEIC700
英検2級
というわけで頑張ろうとおもいます
2015年もよろしくお願いします
一か月前 「申し込んだの忘れてた 本通読しよう」
一週間前 「結局本全然読んでない 過去問しよ」
「お、ぼちぼちな点数じゃんもう余裕やろ」
当日 「勉強してない落ちたわ」
午前 「まぁこれはできるよな」
午後 「日本語がわからん」
合格発表当日「こわいこわいこわい」
結果
午前得点 91.25点
午後得点 86.00点
過去問で取れてた組み込みとかが難しかったのでつらかったけど
アルゴリズムがとても簡単だったので合格できました。
次は情報セキュリティスペシャリストを目指す
3AC1WA
精進します
dpやな
dpはできんな
でもこれ簡単なdpじゃね
あっ
→WA
なんでや!完璧やろ!
あっ 1も含むのね 頭バグってた
→AC
import java.util.*; public class Main { public static int[] val; public static int n; public static int x; public static boolean[] dp; public static int[] PrimeTable; public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); while (true) { n = stdIn.nextInt(); x = stdIn.nextInt(); if(n == 0 && x == 0) { break; } val = new int[n]; for (int i = 0; i < n; i++) { val[i] = stdIn.nextInt(); } dp = new boolean[x + 1]; PrimeTable = new int[x + 1]; dp(); createPrimeTable(x); Arrays.sort(PrimeTable); int ans = 0; for (int i = x ; i >= 1; i--) { if (dp[i] && Arrays.binarySearch(PrimeTable, i) >= 0) { ans = i; break; } } if (ans != 0) { System.out.println(ans); } else { System.out.println("NA"); } } } public static void dp() { dp[0] = true; for(int i = 0; i < n; i++) { for(int j = 0; j <= x; j++) { if(dp[j] == true) { if(j + val[i] <= x) { dp[j + val[i]] = true; } } } } } public static void createPrimeTable(int x) { //xまでの素数テーブルを作成 boolean[] isPrime = new boolean[x+1]; for(int i = 2; i < x+1; i++) { isPrime[i] = true; } int counter = 0; for(int i = 2; i < Math.sqrt(x+1); i++) { if(isPrime[i]) { for(int j = i * 2; j < x+1; j += i) { isPrime[j] = false; } } } for(int i = 0; i < x+1; i++) { if(isPrime[i]) { PrimeTable[counter++] = i; } } } }
Wrought Gold Master | Aizu Online Judge
はいはいDFSDFS ご注文はDFSですか〜wwwwww
→RE
は?なんでとおらねえのこれ
returnの値0にしとこwwwwたぶんそこらへんだwwwww
→AC
通ったwwwwwwwww
import java.util.*; public class Main { public static int[][] typeitem; public static int[] itemval; public static int[] val; public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); while (true) { int n = stdIn.nextInt(); if(n == 0) { break; } String[] AT = new String[n]; //アイテム名とIDの対応の格納 val = new int[n]; //各IDの価格 typeitem = new int[n][0]; for(int i = 0; i < n; i++) { String tmp22 = stdIn.next(); AT[i] = tmp22; val[search(AT,tmp22)] = stdIn.nextInt(); } int suma = stdIn.nextInt(); for(int i = 0; i < suma; i++) { int idx0 = search(AT,stdIn.next()); int nums = stdIn.nextInt(); typeitem[idx0] = new int[nums]; for(int j = 0; j < nums; j++) { typeitem[idx0][j] = search(AT,stdIn.next()); } } int seaID = search(AT,stdIn.next()); int ans = dfs(seaID); System.out.println(ans); } } public static int search(String[] id, String tmp) { for(int i = 0; i < id.length; i++) { if(id[i].equals(tmp)) { return i; } } return 0; //-1だと何故か通らない よくわからない。 } public static int dfs(int id) { int ALc = 0; if(typeitem[id].length == 0) { return val[id]; } for(int i = 0; i < typeitem[id].length; i++) { ALc += dfs(typeitem[id][i]); } if(val[id] > ALc) { return ALc; } return val[id]; } }
Traveling Alone: One-way Ticket of Youth | Aizu Online Judge
はいはいワーシャルフロイドワーシャルフロイド(覚えたばっかりのアルゴリズムを言いたくなる症候群)
→WA
は?
あ ループがなんかおかしい
→AC
んんwwwwwww
経由地 出発地 目的地 の順のループですな
import java.util.*; public class Main { public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); while(true) { int n = stdIn.nextInt(); int m = stdIn.nextInt(); if(n == 0 && m == 0) { break; } int[][] cost = new int[m+1][m+1]; int[][] time = new int[m+1][m+1]; for(int i = 0; i < m+1; i++) { for(int j = 0; j < m+1; j++) { cost[i][j] = 1000000000; time[i][j] = 1000000000; if(i == j) { cost[i][j] = 0; time[i][j] = 0; } } } for(int i = 0; i < n; i++) { int a = stdIn.nextInt(); int b = stdIn.nextInt(); int costA = stdIn.nextInt(); int timeA = stdIn.nextInt(); cost[a][b] = costA; cost[b][a] = costA; time[a][b] = timeA; time[b][a] = timeA; } for(int k = 0; k < m+1; k++) { for(int i = 0; i < m+1; i++) { for(int j = 0; j < m+1; j++) { cost[i][j] = Math.min(cost[i][j], cost[i][k]+cost[k][j]); time[i][j] = Math.min(time[i][j], time[i][k] + time[k][j]); } } } int k = stdIn.nextInt(); for(int i = 0; i < k; i++) { int p = stdIn.nextInt(); int q = stdIn.nextInt(); int r = stdIn.nextInt(); if(r == 0) { System.out.println(cost[p][q]); } else { System.out.println(time[p][q]); } } } } }