数学题
弱者
爱猫忍者
展开
-
hdu 2048 神、上帝以及老天爷
这个题让输出整得好惨。本题的思路是看第n个人的情况,若第n个人拿了他前面(n-1)个人的东西,而这个人正好拿了第n个人的东西,则这个事件发生必然为f(n-2),另一种情况两人的物品并没有互换,则剩下的人再继续进行这件事,f(n-1)。发生的总的可能性就是(n-1)*(f(n-1)+f(n-2)).注意要输出%要连着两个%才行。 #include #include using namespace原创 2013-04-01 09:19:17 · 1323 阅读 · 0 评论 -
hdu 2045 不容易系列之(3)—— LELE的RPG难题
这个题是找规律的,其实我们只需要看以一个格子图第一个颜色的所有事件数乘以3即可。这个事件怎么看呢,由于题目中要求最后一个格子的颜色和第一个格子的颜色不同,所以我们必然舍去了一些最后的1,那么这些1怎么求呢,具体看下面的程序。下面结构体中的a是当前最后一排的事件个数,yi就是少的1有多少个。 #include using namespace std; struct node{ _in原创 2013-04-01 10:45:10 · 988 阅读 · 0 评论 -
hdu 1209 Clock
这个题不难但是里面有很多东西需要注意,尤其是Ties are broken in such a way that an earlier time precedes a later time.这就是说当夹角一样时,事件小的放在前面。 比较麻烦啊。 #include #include #include #include using namespace std; struct node{ stri原创 2013-04-01 19:39:15 · 1149 阅读 · 0 评论 -
hdu 4503 植树节
这个题要反过来想,一共三个人情况很简单,要么全一样,要么全不一样,或者是其中两个人情况相同并且这两个人的关系一定是好朋友(谁能自己和自己是好朋友),另一个人单独出来。下面是代码,注意两个人是好朋友的情况是除以2. #include #include using namespace std; double fuck[1001]; int main() { int T,n,i; int sum,原创 2013-03-24 16:47:32 · 1017 阅读 · 0 评论 -
hdu 1576 A/B 扩展欧几里德算法
数论的题目,问的很明显。因为n=A%9973,所以A-A/9973*9973=n,(计算机的除法直接取整)。又因为A=k*B,并且B*x+9973*y=1,题目问的是(A/B)%9973也就是k%9973是多少,现在A-A/9973*9973=n,转化为B*k-9973*y=n,也就是把A/9973看成整体就好了。又有B*x+9973*y=1,这个x和y可以用扩展欧几里德直接求出,k=n*x,关键原创 2013-05-05 15:49:19 · 1494 阅读 · 0 评论 -
hdu 2515 Yanghee 的算术
这个题目是黑书上的一道题目。这个题目的意思就不说了。现在说解法。将这n个要求的数字按照从小到大顺序排列,依次为A1,A2,A3......同样的把这些个和也就是题目所给出来的(n-1)*n/2个数字按照从小到大的顺序进行排列K1,K2,K3......。我们很容易知道A1+A2=K1,并且A1+A3=K2所以只要A1知道了就能知道A2和A3的值是多少,我们假设A2+A3=Kx,这样能求解出A1,A原创 2013-07-08 09:21:56 · 1088 阅读 · 0 评论 -
哦,是约数定理
题目描述: 输入n个整数,依次输出每个数的约数的个数 输入: 输入的第一行为N,即数组的个数(N 接下来的1行包括N个整数,其中每个数的范围为(1 当N=0时输入结束。 输出: 可能有多组输入数据,对于每组输入数据, 输出N行,其中每一行对应上面的一个数的约数的个数。 样例输入: 5 1 3 4 6 12 样例输出: 1原创 2014-02-20 22:17:24 · 821 阅读 · 0 评论 -
两数之和等于x
算法导论第2.3-7的习题中要求给出一个运行时间为O(nlgn)的算法,这个算法的功能是能在给定一个由n个整数构成的集合S和另一个整数x时,判断出S中是否存在两个其和等于x的元素。 方法一:都知道在一个有序的序列中使用二分查找的时间复杂度是O(lgn)。首先排序,那么我们可以枚举集合S中的每一个元素,然后使用二分查找算法查找x-y(y是S中的一个元素),那么这个算法的时间复杂度是O(nlgn)。原创 2015-02-21 17:48:22 · 1143 阅读 · 0 评论