2010-12-25から1日間の記事一覧
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>…
BottlesOnShelf 包除原理。複数のボールのどれかで壊れる瓶の本数を求めるのは難しいが、複数のボールのどれでも壊れる瓶はleftの最大値とrightの最小値の間でdamageの最小公倍数の倍数の瓶。 #include <vector> using namespace std; long long gcd(long long a,lon</vector>…
FoxMakingDiceEasy6個の目を決めればサイコロは鏡写しの2通りなので、和がkとなる目の組み合わせがr通りあるならば、サイコロは2rC3通り。 #include <algorithm> using namespace std; class FoxMakingDiceEasy{public: int theCount( int N, int K ) { int ans = 0; fo</algorithm>…
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; }};