SRM 491

500 :
问题描述:计数问题,满足下列条件的六面体骰子的数目。。
1:数字范围在[1,N]之间且两两不相同。
2:对面数字和相等且 >= k。
3:经过旋转相同的筛子被看作是等价的。
...
算法分析: 枚举,只要认识到(哪尼)," 任何3对数,只会产生两组本质不同的解 " 就可以了。
(room 里有人用DP?.. 是怎么DP的呢?)

1000 :
问题描述:给定一个长度为 N 的数轴,输入 M 个三元组 (l, r, d) ,破坏所有 [l, r] 中,被 d 整除的位置?问一共被破坏了多少个位置。
算法分析:介于 M 值较小,可以用容斥原理做。(线段树可以马?)

#include 
using namespace std;

int Cn3(int n){
	if (n < 3) return 0;
	return n * (n-1) * (n-2) / 6;
}


class FoxMakingDiceEasy{
public:
		int theCount(int n, int k){			
			int res = 0, MAX = n * 2 - 5;
			// i: 为了计算,枚举正反两面的数字和 - 1 的值。                      
			for (int i=k-1;i
#include 
#include 
using namespace std ;

class BottlesOnShelf
{
	public :
		long long  gcd( long long a , long long b ) { if ( b == 0 ) return a ; return gcd(b , a%b) ; }
		long long  lcm( long long a , long long b ) { long long c = gcd(a , b) ; return a * b / c ; }
		
		int getNumBroken(int N, vector  L, vector  R, vector  D)
		{
			int M = L.size() , p , ll , rr , ans ;
			long long w , c ;

			ans = 0 ;
			for ( int i = 1 ; i < (1 << M) ; i ++ )
			{
				p = 0 ;
				for ( int j = 0 ; j < M ; j ++ ) if ( ( i >> j ) & 1 ) p ++ ;
				
				ll = 1 ; rr = N ; w = -1 ;
				for ( int j = 0 ; j < M ; j ++ ) if ( ( i >> j ) & 1 )
				{
					if ( L[j] > ll ) ll = L[j] ;
					if ( R[j] < rr ) rr = R[j] ;
					if ( w == -1 ) w = D[j] ; else w = lcm(w , (long long)D[j]) ;
				}
				
				c = (long long)(rr / w) - (long long)((ll-1) / w) ;
				if ( p % 2 == 1 ) ans += c ; else ans -= c ;
			}
			return ans ;
		}
} ;

。。《月亮与六便士》...

... 一个英国证券交易所的经纪人,本已有牢靠的职业和地位、美满的家庭,但却迷恋上绘画,像“被魔鬼附了体”,突然弃家出走,到巴黎去追求绘画的理想。他的行径没有人能够理解。他在异国不仅肉体受着贫穷和饥饿煎熬,而且为了寻找表现手法,精神亦在忍受痛苦折磨。经过一番离奇的遭遇后,主人公最后离开文明世界,远遁到与世隔绝的塔希提岛上。他终于找到灵魂的宁静和适合自己艺术气质的氛围。他同一个土著女子同居,创作出一幅又一幅使后世震惊的杰作。在他染上麻风病双目失明之前,曾在自己住房四壁画了一幅表现伊甸园的伟大作品。但在逝世之前,他却命令土著女子在他死后把这幅画作付之一炬。 ...

通过这样一个一心追求艺术、不通人性世故的怪才,毛姆探索了艺术的产生与本质、个性与天才的关系、艺术家与社会的矛盾等等引人深思的问题。同时这本书也引发了人们对摆脱世俗束缚逃离世俗社会寻找心灵家园这一话题的思考,而关于南太平洋小岛的自然民风的描写也引人向往。


...

ゆっくり読んでください ...