Particle

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

2013-01-01から1年間の記事一覧

SRM 596

250 要素がすべて0であるような配列に対して、「配列の要素一つに対して1増やす操作」(操作1)と、「配列のすべての要素を2倍する」(操作2)という操作を繰り返して、与えられた配列にする。 必要な操作の回数の最小値を求めよ。 例えば、二進法で{10100}は、…

バグのまとめ

"自分が"起こしやすいバグを書きます。頻度の高いと思うものが上に来るようにしています。 少しずつ増えていくかもしれません。 不等号のミス minとmaxの間違い 浮動小数点関係(これはバグとは言わないかもしれない) 浮動小数点で、出力の桁数が足りない 実…

SRM 586

250 点(i,Y[i-1])と点(i+1,Y[i]) を i = 1..n としてつないだ曲線がある。 この曲線と、直線 y = a との交点の個数の最大値を求めよ。という問題です。y[i]が大きく、aを沢山調べるのは難しいので、Y[i]とその近くだけを調べれば良いです。 (整数点(Y[i])だ…

SRM 585

250 高さがhの二分木が与えられる。枝分かれのない辺の集合に分割するとき、その集合の個数の最小値(を定数で割ったもの)を求める。分かりやすく言うと、一筆書きを何回か行って、高さhの二分木をつくるのに必要な回数の最小値を求める。証明はできませんが…

SRM578

250 あるgooseから、マンハッタン距離がdist以下の鳥は必ずgooseになるので、距離がdist以下の鳥は全て同じ種類になります。UnionFindを使うとどのように別れるかが分かります。それぞれのグループで鳥の個数が偶数のものと奇数のもので分けて数えて、偶数の…

SRM 577

250 自分の部屋にいる人のレーティングの平均の期待値を求める問題です。与えられる文字列を連結する。部屋の数R = (n+20-1)/20 であり、(n-1)%R+1 人が最後に部屋分けされる。(このとき、1つの部屋に振り分けられる人数は20よりだいぶ小さくなることもある…

SRM 572

250 実験すると、oldpassword.size()-Kおきに同じになる必要があると分かるから、数える。 int minChange(string s, int K) { int n = s.size(); int p = n-K,ans = 0; if(p>=K){//elseの方だけで十分 for(int i = 0; i < K; i++){ if(s[i]!=s[i+p])ans++; }…

センター

自己採点 地理:70 国語:38+31+34+34=137 英語:188 リス:38 物理:100 化学:100 数IA:92 数IIB:98前期785(791)/900

目標(2013)

昨年のがアレだった(目標を達成する気があまり無かったのと、曖昧なものが混ざってた)ので、もう少しまともなのにします。 来年のことは分からないので、少なめにします。 合格体験記を書く tcで黄色以上になる PKU で300問解く