約 20,821 件
https://w.atwiki.jp/kouteieki2010joho/pages/1220.html
毎日新聞記事へ飛ぶ (魚拓) 宮崎県の口蹄疫(こうていえき)問題で、農林水産省の疫学調査チームは23日、都農町で第1例が確認された4月20日時点で、被害が集中した川南町など児湯地域の農家十数戸で既に家畜が感染していたとの推定結果をまとめた。チームは8月中にも中間的なとりまとめを公表する。 チームは、異常の届け出時の病変の程度や検査データを基に、発生した全292例の感染時期を推定。現地調査や農家への聞き取りなども参考に、感染拡大ルートも検討した。 最も早くウイルスが侵入したのは6例目の水牛農家(都農町)で3月中旬ごろ。韓国などで確認されたウイルスと遺伝子配列が極めて近く、アジアからの人や物の移動でウイルスが侵入したと考えられるが、水牛農家への侵入経路は特定困難とした。1、7例目(川南町)の農家へのウイルス侵入時期も3月下旬ごろと推定した。 また、児湯地域での感染拡大ルートについては▽発生農家からの人の動き▽共同堆肥(たいひ)施設や倉庫、器具・器材の共同利用▽ネズミや鳥、ハエ、唾液(だえき)の飛沫(ひまつ)核(飛沫粒子)など--を指摘した。 他地域への拡大については▽えびの市へは川南町の関連農家から出発した家畜運搬車両▽西都市と日向市へは児湯地域の農家と同じ飼料会社の車両を使用▽西都市内の農家間では牛の出荷時に同一車両を使用▽近接した宮崎市内の3農家は飛沫核--の可能性を挙げた。 調査チーム長の津田知幸・動物衛生研究所企画管理部長は「(十数戸の農家)それぞれを強い線で結ぶことはできなかったが、(人や車の動きなどの)社会生活の活動でウイルスが広がったと推測できると思う」と説明。十数戸で家畜の異常の発見が遅れたのは、発生当初は感染量が少なく、症状は強く出ないことなどが要因としている。 7月 農水省発表 防疫関係
https://w.atwiki.jp/insane_tja/pages/2897.html
曲Data Lv BPM TOTAL NOTES 平均密度 ★8 137-274 1541 8.11Notes/s 譜面構成・攻略 譜面画像
https://w.atwiki.jp/boare/pages/205.html
アイコンパレットの各アイコンの機能は,拡張子*.aicのテキストファイルに記述されている.ここではこの aicファイルの仕様についてまとめる. aicファイルは,標準的なINIファイルの仕様に則ったテキストファイルとなっている. セクション [Common] [Parameter] [Common]セクション ArticulationVibrato Crescendo Dynaff NoteAttack NoteTransition Button Caption [Parameter]セクション Length StartDepth EndDepth StartRate EndRate StartDyn EndDyn DynBPNum DynBPX DynBPY Duration Depth DepthBPNum DepthBPX DepthBPY RateBPNum RateBPX RateBPY
https://w.atwiki.jp/hks2/pages/20.html
以下,これだけではまったく意味がない. $PROBLEM MIXTURE BW $DATA BW.CSV IGNORE=@ $INPUT SID SEX DV=BW MDV $PRED GEN=MIXEST-1 IF(MIXNUM.EQ.1)THEN BWI=THETA(1)+THETA(2) ELSE BWI=THETA(1) ENDIF F=BWI Y=F+ETA(1) $MIX NSPOP=2 P(1)=THETA(3) P(2)=1.0-P(1) $THETA (0 60) (10 FIXED) (0.55 FIXED) $OMEGA 100 $EST MAXE=9999 ;
https://w.atwiki.jp/escargot/pages/264.html
GC Wii版 シリーズ 謎の円盤群シリーズ 価値 30 重さ 4 オリマーメモ この星のあちこちで似たような物体を見かけるが、相関性はあるのだろうか?さまざまな推測が浮かぶが、真実はよくわからない。しかしだからこそロマンがあるといえる。 セールストーク 見つめても、たたいても、念じても、なめても、かじっても分析できなかった謎の物体。 入手場所 まどいの水源シャワールーム 地下6階 備考 Swich版では同番号はサバイバルキットに置き換わっている。 Swich版 シリーズ ??? 価値 90 重さ 6 オリマーメモ 探検にはけっして欠かしてはならないものが3つある。1つは飲料水。1つは医薬品。そして最後の1つが勇気だ。私は水も勇気も持っているが、医薬品が欠けている。どうも心もとないな......。私は勇気ある探検家だが、明日は1日、船内で寝ていたいと思う。けっしてサボりたいわけではない。ホントだ! セールストーク 探検に欠かせないのが医薬品。強力な効き目をお求めなら、これがオススメ!なんと当社の社員で、実証済み!たとえ火の中、水の中、雷の中、雪の上でも下でも、もうこわくない! 入手場所 めざめの森白い花園 地下4階 備考 配置場所は旧版では元々ペーパースライダーがあった場所である
https://w.atwiki.jp/boare/pages/16.html
このページについて 更新中です VOCALOID2 Editor(以下Editorと略)が使用するシーケンスファイル(拡張子.vsq)のファイル仕様について書きます。 管理人の推測によるものなので、正確さを欠く箇所があることを最初にお断りしておきます。 vsqファイルの概要 Standard Midi File (SMF)のFormat 1仕様に準拠しているようです。数値の格納はビッグエンディアン。SMFの仕様についてはこのページでは省略します。 トラックの種類 Format 1のSMFファイルにはトラックを分割して格納することができますが、vsqファイルは2種類のトラックを区別して使用しているようです。 ①テンポ、拍子を格納したトラック トラック名が必ず"Master Track"となります。 含まれるのは以下のメタイベントのみ。Sequence/Track Name(0xff 0x03 [length] [text]) End of Track(0xff 0x2f 0x00) Set Tempo(0xff 0x51 0x03 [tempo(3bytes)]) Time Signature(0xff 0x58 0x04 + 4bytes) 必ずSMFのヘッダの直後に表れ、vsqファイルに1個のみ。 テンポの変更は②のメタテキストには記入されず、このトラックのSet Tempoメタイベントを用いて記録される 拍子の変更も、同様にTIme Signatureメタイベントを用いて記録される ②Editorのピアノロール画面の情報を格納したトラック トラック名が、Editorのトラック名と一致します。 必ず上記のMaster Trackの直後に表れます Editorに必要な情報は全て(恐らく)メタテキストで記述されます 上記メタテキストの日本語部分はShift-JISエンコードになっている 上記メタテキストは全てDelta-time=0として記述されます メタテキストの直後にはMIDI Eventのコントロールチェンジが記述されます。(確認したものは全てNRPN[Non Registered Parameter Number]を用いたコントロールチェンジ) メタテキストは複数に分割して記述されます。 メタテキストの文字列のバイト数は、末尾の物を除き全て127byte(0x7f)となる。末尾の最後のメタテキストのデータ長は127byte以下。 分割されているメタテキストを繋げると、1個のテキストファイルになる。元のテキストファイルの改行は0x0aに置き換えられる。 上から数えてN番目のメタテキストは、"DM " + N.ToString( "0000" ) + " " という感じのプレフィクスが付く。 プレフィクスの番号(DM ****の****)は4桁ごとに増える。つまり、DM 9999の次はDM 00010000。 Editorのトラックの数だけvsqファイルに記述される。 todo 文字列長が127byteでないメタテキストが現れた場合、Editorはどう処理するのか? todo メタテキストが"DM ****"の数字の順番に表れなかったときのEditorの挙動 todo 改行は0x0aで表されているが、0x0d 0x0aとしても正しく処理されるのか? NRPNによるコントロールチェンジの意味は? VOCALOID2 Editorのヘルプファイルに各NRPNの意味の一覧あり。 Note Duration(0x50 0x04)の情報はメタテキストには直接記述されないが、メタテキストの情報から計算可能。 clocks 音符の長さ(クロック) tempo テンポ(125等、実際にvsqに保存されるテンポの値は) nは0以上の値となる。[]はガウスの記号。 NRPNに記録されるクロックと「プリセンドタイム」 各トラックのメタテキストの中身 メタテキストを順番どおりに(DM ****の****部分の数字の順)につなげる事で得られる。 書式は、INIファイルと同じ。セクション([]でくくられて記録される部分)には次の種類がある。[Common] [Master] [Mixer] [EventList] [PitchBendBPList] [PitchBendSensBPList] [DynamicsBPList] [EpRResidualBPList] [EpRESlopeBPList] [EpRESlopeDepthBPList] [EpRSineBPList] [Reso1FreqBPList] [Reso2FreqBPList] [Reso3FreqBPList] [Reso4FreqBPList] [Reso1BWBPList] [Reso2BWBPList] [Reso3BWBPList] [Reso4BWBPList] [Reso1AmpBPList] [Reso2AmpBPList] [Reso3AmpBPList] [Reso4AmpBPList] [GenderFactorBPList] [PortamentoTimingBPList] [VibTremDepthBPList] [OpeningBPList] [ID#****]****は4桁の整数。[ID#9999]の次は[ID#10000]。 [h#****]****は4桁の整数。[h#9999]の次は[h#10000]。 各セクションに記録される内容 [Common] [Common] Version=DSB202 Name=Voice2 (1) Color=157,181,123 DynamicsMode=0 PlayMode=1 Version ボカロのバージョン。例えばMEIKOならDSB202、MIKUならDSB301 Name トラック名 Color 意味不明 DynamicsMode Dynamicsカーブを表示するモード(Expert)なら1、しない(Standard)なら0。VOCALOID2の場合は1で固定。 PlayMode Play With Synthesisなら1、Play After Synthesiなら0、Offなら-1。VOCALOID2の場合、0は1と見なされる。 [Master] [Mixer] [EventList] 0=ID#0000 1920=ID#0001 上記のように、「クロック」=「イベントのID」という書式で各時刻に起こるイベントを列挙する。同じ時刻に2つ以上のイベントが起こる場合、「クロック」=「イベント1のID」,「イベント2のID」とコンマ区切りで1行に記述する。 [PitchBendBPList] PIT(ピッチベンド)カーブ。 [PitchBendSensBPList] PBS(ピッチベンドセンシティビティ)カーブ [DynamicsBPList] DYN(ダイナミクス)カーブ [EpRResidualBPList] VOCALOID2の場合、BRE(ブレシネス)カーブ。VOCALOID1の場合、Noiseカーブ。 [EpRESlopeBPList] BRI(ブライトネス)カーブ [EpRESlopeDepthBPList] CLE(クリアネス)カーブ [EpRSineBPList] Harmonicsカーブ(VOCALOID1のみ) [Reso1FreqBPList] [Reso2FreqBPList] [Reso3FreqBPList] [Reso4FreqBPList] [Reso1BWBPList] [Reso2BWBPList] [Reso3BWBPList] [Reso4BWBPList] [Reso1AmpBPList] [Reso2AmpBPList] [Reso3AmpBPList] [Reso4AmpBPList] [VibTremDepthBPList] Effect2 Depthカーブ(VOCALOID1のみ) [GenderFactorBPList] GEN(ジェンダーファクター)カーブ [PortamentoTimingBPList] POR(ポルタメントタイミング)カーブ [OpeningBPList] OPE(オープニング)カーブ [ID#****] 音符または歌手のプロパティが記述される 音符の場合 例えば次の内容が記述される [ID#0001] Type=Anote Length=240 Note#=60 Dynamics=64 PMBendDepth=8 PMBendLength=0 PMbPortamentoUse=3 DEMdecGainRate=50 DEMaccent=50 LyricHandle=h#0001 NoteHeadHandle=#h0002 Type=Anote 音符を表すIDであることを示す Length=240 長さが240クロックの音符 Note#=60 音の高さは60(60=C3) Dynamics=64 ベロシティ(VEL)の値 PMBendDepth=8 「音符のプロパティ」の「ベンドの深さ」(VOCALOID2のみ) PMBendLength=0 「音符のプロパティ」の「ベンドの長さ」(VOCALOID2のみ) PMbPortamentoUse=3 「音符のプロパティ」の「~形でポルタメントを付加」の指定内容。「上行形で~」が指定されていれば値は+1、「下行形で~」が指定されていれば値は+2。即ちこの場合は両方が指定されている。(VOCALOID2のみ) DEMdecGainRate=50 「音符のプロパティ」の「ディケイ」(VOCALOID2のみ) DEMaccend=50 「音符のプロパティ」の「アクセント」(VOCALOID2のみ) LyricHandle=h#0001 この音符が使用する歌詞情報 NoteHeadHandle=h#0002 この音符が使用するアタック情報(VOCALOID1のみ) [h#****] 歌詞/ビブラート/歌手/アタックのいずれかのプロパティが記述される。 「歌詞」の場合 Lx=[歌詞],[発音記号],[歌詞Delta],[ConsonantAdjustment]×発音記号の個数,[プロテクトフラグ] Lx このハンドルが表す歌詞の単位(0 = x = 音符のクロック数-1)。VOCALOID2の場合L0のみが現れる。VOCALOID1の場合、複数の歌詞単位を入力するとL1以降に記録される。 歌詞 前後に引用符(")の付いた歌詞を表す文字列。引用符そのものは引用符2つ("")で表現される。 発音記号 文字列。発音記号が半角スペース区切りで記録される。 歌詞Delta 実数。第x番目の歌詞単位の、音符全体の長さに対する相対長さ。L0~Lxまでの歌詞Deltaを合算すると1になる。 ConsonantAdjustment 整数。子音なら64、母音なら0、識別できない(VOCALOID2の規格にない)発音記号なら0。NRPNのMSB0x50 LSB0x11~0x21のData LSBに記録される値(Consonant Adjustment n)と同じ値。 プロテクトフラグ 整数。「歌詞のプロパティ」の「プロテクト」がチェックされていれば1、そうでなければ0. 発音記号の個数NRPNには先頭の16個までしか記録されないが、こっちにはかなりの個数発音記号を入力できてしまう。少なくとも「a」7630個までは入力でき、waveへのレンダリングも出来た(ただし先頭の16個しか発音されない模様)。 Lxのxの最大値が「音符全体の長さ-1」になっている理由。1個の歌詞単位の最小長さは1クロックで、1未満の実数にはできないから。 「ビブラート」の場合 IconID=$04040004 IDS=normal Caption= Original=5 Length=120 StartDepth=64 DepthBPNum=3 DepthBPX=0.500000,0.750000,1.000000 DepthBPY=64,32,0 StartRate=64 RateBPNum=3 RateBPX=0.500000,0.750000,1.000000 RateBPY=64,32,0 IconID ビブラートの形式を識別するID IDS 不明(解析中、「normal」、「extreme」、「slight」等が入る) Caption 不明(解析中) Original 不明(解析中) Length ビブラートの長さ(クロック単位) StartDepth 振幅の開始値 DepthBPNum 振幅カーブのデータ点数。これが0のとき、DepthBPXとDepthBPYは省略される DepthBPX 振幅カーブのデータ点(時間軸)。DepthBPNum個の値が、コンマ区切りで列挙される。0.0がビブラート開始時刻を、1.0がビブラート終了時刻を表す DepthBPY 振幅カーブのデータ点 StartRate 周期の開始値 RateBPNum 周期カーブのデータ点数。これが0のとき、RateBPXとRateBPYは省略される RateBPX 周期カーブのデータ点(時間軸)。書式と値の意味はDepthBPXに同じ RateBPY 周期カーブのデータ点 VOCALOIDシステムの表情ライブラリ(のビブラート)のどれと関連付けられるかを特定するために,IconID,IDSが使われる.ライブラリ内に「IDS」と同じ名前のものが唯一つ存在すれば,それがそのまま使用される.この場合,IconIDがでたらめでも正しく認識される.ライブラリ内に「IDS」と同じ名前のものが2つ以上存在する場合は,IconIDの下4桁($04040001なら"0001")を元に検索が行われる. 「歌手のプロパティ」の場合 IconID=$07010002 IDS=Miku3 Original=2 Caption= Length=1 Language=0 Program=2 IconID 言語・プログラムチェンジを識別するID。"$0701"の部分は固定で、下4桁のうち最初の2桁が歌唱言語、最後の2桁がプログラムチェンジを表す。いずれも16進数で表現される。例えば「初音ミク(日本語)、プログラムチェンジ2」の場合$07010002、「巡音ルカ(英語)、プログラムチェンジ0」の場合$07010100となる。 IDS Singer Editorで設定した歌手の名前 Original (Lanuage 8) | Program Caption 謎の空文字列 Length 謎の整数 Language 歌唱言語を表すインデクス。(日本語が0、英語が1) Program Singer Editorで設定した「プログラムチェンジ」の値 「アタックのプロパティ」の場合(VOCALOID1のみ) IconID=$01010002 IDS=accent Original=2 Caption=Accent Length=120 Duration=64 Depth=64 IconID IDS Original Caption Length 120固定のようだ Duration
https://w.atwiki.jp/tkonishi73/pages/402.html
【練習問題1】 統計学の試験(100点満点)で、上位15%の学生に「優」を付けようと思う。何点以上とすれば良いか? 試験の得点は、平均55点、標準偏差15点の正規分布に従うものとする。 【練習問題2】 知能指数IQは正規分布 に従う。IQが150以上の人は全体の何%を占めるか? 【練習問題3】 確率変数が正規分布 に従うとする。 (1) のとき、 を求めよ。 (2) であるとき、 の値を求めよ。 正規分布の性質
https://w.atwiki.jp/kumicit/pages/547.html
批判サイド 創造論者の主張 Claim CD011.5 A piece of wood was fossilized in the Hawkesbury Sandstone, Australia, which most geologists date to the middle Triassic, about 225 to 230 million years ago. The wood was dated by Geochron (a commercial dating laboratory) using the carbon-14 method. Geochron determined its age to be only 33,720 +/- 430 years before present. Contamination by recent microbes or fungi cannot explain the discrepant age. オーストラリアのHawkesbury Sandstoneで化石化した木片は、多くの地質学者により三畳紀中期の2億2500万年前~2億3000万年前と推定された。木片はGeochron社(年代測定企業)により炭素14を使って年代測定された。Geochron社は年代を33720±400年と推定した。最近の微生物や菌の混入ではこの乖離は説明できない。 Source Snelling, Andrew, 1999. Dating Dilemma Fossil wood in ancient sandstone. Creation Ex Nihilo 21(3) 39-41. Response その試料が木片だったどうかも疑わしい。Snellingは試料が何だったかわかっていない。Geochron社のスタッフも、その試料が何なのかわかっていない[Walker 2000]。元々の炭素を残していないかもしれない。この炭素年代測定は最初から無意味なので、結果も無意味である。 試料は多孔質であり、有機炭素を地下水から吸収したと思われる。この混入した炭素によって、年代が決定されたと思われる。それ以外の可能性として、周囲の岩石中の自然の放射能によって14Cが形成されたことも考えられる[Hunt 2002]。 さらに、33720年前という年代は、Snellingを含む多くの創造論さhたちが考える地球の年齢よりもずっと古い。実際の年代が33000年前よりも若いことを示すエラーの証拠はない。 Links Meert, Joe, 2003. Andrew Snelling and the iron concretion? (Includes a letter from GeoChron labs saying that the "wood" looked like an iron concretion) References Hunt, Kathleen, 2002. Carbon-14 in coal deposits.? Walker, Tas, 2000. Dating dilemma deepens Moore on ancient radiocarbon. オリジナルページ これは Index to Creationist Claims, edited by Mark Isaak の和訳です。
https://w.atwiki.jp/yanprog/pages/30.html
行列 線形漸化式で定義される数列の一般項を確定する。数列の最初のほうの項をaとしたとき est.build(a)でaを与え、est.get(n)でn項目を取得する。 TODO Codeforces 230 Div1C ll mod=1000000007; struct mint{ ll value; mint() value(0){} mint(ll v) value((v%mod+mod)%mod){} }; mint operator+=(mint a, mint b){return a=a.value+b.value;} mint operator-=(mint a, mint b){return a=a.value-b.value;} mint operator*=(mint a, mint b){return a=a.value*b.value;} mint operator+(mint a, mint b){return a+=b;} mint operator-(mint a, mint b){return a-=b;} mint operator*(mint a, mint b){return a*=b;} mint operator-(mint a){return 0-a;} bool operator==(mint a, mint b){return a.value==b.value;} bool operator!=(mint a, mint b){return a.value!=b.value;} std ostream operator (std ostream os, const mint m){ return ( os m.value );} ll extgcd(ll a, ll b, ll x, ll y){ ll d=a; if(b!=0){ d=extgcd(b, a%b, y, x); y-=(a/b)*x; } else{ x=1,y=0; } return d; } ll modinverse(ll a, ll b){ ll x,y; ll d=extgcd(a,b, x, y); assert(d==1); return (x%b+b)%b; } mint operator/=(mint a, mint b){return a=a.value*modinverse(b.value,mod);} mint operator/(mint a, mint b){return a/=b;} template typename T struct matrix vector vector T { matrix(int n){ vector vector T clear(); resize(n, vector T (n) ); REP(i,n) (*this)[i][i]=1; } matrix(int n, int m){ vector vector T clear(); resize(n, vector T (m) ); } matrix T operator*(const matrix T b){ int n1=this- size(), n2=b.size(), n3=b[0].size(); assert(this- size()==n2); matrix T ret(n1,n3); REP(i,n1) REP(j,n3) REP(k,n2) ret[i][j]=ret[i][j]+(*this)[i][k]*b[k][j]; return ret; } matrix T pow(ll n){ int m=this- size(); assert((*this)[0].size()==m); return pow2(matrix T (m) ,n); } matrix T pow2(matrix t, ll n){ if(n==0)return t; if(n%2==0)return ((*this)*(*this)).pow2( t, n/2); else return ((*this)*(*this)).pow2 ((*this)*t, n/2); } /*T det(){ int n=this- size(); vector vector T x; REP(i,n) x.pb((*this)[i]); T h=1; REP(i,n){ FOR(j,i,n){ if(x[j][i]!=0 j!=i){ REP(k,n)swap(x[j][k], x[i][k]); h*=-1; break; } } if(x[i][i]==0)return 0; T v=1/x[i][i]; h=h*x[i][i]; FOR(j,i+1,n){ T v2=v*x[j][i]; REP(k,n) x[j][k]=x[j][k]-x[i][k]*v2; } } return h; }*/ }; struct EST{ EST(){}; vector mint q_init; vector mint q; void build(vector mint given){ q_init=given; int n=given.size()/2; for(int k=0; k =n; k++){ vector mint a(given.begin(), given.begin()+2*k); bool b=build_partial(a, q); //deb(k);deb(b);debl; } //debug(q); //debug(q.size()); } bool build_partial(vector mint a, vector mint ret){ assert(a.size()%2==0); int n=a.size()/2; vector vector mint m(n, vector mint (n+1)); REP(i,n) REP(j,n+1) m[i][j]=a[i+j]; REP(y,n){ FOR(x,y,n) if(m[x][y]!=0){ REP(y2,n+1) swap(m[y][y2], m[x][y2]); break; } if(m[y][y]==0)return false; { mint z=m[y][y]; REP(y2,n+1) m[y][y2]/=z; } assert(m[y][y]==1); REP(x,n){ if(x==y)continue; mint z=m[x][y]; REP(y2,n+1)m[x][y2]-=z*m[y][y2]; } } //debug(m); ret.resize(n); REP(x,n) ret[x]=m[x][n]; return true; } mint get(ll n){ int k=q.size(); matrix mint m(k,k); REP(x,k) REP(y,k) if(y==x+1) m[x][y]=1; REP(y,k) m[k-1][y]=q[y]; m=m.pow(n); mint ans=0; REP(y,k) ans+=m[0][y]*q_init[y]; return ans; } }; 使用例 SRM521 Div1HARD #include cstdio #include cstdlib #include cmath #include climits #include cfloat #include map #include utility #include set #include iostream #include memory #include string #include vector #include algorithm #include functional #include sstream #include complex #include stack #include queue #include cstring #include assert.h #define FOR(i,a,b) for(int i=(a);i (b);++i) #define REP(i,n) FOR(i,0,n) #define EACH(i,c) for(typeof((c).begin()) i=(c).begin(); i!=(c).end(); ++i) #define EXIST(s,e) ((s).find(e)!=(s).end()) #define ALL(s) (s).begin(),(s).end #define clr(a) memset((a),0,sizeof(a)) #define nclr(a) memset((a),-1,sizeof(a)) #define pb push_back #define INRANGE(x,s,e) ((s) =(x) (x) (e)) #define MP(a,b) make_pair((a),(b)) using namespace std; // BEGIN CUT HERE #define debug(x) cerr #x " = " (x) " (L" __LINE__ ")" " " __FILE__ endl; #define deb(x) cerr #x " = " (x) " , "; #define debl cerr " (L" __LINE__ ")" endl; template typename T std ostream operator (std ostream os, const vector T z){ os "[ ";REP(i,z.size())os z[i] ", " ;return ( os "]" endl);} template typename T std ostream operator (std ostream os, const set T z){ os "set( "; EACH(p,z)os (*p) ", " ;return ( os ")" endl);} template typename T,typename U std ostream operator (std ostream os, const map T,U z){ os "{ "; EACH(p,z)os (p- first) " " (p- second) ", " ;return ( os "}" endl);} template typename T,typename U std ostream operator (std ostream os, const pair T,U z){ return ( os "(" z.first ", " z.second ",)" );} // END CUT HERE typedef long long ll; typedef pair int,int pii; typedef pair long long, long long pll; typedef vector int vi; typedef vector vector int vvi; typedef vector long long vl; typedef vector vector long long vvl; typedef vector double vd; typedef vector vector double vvd; typedef vector string vs; ll mod=1000000007; struct mint{ ll value; mint() value(0){} mint(ll v) value((v%mod+mod)%mod){} }; mint operator+=(mint a, mint b){return a=a.value+b.value;} mint operator-=(mint a, mint b){return a=a.value-b.value;} mint operator*=(mint a, mint b){return a=a.value*b.value;} mint operator+(mint a, mint b){return a+=b;} mint operator-(mint a, mint b){return a-=b;} mint operator*(mint a, mint b){return a*=b;} mint operator-(mint a){return 0-a;} bool operator==(mint a, mint b){return a.value==b.value;} bool operator!=(mint a, mint b){return a.value!=b.value;} std ostream operator (std ostream os, const mint m){ return ( os m.value );} ll extgcd(ll a, ll b, ll x, ll y){ ll d=a; if(b!=0){ d=extgcd(b, a%b, y, x); y-=(a/b)*x; } else{ x=1,y=0; } return d; } ll modinverse(ll a, ll b){ ll x,y; ll d=extgcd(a,b, x, y); assert(d==1); return (x%b+b)%b; } mint operator/=(mint a, mint b){return a=a.value*modinverse(b.value,mod);} mint operator/(mint a, mint b){return a/=b;} template typename T struct matrix vector vector T { matrix(int n){ vector vector T clear(); resize(n, vector T (n) ); REP(i,n) (*this)[i][i]=1; } matrix(int n, int m){ vector vector T clear(); resize(n, vector T (m) ); } matrix T operator*(const matrix T b){ int n1=this- size(), n2=b.size(), n3=b[0].size(); assert(this- size()==n2); matrix T ret(n1,n3); REP(i,n1) REP(j,n3) REP(k,n2) ret[i][j]=ret[i][j]+(*this)[i][k]*b[k][j]; return ret; } matrix T pow(ll n){ int m=this- size(); assert((*this)[0].size()==m); return pow2(matrix T (m) ,n); } matrix T pow2(matrix t, ll n){ if(n==0)return t; if(n%2==0)return ((*this)*(*this)).pow2( t, n/2); else return ((*this)*(*this)).pow2 ((*this)*t, n/2); } /*T det(){ int n=this- size(); vector vector T x; REP(i,n) x.pb((*this)[i]); T h=1; REP(i,n){ FOR(j,i,n){ if(x[j][i]!=0 j!=i){ REP(k,n)swap(x[j][k], x[i][k]); h*=-1; break; } } if(x[i][i]==0)return 0; T v=1/x[i][i]; h=h*x[i][i]; FOR(j,i+1,n){ T v2=v*x[j][i]; REP(k,n) x[j][k]=x[j][k]-x[i][k]*v2; } } return h; }*/ }; struct EST{ EST(){}; vector mint q_init; vector mint q; void build(vector mint given){ q_init=given; int n=given.size()/2; for(int k=0; k =n; k++){ vector mint a(given.begin(), given.begin()+2*k); bool b=build_partial(a, q); //deb(k);deb(b);debl; } //debug(q); //debug(q.size()); } bool build_partial(vector mint a, vector mint ret){ assert(a.size()%2==0); int n=a.size()/2; vector vector mint m(n, vector mint (n+1)); REP(i,n) REP(j,n+1) m[i][j]=a[i+j]; REP(y,n){ FOR(x,y,n) if(m[x][y]!=0){ REP(y2,n+1) swap(m[y][y2], m[x][y2]); break; } if(m[y][y]==0)return false; { mint z=m[y][y]; REP(y2,n+1) m[y][y2]/=z; } assert(m[y][y]==1); REP(x,n){ if(x==y)continue; mint z=m[x][y]; REP(y2,n+1)m[x][y2]-=z*m[y][y2]; } } //debug(m); ret.resize(n); REP(x,n) ret[x]=m[x][n]; return true; } mint get(ll n){ int k=q.size(); matrix mint m(k,k); REP(x,k) REP(y,k) if(y==x+1) m[x][y]=1; REP(y,k) m[k-1][y]=q[y]; m=m.pow(n); mint ans=0; REP(y,k) ans+=m[0][y]*q_init[y]; return ans; } }; map vi, mint memo; mint rec(vi z){ if(EXIST(memo,z)) return memo[z]; mint ret=memo[z]; int tot=0; REP(i,z.size()) tot+=z[i]; if(tot==0) return ret=1; mint ans=0; REP(i1,8){ int i2=(i1+1)%8; if(z[i1]==z[i2] z[i1] =1 z[i1]%2==i1%2){ vi nz=z; nz[i1]--; nz[i2]--; ans+=rec(nz); } } return ret=ans; } class Chimney { public int countWays(long long n) { vector mint a; REP(i,10) a.pb(rec(vi(8,i))); //debug(a); EST est; est.build(a); int ans=est.get(n).value; return ans; } }; 使用例その2(SRM544Div1HAARD) #include cstdio #include cstdlib #include cmath #include climits #include cfloat #include map #include utility #include set #include iostream #include memory #include string #include vector #include algorithm #include functional #include sstream #include complex #include stack #include queue #include cstring #include assert.h #define FOR(i,a,b) for(int i=(a);i (b);++i) #define REP(i,n) FOR(i,0,n) #define EACH(i,c) for(typeof((c).begin()) i=(c).begin(); i!=(c).end(); ++i) #define EXIST(s,e) ((s).find(e)!=(s).end()) #define ALL(s) (s).begin(),(s).end #define clr(a) memset((a),0,sizeof(a)) #define nclr(a) memset((a),-1,sizeof(a)) #define pb push_back #define INRANGE(x,s,e) ((s) =(x) (x) (e)) #define MP(a,b) make_pair((a),(b)) using namespace std; // BEGIN CUT HERE #define debug(x) cerr #x " = " (x) " (L" __LINE__ ")" " " __FILE__ endl; #define deb(x) cerr #x " = " (x) " , "; #define debl cerr " (L" __LINE__ ")" endl; template typename T std ostream operator (std ostream os, const vector T z){ os "[ ";REP(i,z.size())os z[i] ", " ;return ( os "]" endl);} template typename T std ostream operator (std ostream os, const set T z){ os "set( "; EACH(p,z)os (*p) ", " ;return ( os ")" endl);} template typename T,typename U std ostream operator (std ostream os, const map T,U z){ os "{ "; EACH(p,z)os (p- first) " " (p- second) ", " ;return ( os "}" endl);} template typename T,typename U std ostream operator (std ostream os, const pair T,U z){ return ( os "(" z.first ", " z.second ",)" );} // END CUT HERE typedef long long ll; typedef pair int,int pii; typedef pair long long, long long pll; typedef vector int vi; typedef vector vector int vvi; typedef vector long long vl; typedef vector vector long long vvl; typedef vector double vd; typedef vector vector double vvd; typedef vector string vs; ll mod=1000000007; struct mint{ ll value; mint() value(0){} mint(ll v) value((v%mod+mod)%mod){} }; mint operator+=(mint a, mint b){return a=a.value+b.value;} mint operator-=(mint a, mint b){return a=a.value-b.value;} mint operator*=(mint a, mint b){return a=a.value*b.value;} mint operator+(mint a, mint b){return a+=b;} mint operator-(mint a, mint b){return a-=b;} mint operator*(mint a, mint b){return a*=b;} mint operator-(mint a){return 0-a;} bool operator==(mint a, mint b){return a.value==b.value;} bool operator!=(mint a, mint b){return a.value!=b.value;} std ostream operator (std ostream os, const mint m){ return ( os m.value );} ll extgcd(ll a, ll b, ll x, ll y){ ll d=a; if(b!=0){ d=extgcd(b, a%b, y, x); y-=(a/b)*x; } else{ x=1,y=0; } return d; } ll modinverse(ll a, ll b){ ll x,y; ll d=extgcd(a,b, x, y); assert(d==1); return (x%b+b)%b; } mint operator/=(mint a, mint b){return a=a.value*modinverse(b.value,mod);} mint operator/(mint a, mint b){return a/=b;} template typename T struct matrix vector vector T { matrix(int n){ vector vector T clear(); resize(n, vector T (n) ); REP(i,n) (*this)[i][i]=1; } matrix(int n, int m){ vector vector T clear(); resize(n, vector T (m) ); } matrix T operator*(const matrix T b){ int n1=this- size(), n2=b.size(), n3=b[0].size(); assert(this- size()==n2); matrix T ret(n1,n3); REP(i,n1) REP(j,n3) REP(k,n2) ret[i][j]=ret[i][j]+(*this)[i][k]*b[k][j]; return ret; } matrix T pow(ll n){ int m=this- size(); assert((*this)[0].size()==m); return pow2(matrix T (m) ,n); } matrix T pow2(matrix t, ll n){ if(n==0)return t; if(n%2==0)return ((*this)*(*this)).pow2( t, n/2); else return ((*this)*(*this)).pow2 ((*this)*t, n/2); } /*T det(){ int n=this- size(); vector vector T x; REP(i,n) x.pb((*this)[i]); T h=1; REP(i,n){ FOR(j,i,n){ if(x[j][i]!=0 j!=i){ REP(k,n)swap(x[j][k], x[i][k]); h*=-1; break; } } if(x[i][i]==0)return 0; T v=1/x[i][i]; h=h*x[i][i]; FOR(j,i+1,n){ T v2=v*x[j][i]; REP(k,n) x[j][k]=x[j][k]-x[i][k]*v2; } } return h; }*/ }; struct EST{ EST(){}; vector mint q_init; vector mint q; void build(vector mint given){ q_init=given; int n=given.size()/2; for(int k=0; k =n; k++){ vector mint a(given.begin(), given.begin()+2*k); bool b=build_partial(a, q); //deb(k);deb(b);debl; } //debug(q); //debug(q.size()); if(q.size()==0){ q.pb(0); } } bool build_partial(vector mint a, vector mint ret){ assert(a.size()%2==0); int n=a.size()/2; vector vector mint m(n, vector mint (n+1)); REP(i,n) REP(j,n+1) m[i][j]=a[i+j]; REP(y,n){ FOR(x,y,n) if(m[x][y]!=0){ REP(y2,n+1) swap(m[y][y2], m[x][y2]); break; } if(m[y][y]==0)return false; { mint z=m[y][y]; REP(y2,n+1) m[y][y2]/=z; } assert(m[y][y]==1); REP(x,n){ if(x==y)continue; mint z=m[x][y]; REP(y2,n+1)m[x][y2]-=z*m[y][y2]; } } //debug(m); ret.resize(n); REP(x,n) ret[x]=m[x][n]; return true; } mint get(ll n){ int k=q.size(); matrix mint m(k,k); REP(x,k) REP(y,k) if(y==x+1) m[x][y]=1; REP(y,k) m[k-1][y]=q[y]; m=m.pow(n); mint ans=0; REP(y,k) ans+=m[0][y]*q_init[y]; return ans; } }; int dx[4]={1,0,-1,0}; int dy[4]={0,1,0,-1}; class SplittingFoxes { public int sum(long long n, int S, int L, int R) { map vi, mint z; vi init(3,0); z[init]=1; vector mint a; REP(i,10){ //debug(z); mint tot=0; EACH(pp,z){ int x=pp- first[0]; int y=pp- first[1]; int r=pp- first[2]; tot+=x*y*pp- second; } a.pb(tot); map vi, mint nz; EACH(pp,z){ int x=pp- first[0]; int y=pp- first[1]; int r=pp- first[2]; mint v=pp- second; REP(k,3){ int nx=x,ny=y,nr=r; if(k==0){ nx+=dx[r]; ny+=dy[r]; } if(k==1)nr++; if(k==2)nr+=3; nr%=4; vi p(3); p[0]=nx; p[1]=ny; p[2]=nr; int weight[3]={S,L,R}; nz[p]+=weight[k]*v; } } z=nz; } //debug(a); //debug(n); EST est; est.build(a); int ans=est.get(n).value; return ans; } };
https://w.atwiki.jp/teitoku_bbs/pages/4592.html
428: ナイ神父Mk-2 :2017/05/04(木) 00 16 09 大陸SEED 連合勢力 推定海軍戦力配置 戦力に関しては基本的に推定の主力艦であり国家の方針等の影響によって変化し 特に駆逐艦に関しては恐らく記述した倍近い数は最低存在すると思われる ○大西洋 恐らく、最大勢力が米である事とハワイを失って居る事から主力の大半は北米大陸~中米の東西両岸に存在していると 思われる。 ジョシュア基地:空母2隻、MA母艦2隻、大型潜水艦2隻、中型潜水艦4隻、駆逐艦12隻 旧合衆国地域(両海岸含む):空母4隻、MA母艦4隻、大型潜水艦4隻、中型潜水艦8隻、駆逐艦24隻 中米(パナマ?):空母2隻、MA母艦2隻、大型潜水艦2隻、中型潜水艦4隻、駆逐艦12隻 イギリスorヘブンズベース:空母2隻、MA母艦2隻、大型潜水艦2隻、中型潜水艦4隻、駆逐艦12隻 総数:空母12隻、MA母艦12隻、大型潜水艦12隻、中型潜水艦20隻、駆逐艦60隻 ○東アジア 国境をユーラシアと大洋連合に包囲されており海軍より陸軍を重視、海軍戦力は恐らく少数だと思われる 朝鮮半島:空母2隻、MA母艦2隻、大型潜水艦2隻、中型潜水艦4隻、駆逐艦12隻 旧中国地域:空母2隻、MA母艦2隻、大型潜水艦2隻、中型潜水艦4隻、駆逐艦12隻 総数:空母4隻、MA母艦2隻、大型潜水艦2隻、中型潜水艦4隻、駆逐艦12隻 429: ナイ神父Mk-2 :2017/05/04(木) 00 16 46 ○ユーラシア 基本は陸軍だが至近に対立陣営の有力な海軍基地が有る為其れなりの戦力は 存在する物と思われる。 欧州側:空母4隻、MA母艦4隻、大型潜水艦4隻、中型潜水艦8隻、駆逐艦24隻 極東側:空母2隻、MA母艦2隻、大型潜水艦2隻、中型潜水艦4隻、駆逐艦12隻 総数:空母6隻、MA母艦6隻、大型潜水艦6隻、中型潜水艦12隻、駆逐艦36隻 ○大洋連合 大陸国家になり始めているが、基本は海洋国家で有る為主力である海軍も一定以上は必要となって居る。 横須賀:空母2隻、MA母艦2隻、大型潜水艦2隻、中型潜水艦4隻、駆逐艦12隻 呉:空母2隻、MA母艦2隻、大型潜水艦2隻、中型潜水艦4隻、駆逐艦12隻 舞鶴:空母2隻、MA母艦2隻、大型潜水艦2隻、中型潜水艦4隻、駆逐艦12隻 佐世保:空母2隻、MA母艦2隻、大型潜水艦2隻、中型潜水艦4隻、駆逐艦12隻 真珠湾:空母2隻、MA母艦2隻、大型潜水艦2隻、中型潜水艦4隻、駆逐艦12隻 台湾:MA母艦2隻、大型潜水艦2隻、中型潜水艦4隻、駆逐艦12隻 カーペンタリア?:空母2隻、MA母艦2隻、大型潜水艦2隻、中型潜水艦4隻、駆逐艦12隻 セイロン島:MA母艦2隻、大型潜水艦2隻、中型潜水艦4隻、駆逐艦12隻 インド;空母2隻、MA母艦2隻、大型潜水艦2隻、中型潜水艦4隻、駆逐艦12隻 総数:空母14隻、MA母艦18隻、大型潜水艦18隻、中型潜水艦36隻、駆逐艦108隻 430: ナイ神父Mk-2 :2017/05/04(木) 00 20 28 以上です此れから一応これが大凡の想定と成りますが最初に書いた通り現代基準で考えると もっと駆逐艦が増えたり戦力配置が変わったりすると思われます。又、これ以外にも勿論 艦は存在しているの此れに更に揚陸艦なども含まれて来るかと思われます。