Particle

競技プログラミングについての雑記

AtCoder

AGC 017 E Placing Squares

E - Placing SquaresN を増やしたときの差分について観察するとうまく解けるようになる。 M = 0 の場合でも難しいので、まずは M = 0 の場合を考える。 右端の正方形が k*k で、それ以外の正方形の面積の積(=重み)が a であるような状況を考える。 右端に辺…

AGC 005 E Sugigma: The Showdown

問題: E - Sugigma: The Showdownまず、しぐま君 (追いかけられる方のプレイヤー) の必勝条件について考える。 すぎむ君 (追いかける方のプレイヤー) の木において、距離が 3 以上離れた頂点を行き来できるような頂点に先に到達し、直後のターンに負けないこ…

ARC #007

A ソース int main(){ char c; string s; cin>>c>>s; for(int i = 0; i < s.size(); i++){ if(s[i]!=c)cout<<s[i]; } cout<<endl; return 0; } B ソース int main(){ int n,m; cin>>n>>m; vector<int> d(n+1); for(int i = 0; i <= n; i++)d[i]=i; for(int i = 0; i < m; i++){ int a; cin>>a; for(int i = 0; i < n+1; i++){ if(…</int></s[i];>

ARC #006

A. バグらないように全探索しましたが、バグりました。 bool型の配列を使って、当選番号にO(1)でアクセスできるようにしたほうが良かったと思います。 int main(){ int a[6],b[6],c,ans=0,l=0; for(int i = 0; i < 6; i++)cin>>a[i]; cin>>c; for(int i = 0;…

ARC #005

A. 最後と最後以外で場合分けします。(最初の12文字一致で実装するのでも良さそうです。追記:ダメです) int main(){ int n,ans = 0; string s; cin>>n; for(int i = 0; i < n-1; i++){ cin>>s; if(s=="TAKAHASHIKUN"||s=="Takahashikun"||s=="takahashikun")…

ARC #004

A. 全点間で距離を求めて、それらの最大値を出力する。 ans を 0 で初期化するのを忘れていて2WAしました。 int n,x[100],y[100]; int main(){ double ans=0; cin>>n; for(int i = 0; i < n; i++)cin>>x[i]>>y[i]; for(int i = 0; i < n; i++){ for(int j = …

ARC #002

A. 念入りにテストしてたら、2分以上かかってしまいました。 int main(){ int n; cin>>n; if(!(n%400)){ cout<<"YES"<