土下座しながら探索中

主に競技プログラミング

2013-03-01から1ヶ月間の記事一覧

AOJ 1161 : Verbal Arithmetic

AOJ

問題リンク:Verbal Arithmetic | Aizu Online Judge問題概要: 覆面算を解く数字の組み合わせがどのくらい存在するか?使用した言語:C++解法: 半分全列挙した以下は愚痴 最初は全通り試していたがかなり重かった サイズが1の文字列はまとめたりどう考…

AOJ 2058 : Moduic Squares

AOJ

問題リンク:http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2058問題概要: 3*3のsquareと1つの値modがあたえられる squareの各列の和%modとsquareの各行の和%modとsquareの対角線の和%modがすべて等しいものの数を出力せよ使用した言語:C++解…

AOJ 0268 : Kongo Type

AOJ

問題リンク:Kongo Type | Aizu Online Judge問題概要: 8桁の16進数を10進数に変換せよ使用した言語:C++解法; 小数部はlong longになおして計算した long longになおして小数部を計算したので出力の際にはリーディング0になるものはリーディング0に…

AOJ 2177 : Champernowne Constant

AOJ

問題リンク:Champernowne Constant | Aizu Online Judge問題概要: int型の変数N,K(1 数字を1から順に並べた文字列(1234567891011・・・)のN番からK個を出力せよ使用した言語:C++解法: N付近の数字を探し、stringにいれて出力した まず各桁の数字の数を…

SRM574 Div2

250: 問題概要: vectorとvectorが与えられる vector内には'.'または大文字のアルファベットが含まれる vectorの要素iと同じ数が存在するアルファベットをstringでその順にまとめてリターンせよ 入力は必ず正しいものとする (すなわち、vectorの要素が複数の…

ProjectEuler Problem48 : Self powers

問題リンク:Problem 48 - Project Euler問題概要: 1^1+2^2+3^3+・・・・・+1000~1000の下10桁をもとめよ解法: modをとりながら実際に計算するコード: #include<iostream> using namespace std; int main() { long long ans = 0; for(int i=1;i<=1000;i++) { long l</iostream>…

ProjectEuler Problem345 : Matrix Sum

問題リンク:Problem 345 - Project Euler問題概要: 問題で与えられる15*15の2次配列から行も列もかぶらないように数字を選んでいく 15個全て選んだときの最大値をもとめろ解法: 選んだ状態での最大値を保存してdfsで探索した dp[1 dfs(x,y,visited,cost…

ProjectEuler Problem18 : Maximum path sum I

問題リンク:Problem 18 - Project Euler問題概要: 問題でしめされている図の最大コストを求めろ解法: dp[i][j] := max( dp[i][j],list[i][j]+dp[i-1][j-1],list[i][j]+dp[i-1][j])として最大値をもとめる ここで,listとは図の値が入った2次配列である コ…

ProjectEuler Problem15 : Lattice paths

問題リンク:Problem 15 - Project Euler問題概要: 20*20のグリッドの左上からスタートして右か下のみに移動できる時、グリッドの右下へ到達できるルートはどのくらい存在するか解法: よくあるdp i*jに到達できるルートはdp[i][j]:=dp[i][j-1]+dp[i-1][j]…

SRM 146 Div2

SRM

250: 問題概要:略 解法: ソートしてtoss[i]*(toss[i]と同じ値の数)の最大値をリターンするコード: class YahtzeeScore { public: int maxPoints(vector <int> toss) { vector<int> nes; nes.push_back(0); int now = toss[0]; sort(all(toss)); for(int i=0;i</int></int>

Java : BigIntegerメモ

JavaのBigInteger用のメモです・importするもの -> java.math.BigInteger・初期化 -> BigInteger = new BigInteger(hoge); ※hogeはStringでないといけません・四則演算 >+ : add(hoge) >- : subtract(hoge) >* : multiply(hoge) >/ : divide(hoge) ※hogeはBi…

AOJ 2356 : Palindromic Anagram

AOJ

問題リンク:Palindromic Anagram | Aizu Online Judge問題概要: 略使用した言語:Java解法: 同じものを含む順列の公式をつかった まず、与えられた文字列S内の各アルファベットの数を数える アルファベットの個数が奇数のものが2つ以上あった場合は回文…

AOJ 1249 : Make a Sequence

AOJ

問題リンク:Make a Sequence | Aizu Online Judge問題概要: 図の様なn*nのグラフ上にp回黒と白のボールを交互に刺す 8方向をみて同じ色のボールがm個以上そろっていればその色の人の勝利となる 勝利した人とそのターンを出力せよ使用した言語:C++解法: …

SRM 573 Div2

SRM

250: 1つ先のをみて自分より大きければリターンする値に加え、自分の値を代入するコード; class SkiResortsEasy { public: int minCost(vector <int> altitude) { int res = 0; for(int i=0;i</int>

AOJ 2492: goto busters

AOJ

問題リンク:goto busters | Aizu Online Judge問題概要: N行(1 使用した言語:C++解法; グラフ化して最短経路をもとめる ・goto文からラベルへのコストは0 ・ラベルからラベルの次の行へのコストは0 ・goto文から次の行へのコストは1(もしgoto文の次の行…

C++ next_permutation

C++

・next_permutationをつかい配列の要素の順列をすべて確認する next_permutationというSTLを使うと配列内の要素の順列をすべて確認できます 配列内の要素はソートされていないと全通りためしてくれませんので注意! vector<int> vec; for(int i=0;i<3;i++) vec.pu</int>…

C++ string内のアルファベットを大文字にしたり小文字にしたり・・・

C++

・transform toupper tolower string内のあるアルファベットを小文字にしたり大文字にしたりしたい! そんな時は次のようにするといいかも string str = "AbCdEf***G"; transform(str.begin(),str.end(),str.begin(),::tolower); //transform(str.begin(),st…

AOJ 2017 : Karakuri Doll

AOJ

問題リンク:Karakuri Doll | Aizu Online Judge問題概要: H*Wのグラフが与えられる カラクリ人形は壁にぶつかるまでまっすぐに進む 壁にぶつかった後、右か左にまがることができる キッチンKからマスターのいる場所Mに行きそれまでの順番と方向を逆にして…

AOJ 1126 : The Secret Number

AOJ

問題リンク:The Secret Number | Aizu Online Judge問題概要: 略使用した言語:C++解法; 左と上をみて値の大きいほうを保存していく ただし普通に比較するのではなく、リーディング0も考慮しなければならないcmp2は作ったけどいらなかったっぽいコード:…

AOJ 2340 : Carpenters' Language

AOJ

問題リンク:Carpenters' Language | Aizu Online Judge問題概要: S -> SS | (S) | )S( | ε このような文法の言語があり、入力がその言語になっているなどうが判定せよ使用した言語:C++解法: '('と')'の数が等しい場合は全て正しい文法なので'('と')'の数…

AOJ 0119 : Taro's Obsession

AOJ

問題リンク:Taro's Obsession | Aizu Online Judge問題概要: m-1人の人と1匹の猫がいる m-1人の証言から推測される部屋に入った人or猫の順番をどれか1つ出力せよ ※ただし猫は一番最後部屋にはいったことがわかっている使用した言語:C++解法: 部屋に入…

AOJ 1032 : Course Planning for Lazy Students

AOJ

問題リンク:Course Planning for Lazy Students | Aizu Online Judge問題概要: n個の科目から最低取得単位数Uをこえる最小の科目数をもとめよ使用した言語:C++解説: dfsだとTLEになったのでbitをもたせてbfsをした mincost[1 #include<cstdio> #include<iostream> #include<bitset></bitset></iostream></cstdio>…

AOJ 0536 : Shuffle

AOJ

問題リンク:Shuffle | Aizu Online Judge問題概要: 1順にnまでの数字がかかれたカードの山がある このカードをシャッフル(x,y)したとき山の上からp枚めとq枚めの間にカードの数字がr以下のものが何枚存在するか?使用した言語:C++解法: nが10の9乗と大…

AOJ 0508 : String With Rings

AOJ

問題リンク;リング | Aizu Online Judge問題概要: n個の紐が与えられる その紐の両端には数字のついたリングがあり、リングの数字が同じであれば別の紐をそのリングの部分でつなぐことができる そうして同じ数字の部分をつなげた紐のうち最大の長さをもと…

SRM572 DIV2

250--- 0があるかどうか確認しながら負の要素を数えるだけなので略500---問題概要: 2つのstring、startとgoalが与えられる NextとPrevという操作を行いstartをgoalにすることができるか? できるならそれに必要な最小コストを、できないなら-1をリターン…

AOJ 0193 : Deven-Eleven

AOJ

問題リンク:Deven-Eleven | Aizu Online Judge問題概要: 略使用した言語:C++解法; s個の各入力にたいしてbfsでマップ上にお店からの最短コストを保存していく その後,t個の入力にたいしてbfsで最大のマスをもとめていく ※y軸が偶数か奇数かによってx軸…

AOJ 0172 : Doctor's Research Rooms

AOJ

問題リンク:Doctor's Research Rooms | Aizu Online Judge問題概要: n個の部屋がある ゴール以外の部屋の明かりを全て消してゴールまで到達できるか? できるなら最小のステップ数とそのステップを出力せよ ゴール以外の部屋全ての明かりを消すことができな…

AOJ : Fastest Route

AOJ

問題リンク:Fastest Route | Aizu Online Judge問題概要: N個のステージを全てクリアするためにかかる最小の時間をもとめろ (1 使用した言語:C++解法1: bitで状態を管理しdequeをつかってdfsもどきをした mincost[(1 bitが立っているならばそのステージ…

AOJ 1275 : And Then There Was One

AOJ

問題リンク:And Then There Was One | Aizu Online Judge問題概要: n個の石で輪をつくる m番目の石から始めてk個おきで石をとっていく 最後に残る石は何番めの石か?使用した言語;C++解法; 実際にvectorにつめて消していった が、この問題はヨセフスの…

メモ

・MAX以下の素数をvectorにつめこむ vector<int> prime; bool isntprime[MAX+1]; // これはグローバルにしておく isntprime[0] = isntprime[1] = true; int j; for(int i=2;i<= MAX;i++)if(!isntprime[i])for(prime.push_back(i),j=2*i;j<=MAX;j+=i)isntprime[j] </int>…