<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/imolib/">
    <title>Imoのアルゴリズムライブラリ</title>
    <link>http://w.atwiki.jp/imolib/</link>
    <atom:link href="https://w.atwiki.jp/imolib/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>Imoのアルゴリズムライブラリ</description>

    <dc:language>ja</dc:language>
    <dc:date>2010-06-26T17:18:46+09:00</dc:date>
    <utime>1277540326</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/imolib/pages/27.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/imolib/pages/26.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/imolib/pages/25.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/imolib/pages/24.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/imolib/pages/23.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/imolib/pages/22.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/imolib/pages/21.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/imolib/pages/20.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/imolib/pages/19.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/imolib/pages/18.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/imolib/pages/27.html">
    <title>Java</title>
    <link>https://w.atwiki.jp/imolib/pages/27.html</link>
    <description>
          </description>
    <dc:date>2010-06-26T17:18:46+09:00</dc:date>
    <utime>1277540326</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/imolib/pages/26.html">
    <title>プログラミングC/レポート作成上の注意</title>
    <link>https://w.atwiki.jp/imolib/pages/26.html</link>
    <description>
      *レポートの体裁について
レポートは指定のクラスファイル（icsreport.cls(202)）を用いて pLaTeX2e で作成し，A4用紙に印刷して提出すること．尚，クラスファイルの使用例は/home/exp/exppub/exp-material/PC2000 に sample-icsreport.tex というファイル名で置いてあるので参考にせよ．

表紙には，クラスファイルの使用例に従い，科目名，課題名，担当教官名，提出者氏名，学籍番号，コース，学年，メールアドレスを明記すること．

レポートは内容ごとに節（section）に分割し，さらに必要に応じて小節（subsection）に分割すること．

レポートは左端の2箇所をホッチキスでとめて提出すること．クリップによる提出は認めない．

プログラムの作成を要求した課題に対するレポートには，課題内容，プログラムの仕様，主要処理の概要，アルゴリズム，プログラムの動作テストの方法，プログラムの動作結果，工夫点，感想，プログラムリストを含めること．プログラム作成以外の課題の場合は，課題内容と課題に対する答え，および感想を含めること．ただし，10行程度のシェルスクリプトの作成はここでいうプログラムの作成とはみなさないが，作成したスクリプトの説明は必ず記述すること．

プログラム（短いシェルスクリプトを除く）を作成した場合は，プログラムリストをレポートの最後に付録として添付すること．印刷用紙の節約のため，A4用紙に2ページ分を印刷することが望ましい．

レポートは課題ごとに特に指定のない限り，表紙とプログラムリストを除き全体で10ページ以内で作成すること．

*レポートの内容について
レポート本文は，簡潔にかつ分かりやすく書くこと．第三者が読むことを常に念頭に入れて書くこと．

レポート本文は，あくまで報告書であることから客観的な記述の仕方に徹するべきである．従って，感想以外の部分で，個人の感想や主観的な意見，コメントを書くべきではない．また，過去にチャット調の文章を書いていた者もいるが，そのようなレポートは課題の達成度がいかに高かろうと，報告書としての価値は皆無であるとみなされるので注意せよ．

課題内容は，レポート課題の問題文をまる写ししてはならない．

レポートに書くべ    </description>
    <dc:date>2008-05-26T23:13:13+09:00</dc:date>
    <utime>1211811193</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/imolib/pages/25.html">
    <title>Max Power … 多倍長整数</title>
    <link>https://w.atwiki.jp/imolib/pages/25.html</link>
    <description>
      *Max Power
**問題(Code: MXP)
a1, a2, …, anとb1, b2, …, bnの二つの数列があった時、
akのbk乗が最大になるkを求めよ。
&amp;italic(){引用: [[Open 2008 (SPOJ)&gt;https://www.spoj.pl/ZFUN08/problems/MXP/]]}
**入力
The first line of input contains a positive integer n, not greater than 10000. In the second line you are given a set of positive integers ai separated by spaces, and in the third line – integers bi. All numbers in both sequences are not greater than 10000. It is guaranteed that all power values are different.
**計算量
O(N)
**ソースコード
 #include &lt;stdio.h&gt;
 #include &lt;math.h&gt;
 
 int n, o, i;
 double m, q, a[10001], b[10001];
 
 int main(void) {
 	scanf(&quot;%d&quot;, &amp;n);
 	{
 		for (i = 1; i &lt;= n; ++i) scanf(&quot;%lf&quot;, &amp;a[i]);
 		for (i = 1; i &lt;= n; ++i) scanf(&quot;%lf&quot;, &amp;b[i]);
 		m = log(a[1]) * b[1]; o = 1;
 		for (i = 2; i &lt;= n; ++i) {
 			q = log(a[i]) * b[i];
 			if (m &lt; q) m = q, o = i;
 		}
 	}
 	printf(&quot;%d\n&quot;, o);
 	return 0;
 }
**確認
済み
//**参考
//***全点対間最短距離
//#list_by_tag(ライブラリ,全点対間最短距離,100,sort=pagena    </description>
    <dc:date>2008-05-04T23:27:10+09:00</dc:date>
    <utime>1209911230</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/imolib/pages/24.html">
    <title>電子回路2</title>
    <link>https://w.atwiki.jp/imolib/pages/24.html</link>
    <description>
          </description>
    <dc:date>2008-04-24T00:47:02+09:00</dc:date>
    <utime>1208965622</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/imolib/pages/23.html">
    <title>Page Hopping … グラフ, 全点対間最短路</title>
    <link>https://w.atwiki.jp/imolib/pages/23.html</link>
    <description>
      *Page Hopping
**問題
Given a graph in which all nodes can be reached from any starting point, your job is to find the average shortest path length between arbitrary pairs of nodes.
&amp;italic(){引用: [[UVa 821&gt;http://icpcres.ecs.baylor.edu/onlinejudge/external/8/821.html]]}
**概要
グラフが与えられた時、辿り着きうる任意の二点を選んだ時の平均の最短距離を求める
**計算量
O(N&amp;u(){3})
**ソースコード
 // Page Hopping
 #include &lt;stdio.h&gt;
 #include &lt;string.h&gt;
 
 int main(void) {
   int a, b, p = 0, m[100][100];
   while (scanf(&quot;%d%d&quot;, &amp;a, &amp;b) &amp;&amp; a &amp;&amp; b) {
     memset(m, 1, sizeof(m)); p++;
     do { m[a - 1][b - 1] = 1; }
      while (scanf(&quot;%d%d&quot;, &amp;a, &amp;b) &amp;&amp; a &amp;&amp; b);
     // cf. Floyd Warshall
     for (int k = 0; k &lt; 100; k++)
      for (int i = 0; i &lt; 100; i++)
       for (int j = 0; j &lt; 100; j++)
        if (m[i][k] + m[k][j] &lt; m[i][j])
         m[i][j] = m[i][k] + m[k][j];
     for (int i = 0; i &lt; 100; i++)
      for (int j = 0; j &lt; 100; j++)
       if (i != j &amp;&amp; m[i][j] &lt; 100) { a += m[i][j]; b++; }
     printf(&quot;Case    </description>
    <dc:date>2008-04-17T00:18:58+09:00</dc:date>
    <utime>1208359138</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/imolib/pages/22.html">
    <title>問題例リスト</title>
    <link>https://w.atwiki.jp/imolib/pages/22.html</link>
    <description>
      *問題
#list_by_tag(問題,100,sort=pagename,sort2=asc,errmsg=該当する問題はありません)    </description>
    <dc:date>2008-04-16T23:57:56+09:00</dc:date>
    <utime>1208357876</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/imolib/pages/21.html">
    <title>divisor_count … 約数の個数</title>
    <link>https://w.atwiki.jp/imolib/pages/21.html</link>
    <description>
      *素因数分解
**説明
素因数の発見は順番に探索していく単純な方法。
n=p&amp;u(){k}q&amp;u(){m}p&amp;u(){n}…の約数の個数は(k+1)(m+1)(n+1)…であることを利用して解いている。
**計算量
O(N&amp;u(){0.5})
**使い方
divisor_count(n)でnの約数の個数を返す。
**必要なライブラリ
//#list_by_tag(map,1,sort=pagename,errmsg=map)
-なし
**ソースコード
約数の個数
 int divisor_count(int n) {
   int j, c = 1;
   for (int i = 2; i * i &lt;= n; i++, c *= j)
    for (j = 1; !(n % i); j++) n /= i;
   return (1 &lt; n) ? c * 2 : c;
 }
**確認
なし    </description>
    <dc:date>2008-04-12T22:40:47+09:00</dc:date>
    <utime>1208007647</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/imolib/pages/20.html">
    <title>factorize … 素因数列挙</title>
    <link>https://w.atwiki.jp/imolib/pages/20.html</link>
    <description>
      *素因数分解
**説明
順番に探索していく単純な素因数分解。
**計算量
O(N&amp;u(){0.5})
**使い方
factorize(n)でnを素因数分解した結果をmap&lt;素因数,回数&gt;で返す。
**必要なライブラリ
#list_by_tag(map,1,sort=pagename,errmsg=map)
**ソースコード
素因数分解
 map&lt;int, int&gt; fractorize(int n) {
   map&lt;int, int&gt; m;
   for (int i = 2; i * i &lt;= n; i++)
    for (; !(n % i); m[i]++) n /= i;
   if (1 &lt; n) m[n]++; return m;
 }
**確認
なし    </description>
    <dc:date>2008-04-12T22:40:04+09:00</dc:date>
    <utime>1208007604</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/imolib/pages/19.html">
    <title>primes … 素数列挙</title>
    <link>https://w.atwiki.jp/imolib/pages/19.html</link>
    <description>
      *素数列挙
**説明
エラトステネスの篩および単純な探索。
**計算量
O(N&amp;u(){1.5})
**使い方
primes(n)でnまでの素数を列挙して返す。
**必要なライブラリ
#list_by_tag(vector,1,sort=pagename,errmsg=vector)
**ソースコード
単純探索
 vector&lt;int&gt; primes(int n) {
   vector&lt;int&gt; p; p.reserve(1.26 * n / log(n)); p.pb(2);
   int s = 0, t = 4, f = 0;
   for (int i = 3; i &lt; n; i++) {
     f = 1; rep(j, s) if (f = i % p[j], !f) break;
     if (f) if (t - i) p.pb(i); else t = p[++s] * p[s];
   }
   return p;
 }

エラトステネスの篩
 vector&lt;int&gt; primes2(int n) {
   vector&lt;int&gt; p; p.reserve(1.26 * n / log(n)); p.pb(2);
   int *isd = new int[n]; memset(isd, 0, sizeof(int) * n);
   for (int i = 3; i &lt; n; i += 2) if (!isd[i])
    { p.pb(i); for (int j = i * i; j &lt; n; j += i) isd[j] = 1; }
   delete [] isd; return p;
 }
**確認
なし
**参考
***素数関連
#list_by_tag(素数,100,sort=pagename,sort2=asc)    </description>
    <dc:date>2010-06-26T17:10:33+09:00</dc:date>
    <utime>1277539833</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/imolib/pages/18.html">
    <title>コメント/掲示板</title>
    <link>https://w.atwiki.jp/imolib/pages/18.html</link>
    <description>
      -実験ー - Imo 2008-04-09 23:17:20 &amp;dummy(1207750640.39) 
-間違いやら希望があったらここへー - Imo 2008-04-09 23:17:49 &amp;dummy(1207750669.24)     </description>
    <dc:date>2008-04-09T23:17:49+09:00</dc:date>
    <utime>1207750669</utime>
  </item>
  </rdf:RDF>
