2010-12-25から1日間の記事一覧

SRM491 Div1 Easy(250) FoxMakingDice

FoxMakingDice6個の目を決めればサイコロは鏡写しの2通りなので、和がkとなる目の組み合わせがr通りあるならば、サイコロは2rC3通り。 #include <algorithm> using namespace std; class FoxMakingDice{public: long long theCount( int N, int K ) { long long ans = 0</algorithm>…

SRM491 Div2 Hard(1000) BottlesOnShelf

BottlesOnShelf 包除原理。複数のボールのどれかで壊れる瓶の本数を求めるのは難しいが、複数のボールのどれでも壊れる瓶はleftの最大値とrightの最小値の間でdamageの最小公倍数の倍数の瓶。 #include <vector> using namespace std; long long gcd(long long a,lon</vector>…

SRM491 Div2 Medium(500) FoxMakingDiceEasy

FoxMakingDiceEasy6個の目を決めればサイコロは鏡写しの2通りなので、和がkとなる目の組み合わせがr通りあるならば、サイコロは2rC3通り。 #include <algorithm> using namespace std; class FoxMakingDiceEasy{public: int theCount( int N, int K ) { int ans = 0; fo</algorithm>…

SRM491 Div2 Easy(250) OneDigitDifference

OneDigitDifference最上位桁を0にすれば良い。ただし、Nが0の場合は1にする。 class OneDigitDifference{public: int getSmallest( int N ) { if ( N == 0 ) return 1; for ( int i=1; ; i*=10 ) if ( N/i < 10 ) return N%i; }};