摘要: 概率题题意:输入case数,每组case两个数字,表示A的点数和B的点数,他们玩游戏,每个人赢的概率都是0.5。输的人要将自己的一部分点数给对方,给的点数是min(na,nb)。例如na=3,nb=2如果A赢了,B要给2点给A,即全部给完。如果B赢了,A要给2点给B,A变为1,B变为4。一个人的点数为0,那么游戏结束了。题目要你输出两个数学期望,第一个是,这个游戏要结束,要玩多少局的数学期望,另一个是A赢的概率这题一开始看觉得是期望DP,后来想想也可以不写DP,能把状态表达出来即可。设一个状态(n,m,c)表示A现在的点数是n,B的点数是m,已经玩了c局。那么游戏结束的状态就是(n,0,c)或 阅读全文
posted @ 2013-04-25 22:59 Titanium 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 继续复习暴力给出n个点的坐标,选出最多的点,在一条直线上直接暴力,不过时间比较糟糕。一个二重循环,枚举i,j两个点,这两点确定一条直线,然后枚举剩下的点看是否在这条直线上,所以一个三重循环,时间复杂度O(n^3)注意枚举不要做重复的工作,否则会超时另外这题是有O(n^2logn)的算法的#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;#define N 710#define LEN 110int n;struct 阅读全文
posted @ 2013-04-25 19:40 Titanium 阅读(586) 评论(0) 推荐(0) 编辑
摘要: 继续复习暴力题意:输入有点恶心,首先是case数,然后一个空行,然后再输入信息,然后又以一个空行结束该组数据,如果是最后一组数据了,不以空行结束,而是直接以EOF结束。输出,case之间有一个空行,最后一个case后面不要加空行每组case的信息,就是N行的串,串中只有01,串的个数一定是偶数。原本有很多个一样的长串,每个长串都分成了两个短串但是分割的位置不一定相同即两个短串不一定是平分的(就是输入中的那些串)。你要把这偶数个短串拼回那个长串(即2N个短串拼回N个相同的长串),如果有多种可能,任意一种即可,然后输出这个长串题目保证一定有有解的数据不大,144,直接暴力。首先按短串的长度升序排序 阅读全文
posted @ 2013-04-25 15:21 Titanium 阅读(962) 评论(0) 推荐(0) 编辑