2388 -- Who's in the Middle 問題概要 N個(奇数)の値が与えられるので中央値を求めよ
2389 -- Bull Math 問題概要 二つの巨大な数に対するかけ算を求めよ ただしライブラリを用いてはいけない
2247 -- Humble Numbers 問題概要 素因数として,2,3,5,7しか含まない数をhumble数という. n番目のhumble数を求めよ. ただし,出力時の数詞は"nd","st","rd","th"を正しく使いわけろ.
問題概要 ある街から街へと一本道で移動した人がいる. 不親切なことにその人は移動元の街と移動先の街はメモしたもののその順番はメモしなかった. 街を回った順番を求めよ.
問題概要 車の距離計が壊れてしまった. しかし,速度は知ることが出来る. 時刻とその後の速度の情報が与えられた時,ある時刻での移動距離を求めよ.
問題概要 N個の石があり,重さがpi,価値がviであるとする. この石を二人の人A,Bに割り振ることを考える. 石の割り振り方は次のように決まる. 最初は石はAに割り振られる. 以後基本的に前回割り当てられた人と同じ人に石は割り当てられる. このとき,割…
問題概要 入力が問題に与えられたHTMLの形式を満しているか調べる問題
問題概要 和訳Wikiを参照
問題概要 長さが106以下の文字列が与えられるので,その全ての接頭辞について,文字列の最大繰り返し数を求めよ.
問題概要 n桁の二進数の数値のうち,1が2連続しないものの総数を求めよ
問題概要 二人の登山者が山登りをしている. 二人の登山者はつねに同じ高さにいないといけない. 二人が出会うまでの移動距離の合計の最小値を求めよ.
問題概要 組合せを求めろ.ただし入出力が32Bit非負整数に収まることは保証される.
問題概要 a1x13+a2x23+a3x33+a4x43+a5x53=0 を満たすような整数x1,x2,x3,x4,x5を全て求め,その種類の個数を答えよ
問題概要 ノード数がN( ある一つのノードを取り外すことで木を切断した時に残る複数の木の最大ノード数をバランスという. バランスの最小値を求めよ
問題概要 N個の数値の最小公倍数を求めよ.ただし1000000以上だったら指示された文字列を出力せよ
問題概要 ある実数が正しい実数か判定せよ
問題概要 WxHのマスに1x2のタイルを敷き詰める場合の数を求めよ
問題概要 基数変換をせよ。ただし、桁が7桁に収まらない場合は"ERROR"と出力せよ
http://poj.org/moreproblemを呼び出すと,問題の一覧を取得することが出来ます # -*- encoding: UTF-8 -*- require 'rexml/document' require 'open-uri' require 'net/http' require 'scanf' http=Net::HTTP.new("poj.org/",80) instr=http.post("moreprob…
解法 まず,円ではなく直線上に並べること考えると,音符を音程でソートするのが最適になる.円の場合は下の図のように,2つの直線に分けて考えることが出来る. よって,音符を2つの直線に割り振る問題となる.ゆえにdp[1本目の最後の音符番号][2本目の最後…
public class UnionFind{ int[] par; UnionFind(int n){ par=new int[n]; for(int i=0;i
問題概要 2xnのマス目を1x2のタイルと2x2のタイルで敷き詰める方法は何通りあるか求めよ.
解法 多項式の比較 + Dinic法 実装(C++) 遅いフローアルゴリズムで提出してしまい1TLE #include <algorithm> #include <vector> #include <iostream> #include <set> #include <map> #include <stack> #include <queue> #include <deque> #include <iomanip> #include <functional> #include <cstdlib> #include <cstdio> #include <cmath> #include </cmath></cstdio></cstdlib></functional></iomanip></deque></queue></stack></map></set></iostream></vector></algorithm>
解法 BitDP 実装(C++) A問題よりも実装時間が短かった気がする. #include <algorithm> #include <vector> #include <iostream> #include <set> #include <map> #include <stack> #include <queue> #include <deque> #include <iomanip> #include <functional> #include <cstdlib> #include <cstdio> #include <cmath> #include <cstring> #include…</cstring></cmath></cstdio></cstdlib></functional></iomanip></deque></queue></stack></map></set></iostream></vector></algorithm>
解法 愚直にやるとO(L)で間に合わないのでループを見つける. 計算量は100*100*4なので間に合う. 実装(C++) intとlong longを間違えていて1WA #include <algorithm> #include <vector> #include <iostream> #include <set> #include <map> #include <stack> #include <queue> #include <deque> #include <iomanip> #include <functional> #incl</functional></iomanip></deque></queue></stack></map></set></iostream></vector></algorithm>…
問題概要 一次方程式を解け!
import java.util.*; import java.math.*; import java.io.*; import java.util.regex.*; import static java.lang.Math.*; import static java.util.Arrays.*; import static java.lang.System.*; public class Main { Scanner cin; void run(){ cin=new Sc…
解法 BFS. 壁があるというのを座標系を2倍することで上手く表現出来るようになる? 実装(C++) #include <iostream> #include <queue> #include <algorithm> using namespace std; int MAP[102][102]; int H,W,roomcount,roommax; #define REP(i,x)for(int i=0;i<(int)x;i++) int dx[4]={2</algorithm></queue></iostream>…
解法 ダイクストラ法.結局全点間最短距離に帰着されるのでワーシャルフロイド法の方が賢い. 実装(C++) #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <queue> using namespace std; int N; int G[100][100]; int mintime[100]; int solve(int s){ fill(minti</queue></algorithm></cstring></cstdio></iostream>…
二ヶ月の前のことなんですね… ウォームアップクイズ Google App EngineやAndroid開発に触れたことが無いわたしにとっては鬼門だった。 Google先生にお世話になりつつ6度目の挑戦でようやく満点(40点)に辿りついた。 分野別クイズ Web Game,Go!,Android,Goo…