chigichan24のお気持ち表明

おきもちを表明している

AOJ Volume0 全埋め完了

chigichanです.



AOJを始めてはや4年が経とうとしていました.





ついにVolume0の問題すべてでACすることができました(*´艸`*)

f:id:chigichan24:20150401234057p:plain



最後まで残ってたのは
0091のBlurでした.


この問題はゴリ押し全探索したら通ったのですが...



AOJを始めた頃が本当についこの間のように感じてしまいます.
しかし,自分が高専4年になるという事実が,
自分の思っている以上に時は進んでいるのだなあと思わせてくれます.


今年度は,競技系コンテスト(特にオンサイト)にたくさん出られるように頑張ります.



具体的に大会名を挙げると,高専プロコン競技部門,ICPC,CodeFestivalです.




それに加えて,受験も迫ってきているので勉強もぼちぼち....






それでは~

JOI2015本選オンラインに参加した

こんばんは.chigichanです.
テストシーズンはしなきゃいけないことが全くはかどらないですね.


ということで,後輩たちが参加していたJOI本選のオンラインに参加しました.



といっても気づいたのが,

の15分くらい前で,1問目をささっと読み始めました.



読んだ感じだと,今までの本選1問目の傾向と少し違うかなという感想でした.

普段は,強実装 or 数学 という印象でしたが,累積和だったので多少驚きました.


という感じで15分くらいで書いて,提出~(^_-)-☆



ん?





ん?






5分くらい待ちました.


50/100 WA


え?

しかし,TLEではないのでなんでやねんという感じに...




10分後くらいに気づいた.

ansの値はintを超えると....




訂正して提出~(^_-)-☆




f5押しまくって待機してたら....




503



504






(;_;



鯖落ちかよ....





そして,





時は過ぎ,











終了45分前くらい...





その後2,3は問題を読んで,

2はメモ化再帰で書くと楽そう.
3はdijkstraがんばれ♥がんばれ♥って感じという感想.







結果:1完






JOIは良問多くて良いですね~
後輩は一人春の可能性があるので彼が通ってるといいな~






コード

#include <bits/stdc++.h>
using namespace std;
const int dx[]={0,1,0,-1,1,-1,-1,1};
const int dy[]={-1,0,1,0,1,1,-1,-1};
const int INF = 1<<30;
const double EPS = 1e-15;
#define PB push_back
#define mk make_pair
#define fi first
#define se second
#define ll long long
#define reps(i,j,k) for(int i = (j); i < (k); i++)
#define rep(i,j) reps(i,0,j)
#define MOD 1000000007
typedef pair<ll,ll> Pii;
typedef pair<Pii,Pii> P;
typedef vector<int> vi;
typedef vector<vi> vvi;
vector < Pii > data;
ll D[100001];
ll IC[100001];
Pii cost[100001];
vector < Pii > imos;
int main(){
    int N,M;
    scanf("%d%d",&N,&M);
    rep(i,M){
        scanf("%lld",&D[i]);
        D[i]--;
    }
    rep(i,N-1){
        ll a,b,c;
        scanf("%lld%lld%lld",&a,&b,&c);
        cost[i] = Pii(a,b);
        IC[i] = c;
    }
    rep(i,M-1){
        ll a = min(D[i],D[i+1]);
        ll b = max(D[i],D[i+1]);
        imos.PB(Pii(a,1));
        imos.PB(Pii(b,-1));
    }
    sort(imos.begin(),imos.end());
    ll prev = -1;
    ll sum = 0;
    ll ans = 0;
    rep(i,imos.size()){
        if(prev != imos[i].fi){
            if(prev == -1){
                prev = imos[i].fi;
            }
            else{
                ll index = prev;
                while(index < imos[i].fi){
                    ans += min(cost[index].fi*sum,cost[index].se*sum+IC[index]);
                    index++;
                }
                prev = imos[i].fi;
            }
        }
        sum += imos[i].se;
    }

    printf("%lld\n",ans);
    return 0;
}



相変わらずコードが汚い...


テスト勉強しなきゃ....

競技趣味グラミングと作問のすすめ

この記事はICT Advent Calendar 2014の21日目の記事として書いています.


はじめまして!からお久しぶりです!という人まで,こんにちはchigichanです.


軽く自己紹介をすると,
Kurume-NCT3年で今年はJOI夏季セミナー,高専プロコン自由部門に参加していました.
性別は間違えられることが多いです(Twitterのbioを見るとわかるぞ).

それと


こんな感じでなっ様を崇拝しています.



ということで,今年は記事の題の通り,


"競技趣味グラミングと作問のすすめ"


という内容で記事を書こうかと思います.
かなり,私の独断と偏見で書いているさらにはネタとしての
部分がかなり多いのでそこら辺は各自で判断してください.


1.競技趣味グラミングとは

私が勝手に作った言葉です.
意味としては,競技プログラミングを趣味として楽しくやる人のことです.
なぜこんな言葉をわざわざ用いる必要があるかと言うと,


こういう風に唐突にプロと言う風潮がなぜかJOI界隈から生まれているわけです.
そしてさらに,それの返答としては


"趣味"


という言葉が使われることが知られています.

しかし,このプロに対する趣味という言葉には謙遜の意味合いしかないと私は思います.
つまり,この掛け合いをしている時点で競技プログラミング能力が非常に長けているんだと私は解釈しています.

また,初心者などと超上級者が発言していたりして本当に初心者である私がつらい><となることもしばしばあります.


そんな 怖い>< 競技プログラミング界隈に興味はあっても近づけない.
という私のような人間が少なくとも一定数いると思います.

そこで,自分はただ趣味として競技プログラミングをしているだけなのでと言い張るときにこの


"競技趣味グラミング"


という言葉が使えるのではないかと思います.
趣味じゃなくてガチでやりたいと思えば趣味のところをプロにするだけであら不思議


"競技プログラミング"


になってまさに趣味からプロになるじゃないですか!!!

ということでみなさん.唐突に"プロ"と言われたら"趣味"と答えては負けです.
"趣味グラミング"をやっているだけと主張しましょう.


f:id:chigichan24:20141221003125p:plain

2.私と競技趣味グラミング

私は競技ができるできないに関係なくとても好きです.よく,

問題を考えてもわからない.
上位陣との差が激しすぎてつらい


などの意見を耳にすることがありますが,私は全然そう思ったことはありません.
出来なくても,おもしろいし自分のペースでやっていけばいいと思っています.


本当に趣味であることは私の様々なrating*1*2やsolve数*3が物語っています.


だからこそ言いたい,出来なくても興味があるならばやらなきゃ損であると.


確かに,いきなり才能が開花して息をするように問題をとければそれはそれはうれしいでしょう.
けれども,私みたいにできない人(私はかなりできない部類の人間だが)はゆっくり考えればいいんです.
本当の意味の趣味としてやっていけばいいんです.
レートが落ちたら次に取り戻せばいいんです.


と思います.大事なのは好きでい続けることかなぁと.


そりゃあもちろんある大会に出ると決めたならそれに向かって頑張る必要はあるしそこでの結果は大事です.
ただ,そこでの結果が散々だったからといって学ぶことをやめるのはどうなのかなと.


3.作問のすすめ

私は3年生になって作問をする機会がかなり増えました.理由としては,

・部にジャッジシステムが導入されそこでコンテストが開けること.
・そのコンテストシステムで自分のコンテストを1.5ヶ月に1回ほどのペースで行っていること.
・後輩のJOI対策のため.

などだと思います.


たいした問題は作れません.けれども面白いです.
いろんなコンテストがありますが,AtcoderやKCSの問題文ってとても面白いですよね.
そういうのをまねながら部員に楽しく解いてもらおうと頑張ってます.


さらに,自分の苦手なアルゴリズムや,知らなかったアルゴリズムなどを勉強する機会
にもなっていいことだらけです!!

ぜひみなさんも,作問してみましょう!!!



f:id:chigichan24:20141221003518p:plain


部のジャッジシステムに投稿した問題の一部

まとめ

だらだらといろんなことを書いてきましたが,結局は


競技プログラミングは楽しいO(≧∇≦)O


ということをいいたかっただけです.


そして,競技プログラミングを通してたくさんの人とかかわりたいなと思います.
来年度の高専プロコンやその他多くのコンテストで皆さんと会えるように精進しますので,
どこかで会う機会があったらぜひ声をかけてください.


とっても長文になってしまってごめんなさい:P


ちなみに,今日のアドベントカレンダーは私のほかに,期待の大型新人 @wing3196 君と沖縄の @Greeeenapple さんです.
ぜひそちらもご覧になってはいかがでしょうか?


明日は,沖縄の @rin_neko19 さんです.



それでは,よいクリスマスと冬休みを~