摘要: 题意:有N个字母,每个字母的数量不定。用这N个字母组成一个长为M的串,并且规定这个串中每个字母能出现的次数。求这样的串的总数。分析:之前处理好组合数c[][],然后d[i]表示字符串长度为i的时候用所给字符串构成的满足条件的情况数,递推式: d[s[i][k]+j] += d[j]*c[m-j][s[i][k]];#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;#define clr(x)memset(x,0,sizeof(x))const int ma 阅读全文
posted @ 2013-01-29 15:52 'wind 阅读(689) 评论(1) 推荐(0) 编辑
摘要: 题意:判断圆是否与矩形相交。分析:分别判断矩形的四条边是否与圆相交即可,即转化为判断线段与圆是否相交。#include <stdio.h>#include <string.h>#include <math.h>const double eps = 1e-8;double rx[4],ry[4];double cx,cy,r;double mul(double x1,double y1,double x2,double y2){ return x1*y2-x2*y1;}double dis(double x1,double y1,double x2,doubl 阅读全文
posted @ 2013-01-29 15:36 'wind 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 题意:DU ACM集训队的队员在暑假集训时经常要讨论自己在做题中遇到的问题.每当面临自己解决不了的问题时,他们就会围坐在一张圆形的桌子旁进行交流,经过大家的讨论后一般没有解决不了的问题,这也只有HDU ACM集训队特有的圆桌会议,有一天你也可以进来体会一下哦:),在一天在讨论的时候,Eddy想出了一个极为古怪的想法,如果他们在每一分钟内,一对相邻的两个ACM队员交换一下位子,那么要多少时间才能得到与原始状态相反的座位顺序呢?(即对于每个队员,原先在他左面的队员后来在他右面,原先在他右面的队员在他左面),这当然难不倒其他的聪明的其他队友们,马上就把这个古怪的问题给解决了,你知道是怎么解决的吗?分 阅读全文
posted @ 2013-01-29 12:31 'wind 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 题意:生日Party结束的那天晚上,剩下了一些糖果,Gandon想把所有的都统统拿走,Speakless于是说:“可以是可以,不过我们来玩24点,你不是已经拿到了一些糖果了吗?这样,如果谁赢一局,就拿走对方一颗糖,直到拿完对方所有的糖为止。”如果谁能算出来而对方算不出来,谁就赢,但是如果双方都能算出或者都不能,就算平局,不会有任何糖果的得失。Speakless是个喜欢提前想问题的人,既然他发起了这场糖果大战,就自然很想赢啦(不然可就要精光了-_-)。现在他需要你的帮忙,给你他每局赢的概率和Gardon每局赢的概率,请你给出他可能获得这场大战胜利的概率。分析:Markov过程(马尔科夫过程)。f 阅读全文
posted @ 2013-01-29 12:07 'wind 阅读(519) 评论(0) 推荐(0) 编辑
摘要: 题意:Give you three sequences of numbers A, B, C, then we give you a number X. Now you need to calculate if you can find the three numbers Ai, Bj, Ck, which satisfy the formula Ai+Bj+Ck = X.即给出一个A数组,B数组,C数组,和S个询问,每个询问给出一个X值,问是否存在符合条件的等式。分析:可以用hash存下a数组和b数组中所有元素的和,然后可以用hash或者二分的方法查找是否存在x-ck即可。View Code 阅读全文
posted @ 2013-01-29 10:42 'wind 阅读(691) 评论(0) 推荐(0) 编辑