アゴドリルの備忘録

小さいことを少しずつ

ICPC国内予選2017敗戦記

チーム:kurodoriru5で参加しました


結果

結果はA,B,Cの3問を解いて113位でした

f:id:agodoriru:20170715204043p:plain

チーム練習、模擬国内同様A,B,C,Dの4完したいという目標で進めていきました
相変わらずのペアプロ方式で進めていきました

本番

Aはソートしてやればいいとc氏に言われ言われるがまま実装
A,AC

Bをj氏と考える
文字列扱う系の問題でj氏が得意な問題だと勝手に思ってた
""の中だけを考えてる問題だと二人とも誤読したりしていた
実装方針が大きく変わってc氏にPCを渡す

Cはc氏がいつの間にACを出していた
問題も見ていない

Bを再びPCでコーディングしていくj氏
できたと思ってサンプル通すとすべてあってた
これは来たと提出
WAが返ってきた
あれー、ということで二人で悩んでいたが最後に何かしらの文字がある時のことを考えてなかったっぽい(詳しくは覚えてない)
サンプル見るとその時のパターンがなくてやられましたねということを話していた
j氏がさくっと直して問題なさそうだったので提出
B,AC

終了まで確か45分くらい
Dを解こうとc氏奮闘、
xorを使う、DPを使うっぽいって確か言ってたなあ

残念ながらDのACを獲得することはできず、短い3時間がおわってしまいました

ABCの3完で113位
学内で4位、RICORAサークル内では2位という結果になりました

感想

楽しかったけど、悔しいです。悔しいけど2ヶ月くらい前から1週間に1回、チームで集まってAOJ-ICPCの過去問を解くなどできる限りでやれることをやってきました。それで進出できなかったので悔しいけど、やりきった達成感もあります。
そして、このチームメンバーと一緒にICPCに出られたことが嬉しいです。このチームは2年生2人、3年生1人のチームなのでみんな来年も出ようとすれば出れるので、もしできるのであればこのチームで来年も出てリベンジを果たしたいなあと1人で勝手に思っています。
サークル内で1位のチームも3完ということで弊サークルからのアジア予選進出のチームは残念ながらいませんでした。

去年のICPC終わってからモチベーションの低下と大学のレポート三昧で全然競プロする時間がなかったと思うので今年はこの悔しさを糧にして頑張りたいと思います。
実装力をつけて来年こそはアジア進出するぞ!

最後に

アジア予選進出した方はアジア地区予選でも頑張ってください!
監督を引き受けていただいたS先生、ありがとうございました。

ICPC 模擬国内予選2017 参加記

チームkurodoriru5で出ました

j氏(RICORAの長)、c氏(葛飾のプロ)、a(私)の3人です

 

 

 

毎週土曜のチーム練習で1人1問担当ではなく、ペアプロ方式で解くことになってたのでいつも通りその感じで解いていきました。C,Dは3人で解いてました

14:00(開始予定時刻)

あれ、つながらない

Twitter情報 「15分遅延」

3人「まじかー」 

 

14:15

Twitter情報「遅延」

3人「まじか、運営がんばれ」

 

 

15:00開始(0分経過)

3人「お、問題出てる」

 

a「A解きます」

c「見てます」

j「B見てます」

 

15:20(20分経過)

c氏にアドバイスもらいながらA実装完了

(言われた通りに実装してた)

a&c「Aできたね」

j氏に提出方法を教えてもらう

 

15:25(25分経過)A.AC

3人「おー」

j「B書きます」

a「見てます」

 

15:50(50分経過)B.AC

3人「おー」

c「j氏実装お願いします」

j「指示お願いします」

a「後ろから見てます」

 

16:30(90分経過)

?「できたけどサンプル合わない」

3人でバグ探す

?「ソートの位置、違うんじゃない?」

「あー、ほんとだ」

直して提出

2WA

?「あれ、何でだ?」

c「ここ違くないですか」(どこかにバグがあった)

j&a「ほんとだ」

直して提出 

16:50

C提出

1ケース目AC

2ケース目、通す前に障害発生

Dにいく

 

17:15(135分経過)

c「D問題二分探索?」

j,a「頼んだ」

 

17:30(150分経過)C.AC

システム直ったらしい

C,AC

 

17:55(175分経過)

3人「D問題うまくいかないね、、、」

 

18:00(180経過)

twitter開いて30分延長を知る

Dを解く

 

18:20(200分経過)

c「D実装終わった」

j「Dサンプル通った」

コマンドミス、、、不穏な空気が漂う

3人「あれ、やばい」

 

18:30(210分経過)コンテスト終了

3人「お疲れ様です」

 

 結果

f:id:agodoriru:20170703002038p:plain

 

A,B,C3完

93位

 

よかった点

  • 何回かチーム練をしていて、A,Bを今までになく早く解けた(気がする)
  • Cのバグを3人で協力して(割と早く)見つけられた

ミスった点

  • 入出力コマンドミスでトラブル。D問題を提出できなかった→ファイル名を間違えないように決める
  • CでWAを出してしまった

私個人

  • Dを解くときまで頭が回らずj氏、c氏の2人に任せきりになってしまって、非常に申し訳なかった→3時間考えきる脳力が必要
  • ちょいちょい後ろからミスを指摘できてよかった

 

まとめ

チーム戦、楽しかった

コンテスト中も笑いありで非常によかった

トラブルがあったけど運営の人たち、お疲れ様でした

本番も頑張る

 

Sublime Text 3のテーマ・カラースキームを変えた

こんにちは。
Sublime Text 3のカラースキーム・テーマを変えたので変更の方法をまとめたいと思います。

f:id:agodoriru:20170609193807p:plain
(現在のテーマ:Cobalt2)

デフォルトで入っているカラースキームを使う方法

sublimeにはデフォルトでもカラースキームが豊富に用意されています。
これらを使うには[Preferences]→[Color Scheme]→[Color Scheme - Default] としていくとデフォルトで入っているカラースキームを選ぶことができます。

f:id:agodoriru:20170609152412j:plain

f:id:agodoriru:20170609152408j:plain





デフォルトで入っていないカラースキーム・テーマを使う方法

デフォルトで入っていないカラースキーム・テーマを使いたい場合にはインストール作業と設定作業が必要です。

インストール方法

まず、[Ctrl]+[Shift]+[p]を同時に押すとコマンドパレットが出てきます。
コマンドパレットに "install package" と打つと下に "Package Control:Install Package" と出てくるのでそこをクリックします。

f:id:agodoriru:20170609162556p:plain

そこに"Theme +自分の使いたいテーマ名"を打ちます。

f:id:agodoriru:20170609162553p:plain

インストールしたいテーマをクリックして左下に"successfully installed"と表示されるとインストール終了です。
次に設定方法です。

設定方法

[Prefereces]→[Settings]をクリックして、 "Preferences.sublime-setting-User" と名前のついたファイルに下のようにカラースキームとテーマを付け加えます。

"color_scheme":"hogehoge",
"theme":"hogehoge"

f:id:agodoriru:20170609164921j:plain
(画像はデフォルト時)


これを保存して再起動するとカラースキーム・テーマが変更されます。

このようにしてsublimeのカラースキーム・テーマを変更することができます。

個人的なおすすめ

Cobalt2(←これに変えました!!!)

青基調の爽やか系。良さみが深い。

設定

"color_scheme":"Packages/Theme - Cobalt2/cobalt2.tmTheme",
"theme":"Cobalt2.sublime-theme"


f:id:agodoriru:20170609193807p:plain

Tech49

ダーク系でかっこいい。

設定

"color_scheme":"Packages/Theme - Tech49/Tech49.tmTheme",
"theme":"Tech49.sublime-theme"


f:id:agodoriru:20170609194240p:plain

material -Darker

ダーク系だけど、Tech49に比べて落ち着いた色合いでよいです。

設定

"color_scheme":"Packages/Material Theme/schemes/Material-Theme-Darker.tmTheme",
"theme":"Material-Theme-Darker.sublime-theme"


f:id:agodoriru:20170609194440p:plain



こんな感じでテーマを変えてsublimeをカスタマイズしてみてください!
P.S.早くライセンス買わねば

参考・参照した記事
Sublime Text のテーマやカラースキームを変更する方法 - 情報系大学院生のWebメモ
コードがはっきりと見やすくて、使いやすい Sublime Text 3 のテーマのまとめ | コリス

ABC031B 運動管理

レポートが進まないのと、Virtual Contestでやったので書きます

解法


与えられたA_iがL,Hの大小と比較して場合分け

①A_i < Lの時、L-A_iを出力
②L ≦ A_i ≦ Hの時、0を出力
③h < A_iの時、-1を出力

コード

#include <iostream>

using namespace std;

int main(){
	int l,h,n;

	cin>>l>>h>>n;
	
	for(int i=0;i<n;i++){
		int tmp;
		cin>>tmp;

		if(tmp<l){
			cout<<l-tmp<<endl;
		}else if((l<=tmp)&&(tmp<=h)){
			cout<<0<<endl;
		}else{
			cout<<-1<<endl;
		}
	}

	return 0;
}

ABC052B Increment Decrement

Virtual Contestやったので書く

方針

問題にもある通り、sのi番目がIかDかを見て、xの値を変えていく
この際、最大値を保持する変数を1個用意してそこに最大値を保持する
(以下のコードの場合、ans)
xの値とansの値を比較してxのほうが大きい場合はansにxを代入することで最大値をとることができる

コード

#include <iostream>
#include <string>

using namespace std;

int main(){
    int n,x=0;
    string s;

    int ans=0;//最大値を保持する変数

    cin>>n>>s;

    for(int i=0;i<n;i++){
        if(s[i]=='I')x++;
        else if(s[i]=='D')x--;

        if(x>ans){//xの値が現在の最大値より大きいとき、最大値を更新する
            ans=x;
        }
    }
    cout<<ans<<endl;
    return 0;
}

ABC003B AtCoderトランプ

方針

S・Tのi番目を比較していく

  • 同じ場合→何もしない
  • 片方が@のとき、他方がa,t,c,o,d,e,rのいづれか→何もしない
  • それ以外→条件に適していない→ループを抜ける

コード

#include <iostream>
#include <string>
 
using namespace std;
 
int main(){
    bool flag=true;
 
    string s,t;
    cin>>s>>t;
 
    for(int i=0;i<s.size();i++){
        if(s[i]==t[i]){
                continue;
        }else if(s[i]=='@'){
                if(t[i]=='a'||t[i]=='t'||t[i]=='c'||t[i]=='o'||t[i]=='d'||t[i]=='e'||t[i]=='r'){
                    continue;
                }else{
                    flag=false;
                    break;
                }
        }else if(t[i]=='@'){
            if(s[i]=='a'||s[i]=='t'||s[i]=='c'||s[i]=='o'||s[i]=='d'||s[i]=='e'||s[i]=='r'){
                continue;
            }else{
                flag=false;
                break;
            }
        }else{
            flag=false;
            break;
        }
        
    }
 
    if(flag){
        cout<<"You can win"<<endl;
    }else{
        cout<<"You will lose"<<endl;
    }
}

ABC002B 罠

方針

母音を除いて出力する

注意

最後に改行を忘れないようにする

コード


#include <iostream>
#include <string>
 
using namespace std;
 
int main(){
    string s;
    cin>>s;
 
    for(int i=0;i<s.size();i++){
        if(s[i]=='a'||s[i]=='i'||s[i]=='u'||s[i]=='e'||s[i]=='o')continue;
        else cout<<s[i];
    }
    cout<<endl;
    
    return 0;
}