温室効果ガス9%(90年度比)増加のポイントを説明するよ

温暖化ガス25%(90年度比)削減のポイントを説明するよ - シートン俗物記を読んで。

やたらめったらメディアでは家庭や個人の心がけや努力が唱われますけど、あまり効果が無いんですね。

でも90年度比で増加したのは業務その他部門と家庭部門なんだけどなあと思った。

ここまでははてブで書いた。何が排出してるかより何が増加してるかという視点のほうがおもしろそうだと思ったので、いろいろぐぐってみた。

そのうち給湯と暖房が3割弱を占め、冷房と厨房用はさほどでもないんですね。

家庭における燃料別エネルギー消費構成を見てみる。ガス・灯油のエネルギー消費の大半は給湯・暖房だろう。しかし、これらは横ばいであり、それに対して電力消費は増加している。

そして、日本の家庭用電力消費量の推移を見ると、家庭部門のエネルギー消費が90年度比で増加した最大要因はエアコンであると考えられる。

石油暖房からエアコンに移っているのも原因だろうし、世帯数の増加に対して灯油消費量は横ばいなのはそのせいかもしれない。しかし、それ以上にエアコンの電力消費量の増加は著しい。

まあ結局のところ、元記事で引用されていたページの言うとおり、

その原因は、私たちのライフスタイルの変化にあります。

ということになるだろう。
そりゃあ、「やたらめったらメディアでは家庭や個人の心がけや努力が唱われ」るよなーと思った。

親知らずファイナル

id:staebchen:20090512#1242092683の続き。左上の親知らずを抜いてきた。
そしてその上には四天王を束ねる…もとい、左上の親知らずの奥にもう一本歯があった。まあ最初にレントゲン撮ったときにわかってたことだけど。
抜けたら抜きますと言われてたけど、無事抜けた。そのせいか今回は縫うことに。やっぱりなかなか血が止まらないなー。

SRM443 Mediumを解いてみた

id:chokudaiせんせのオーダーを極める思考法 (1/3) - ITmedia エンタープライズを読んだのでSRM443 Mediumに再挑戦。
そのSRMのときは頭悪いことにダイクストラ法使って制限時間オーバーで落とされたけど。。*1
しかし記事に載ってる方法で普通に解いても面白くないので、幅優先をベースにした力技で解いてみた。オーダーもへったくれもねえなw
…こんなの実戦じゃ書けないです><

#include <map>
using namespace std;
class BinaryFlips{
  int hoge[200001];
  int queue[200001];
  bool visited[200001];
  map<int, int> even, odd;
public:
  int skip(int n) {
    map<int,int>::iterator i =
      (n%2 == 0) ? even.upper_bound(n)
                 : odd.upper_bound(n) ;
    -- i;
    if (i->first <= n && n <= i->second) {
      return i->second;
    }
    return n;
  }
  void add(int begin, int last) {
    if (skip(begin) != skip(last)) {
      if (begin%2 == 0) even[begin] = skip(last);
      else odd[begin] = skip(last);
    }
  }
  int minimalMoves(int A, int B, int K) {
    even[-1] = -1;
    odd[-1] = -1;
    int N = A+B;
    memset(visited, 0, sizeof(visited));
    int n = 0;
    queue[n++] = A;
    visited[A] = true;
    hoge[A] = 0;
    for (int p = 0; p < n; ++ p) {
      int a = queue[p];
      if (a % K == 0) return hoge[a] + a / K;
      int begin = max(a-K, K-a);
      int last = min(a+K, 2*N-a-K);
      for (int i = begin; i <= last; i += 2) {
        if (i % K == 0) return hoge[a] + 1 + i / K;
        if (visited[i]) {
          i = skip(i);
        } else {
          visited[i] = true;
          queue[n++] = i;
          hoge[i] = hoge[a] + 1;
        }
      }
      add(begin, last);
    }
    return -1;
  }
};

*1:そのときの回答 たぶん要ログイン

ACM/ICPC国内予選

今年もだめかー。3問正解/6問で39位だったはず。
AとDを解いた。Aは書くだけ。なのに問題把握に手間取って20分ぐらいかかってしまったorz
変数名を取り違えて実行時エラーであれー?となったり。はぁ。。
Dは例によってダイクストラ。今年は紙の上で書けるようになった。
PC占拠時間の最小化には成功したかもしれない。でもPC使ったほうが速く解けたかも。。まあ、すんなり通ったのは嬉しい。
最終的にはBは通ったけどCが完成せず3問止まり。
いやはや、精進が足りませんなあ。

TopCoder SRM 443

休講を活用してとぷこだ。
ここ9ヶ月ほど安定して青色だったけど、ついに黄色になった!
http://www.topcoder.com/tc?module=MemberProfile&cr=22749323

うわー、名前が黄色だ。すごい違和感w
しかし、すぐ青に戻りそうな悪寒。。

ACM/ICPC模擬戦またも現る

今年も出るよー!*1そして1位とった!

リハーサル*2だけどな!まさに外道(AAry

結果は、http://acm-icpc.aitea.net/index.php?2009%2FPractice%2F%CC%CF%B5%BC%B9%F1%C6%E2%CD%BD%C1%AA%2F%BD%E7%B0%CCに。
今回はCとD挑戦して、Dは時間ぎれ。うーん。時間と人の配分がいろいろミスったかなあ。。

Cの回答: http://files.getdropbox.com/u/385703/icpc/c.cpp.txt
プライオリティキューの使い方覚えた結果がこれだよ!
遅くて終わらないなあ→あ、Releaseにするの忘れてた→/(^o^)\
つーか、サンプル通ってない回答でWrong Answerはちょっと情けない。もちつけ俺。

*1:去年の模擬: d:id:staebchen:20080622#1214134029 去年の国内: d:id:staebchen:20080704#1215199724

*2:システムテスト用に、とても簡単な問題が出る