お嬢様系女子校生の日記

もう一度、、もう一度チャンスを、、、

ARC071 D - 井井井 / ###

  • 問題

arc071.contest.atcoder.jp

  • エディトリアル

https://atcoder.jp/img/arc071/editorial.pdf

  • 感想

O(n+m)なのは想像がついた。
だけど、解けなかった。
xのトータルの長さとyのトータルの長さを掛けて答えが出ることも分かった。
だからあとはそのトータルの長さをO(n)とO(m)で求めるのだけど、その求め方が分からずエディトリアルを見た。
まぁ、簡単に書いてあって、そっかーって気持ちに。
なので、自分で考えて実装。
トータルの求め方は少しエディトリアルと違ってるが本質的には同じ。

#include<bits/stdc++.h>
#define ll long long
#define fi first
#define se second
using namespace std;

int n,m;
int x[100001],y[100001];
const ll MOD=(ll)1e9+7;

int main(){
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.precision(10);
  cout<<fixed;
#ifdef LOCAL_DEFINE
    freopen("in", "r", stdin);
    freopen("out","w",stdout);
#endif
  cin>>n>>m;
  for(int i=0;i<n;i++){
    cin>>x[i];
  }
  for(int i=0;i<m;i++){
    cin>>y[i];
  }
  ll xsum=0,ysum=0;
  ll now=n-1;//x[n-1]に付く係数
  for(int i=n-1;i>=0;i--){
    xsum+=now*x[i];
    now-=2;//xに付く係数は毎回-2すれば良い
  }
  now=m-1;//xの時と同じ
  for(int i=m-1;i>=0;i--){
    ysum+=now*y[i];
    now-=2;
  }
  cout<<((xsum%MOD)*(ysum%MOD))%MOD<<"\n";
#ifdef LOCAL_DEFINE
    cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
#endif
  return 0;
}

ABC041_D 徒競走

  • muzukasii...




pakapa104.hatenablog.com

  • ↑wakarimiga hukai !!!

http://www-erato.ist.hokudai.ac.jp/docs/autumn2013/inoue.pdf

  • ↑naruhodo!!!

正直僕にはエディトリアルが何を言ってるのか分からなかった。
自分の頭はたしかに良くないのでググって調べてみたら、こんな僕にでもわかる記事があって助かりました。

以下コード

#include<bits/stdc++.h>
#define ll long long
#define fi first
#define se second
using namespace std;

int n,m;
ll dp[(1<<16)+10];
bool a[20][20];

int main(){
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.precision(10);
  cout<<fixed;
#ifdef LOCAL_DEFINE
    freopen("in", "r", stdin);
    freopen("out","w",stdout);
#endif
  cin>>n>>m;
  for(int i=0;i<m;i++){
    int to,from;cin>>from>>to;
    from--;to--;
    a[to][from]=1;//from->to
  }
  dp[0]=1;
  for(int i=0;i<(1<<n);i++){
    bool b[20][20];
    for(int j=0;j<n;j++)for(int k=0;k<n;k++)b[j][k]=a[j][k];//copy
    for(int j=0;j<n;j++){
      if(i&(1<<j)){
        for(int k=0;k<n;k++){
          b[k][j]=0;//j->kの入次数を消す
        }
      }
    }
    for(int j=0;j<n;j++){//iにない頂点から入次数が0のものを探す旅に出る
      if(i&(1<<j))continue;
      bool flag=1;
      for(int k=0;k<n;k++){
        if(b[j][k]){
          flag=0;
          break;
        }
      }
      if(flag)dp[i|(1<<j)]+=dp[i];
    }
  }
  cout<<dp[(1<<n)-1]<<"\n";
#ifdef LOCAL_DEFINE
    cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
#endif
  return 0;
}

意識

まあなんていうか、何をするにしても意識することは必要かなと。

とはいいつつ、なかなかできない。

ただ、じゃあやらなくていいのかと言うとそんなことはない。

多くの人が言うのは、意識することが大切。

例えば、少ない変数が現れたとき意識することは、それぞれの変数が偶数か奇数かとか、少ない種類の色である箇所を塗るときは何の色で、または隣とどんな接し方をしているかとかとか。

自分が苦手だというのではなく、そういう考えをすることに慣れていないということ。

毎回問題の考察をするとき、その考え方を頭の中の候補として取り出せる状態にしてあるかが大事。

想定内のことにしか僕は対応できないのだから。

意識して、問題を考える。

そうすれば突破口は見えてくる。

そんなに難しい問題を考えてるわけじゃないんだから。

ディズニー アナハイムのホテルから空港へ

この記事はディズニーランドエクスプレスとスーパーシャトルとどっちを選ぶか迷った挙句、やっぱりディズニーが公式で運営してるバスの方が安心だし掛かる時間なんてカンケーないよと思ってバスに乗ろうと決意したもののわからないことだらけの人の為のものです。

注意

記事を書いている本人もその道のプロではないのでせいぜい今から書くことで精一杯です。

英語むーりーーーな人がこの記事を書いてます。


時刻表を貰おう



これはディズニーランドエクスプレスの時刻表案内の紙の表紙です。
どうやらディズニーランドエクスプレスと言うよりエアポートシャトルと言うのが正式名称らしいです。

私はこの紙をもらうためにホテルのベルボーイさんにcan i take a look at desneyland express's time schedule?みたいな感じでテキトーに言いましたが、少々相手が何の事か察するのに時間がかかってました。

事をスムーズに進めるためにはcan i take a look at airport shuttle's time schedule?みたいに言えば良いはずです。

まあ、最悪無くても下の画像を見れば問題ありません。
(このパンフレットを貰ったのは2017年8月30日です。)

バスの入り口付近にもこの紙はあるので、行きでバスに乗るような人はその時にゲットしておくと良いでしょう。

注意

この紙は特定のホテルでしか貰えません。

特定のホテルとは、このバスが止まるバス停が存在するホテルというものです。

このバスは悲しい事に全てのホテルにいちいち止まってくれるほど親切ではありません。
なので、バス停のあるホテルのベルボーイさんに紙をもらいましょう。

そのバス停のあるホテル、、どこなの??と思った方、焦らずに読んでいけば分かります。

この紙、空港からディズニーランドパークに行く場合はどこで貰えば良いのか分かりません。
従って、もしもこの記事を読んでいる方で空港からディズニーランドパークに行きたいと思っている人がいれば次の画像を頼りに行ってください。
おすすめのわかりやすいサイトも載せておきます。
http://tdrnavi.jp/blog/5139

↑これは空港からディズニーランドパークへの時刻表です。行く際にでも参考にしてください。

↑これはロサンゼルス国際空港(LAX)行きのバスの時刻表です。

この写真の左側に書いてあるホテル名、これが先ほど説明したディズニーランドエクスプレスが止まるホテル一覧になります。


自分のホテルの名前が書いてありますか?


書いてあったらベルボーイさんなどに時刻表を貰い、バス停の位置なども確認しておくと良いでしょう。

書いてなかった人は、今泊まっているホテルから距離が近い該当のホテルがどこなのかを予め自分で見つけましょう。Googleマップで見つけるもよし、実際に外に出てみて周りのホテルを見渡してみるのも良い手だと思います。
なお、近くのバス停があるホテルを見つけたらそこのホテルのベルボーイさんにバス停の位置を聞いてみましょう。教えてくれるはずです。

↑これはもう1つ別の空港行きの時刻表のようです。参考にどうぞ。

バスに乗る

いざ、バスに乗ります。

と言っても紹介することがあまりないです。

料金は2枚目の画像の通りですし。
バスが来たら運転手の人がトランクなどの大きめな荷物を荷物入れに入れてくれます。

そして、どこの航空会社の飛行機に乗るのか聞かれます。これはロサンゼルス国際空港のターミナルが航空会社によって場所が全然違うからです。
例えば私の場合では、ユナイテッド エアラインと答えました。

バスに乗ったら適当に席に着きます。

バスは一旦全てのバス停に止まりながらお客さんを乗せます。

最後のバス停(desneyland Hotel)に着くと、運転手とは違う係りの人が乗ってきます。
この人にお金を払います。

正確には、片道(one way)か往復(round way)かを聞かれます。帰りなら大体の人はone wayと答えるでしょう。別に何らかの事情があればround wayでも構いません。
そして、精算。

注意

お金は現金で支払うことが出来ません。
予めクレジットカードを用意しておきましょう。


係りの人にクレジットカードを渡して精算し、終わりです。

乗車してる人全員の精算が終わり次第空港へと出発します。
混雑やトラブルが無ければディズニーの敷地から空港までは40分くらいです。

空港に着いた

空港に着き、自分の行きたいターミナルに着いたらバスを降ります。
そしたら、大きめの荷物を荷物入れに入れていた場合は運転手が取り出してくれます。
全て取り出してもらったらチップを渡しましょう。1から3ドル程度ですね。僕は1ドル出しました。ただし、これはすこし少なかった気がします。

めでたく空港に到着

おめでとうございます。これであなたはエアポートシャトルのプロですね。

空港に着いたら預ける荷物にタグのシールを付けるために、それ専用の機械で操作しましょう。日本語設定ができるので英弱も元気になります。

それが出来たらカウンターで荷物を預けて、パスポートと座席チケットを見せましょう。
すぐに終わります。

その後は荷物検査など恒例行事を済ませて終わりです。

お疲れ様でした。長々と説明を読んでもらってありがとうございます。
楽しい旅行を。

最近

最近やってる事

  • 唐突にスランプに似たものをがやってきて伸び悩んでいるので少しずつ問題をやっています。
  • ABCのC問題を埋めているが、最近のC問題が解けるだけで少し前の問題で満点が取れないので基礎的又は簡単なアルゴリズムを学んでいます。
  • 気分転換に部活をやっています。(剣道)

学んだ事

ここでは典型的な自分が学んだアルゴリズムの名称だけをつらつら書きます。
詳しくはググってね。

とかとか。
これらは内容を理解する事自体は簡単だと思います。ただ、動的計画法などは簡単に応用可能なので理解は出来ても正しく実装ができるかは努力次第です。個人的にも頭抱えてます。

これから

まだまだ勉強量、AC数が足りていないので解いていきます。今はまだ難しいアルゴリズムを無理にやっても時間だけが過ぎていく可能性が高いので基礎的アルゴリズムをミスを出来るだけ少なく実装できるように精進します。それにまだ典型的なアルゴリズムで知らないものも多いと思いますし。
やろうかなーって思っているのはUF木、使えるようにしたいのはlower_bound、uper_boundですね。

圧倒的勉強量が足りてない

はい、足りてないんです。

そんだけです。

部活とかやってる場合じゃないと思います。(個人的には部活は勉強の合間の気分転換だと思ってる)

僕の実力は世界的に見れば中2以下といったところでしょうか。

いやいや、それは流石にないと思った人は頭がお花畑で羨ましいです。

春休みにも勉強して、大学の院生達にも教えてもらったりしましたが、本気で自分はプログラマーのプの字も達成できてない雑魚だなと思ってます。

自己否定ばっかじゃん。それだから情報の人間はアスペと思った人もいると思うので改善策を。

勉強する。

これに尽きるでしょ。(多分)

僕の友達なんかだと多分ほとんどが勉強量がエグいって感じの人達。
一部、数学オリンピックでメダル取った人もいるけど彼は別。(一週間で抜かれた)

雑魚が勉強するとか言ってるのを見ると腹立つ人が多いのでツイートはしませんが勉強します。

これでも一応大学内では勉強してる人間に部類されるんだけど、悲しい事に大学内のレベルがほぼFランだから自分のレベルを絶対的に見れていない。

正直勉強すら極める事ができないこの自分、一体どんな理想論を掲げてプログラマー目指してるんだ感があるのですが(東大とか本当に強い。)申し訳ないが食らいついていきたい。

アルゴリズとデータ構造をそのうち学ぶんですけど、dpが最後って…。

こんなもんですかね。

個人的にはその後からが気になってた。正直dpまでは簡単な問題なら教養的なところがあるから皆んな知ってる気がするんですが(ここでの皆んなとは勉強してる人の事を言います)。

でも良いですね。

僕も結構分かってなかったりするので。理解したわーとか言ってる割に出来てないとかあるんで。

理解したわーって言ってる奴に質問して相手が理解できてない事が発覚した時って快感を感じる。(性格が悪い)

どんどん性格が悪い方向に行っている。

ダメですね。これじゃ。(治す気ゼロ)

久々

久々にゲームセンターでボルテやってきた。

KAC解禁ロード前半戦を終えた感じ。
次行った時はブラスターやって解禁ロード後半戦を終わらせたいと思ってる。

結果としてはかなり良かった。

一番苦労したのはかめりあのソフラン曲(名前忘れた)。
あれ多分10回近く落ちた。
癖着いたのが辛かった。

ぺのれりの曲は1回落ちただけだった。

個人的には変速曲がかなり苦手なのでぺのれり<かめりあって感じの難易度。

まぁ何にせよこれでブラスターさえやればillnessが解禁できると思うと嬉しい。
何故ならこれだけストレートに全曲解禁できるのが多分生まれて初めてだから。

まぁまぁ、ボルテはやり過ぎは駄目だけどたまにプログラミングの合間にちょこっとだけやりにいくと一番成果出るからこれからも地味に頑張っていきたい。

近いうちの目標は後光或帝滅斗です。