UVa 1597 - Searching the Web(模拟)
模拟网页搜索,直接遍历查找会超时,需要使用映射或指针一类的简化查找。
直接用STL写的,原本准备超时之后再用指针重写,没想到2.595s过了,就懒得改了。
1 |
|
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
模拟网页搜索,直接遍历查找会超时,需要使用映射或指针一类的简化查找。
直接用STL写的,原本准备超时之后再用指针重写,没想到2.595s过了,就懒得改了。
1 | #include<iostream> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
给出田忌和齐威王的马的属性,求田忌最多能赢多少钱。
类似于故事里的方法,排序后田忌最差的马若跑不过齐王最差的马,就和最好的马跑。最好的马优先与能比过的最好的马跑。
1 | #include<iostream> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
给出一个图两种表示形式中的一种,输出另一种表示形式。
类似于书上四分树那道例题,递归求解。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
模拟Petri网变迁,读懂题之后其实不难。
建一个petri结构体,ip、op是参与变迁的place的编号。用数组记录每个参与变迁的place的tokens改变量。剩下的就好办了,题目说明了只会有唯一 解,所以只需要循环执行可以进行的变迁就好了。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
分配PGA奖金的问题,题目不难,但是细节比较坑。
要注意数据的读入,排名带T的条件,奖金精度的控制等很多细节。
1 | #include<algorithm> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
给出n个点,求有多少组边(a,b)满足|a − b| ≡ 1 mod n。
设P[n]为边的个数,P[3]=4,P[4]=7。此后每项都是前两项的和。因为到10000项数很大,所以要用大整数,Java大整数比C++方便就用了。
原公式:
** P[2n]=1+2n/1!+2n(2n-3)/2!+……+2n(n-1)!/n! **
1 | import java.math.*; |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
给出一个偶数n(2≤n≤100000)。表示一共有2n个汉堡,其中牛肉汉堡和奶酪汉堡各有n个。有2n个人每个人吃之前投硬币,正面吃牛肉汉堡,反面吃奶酪汉堡。 问最后两个人吃到相同汉堡的概率。
设P[n]为有2n个汉堡时最后两个人吃到不同汉堡的概率。
有:
** P[n]=1/(2(2n-2))C(2n-2,n-1)
直接计算会超时,于是要求递推公式:
P[n+1]/P[n]=(C(2n,n)/(2^n))((2(2n-2))/C(2n-2,n-1))=(2n-1)/(2n) **
把P[1]初始化为1之后用公式计算所有值保存,查找输出。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
有a头牛,b辆车,a+b个门,开始任选一个,然后排除掉c个有牛的门,求换门之后获得车的概率。书上解释很详细了。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
给出一个长度为n的01串表示子弹序列,打一枪空的,求下一枪的策略。
书上给出了思路,统计串中00和0的个数a和b,然后求概率a/b和b/n的大小。前者大是SHOOT,后者大是ROTATE。
1 | #include<iostream> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
给出一个数n,求n个结点的树有多少种结构满足每个结点的子结点数相同。
n结点树,除去根结点,有n-1个结点,根结点的每棵子树需要完全相同,所以根结点的子树个数k,满足(n-1)%k==0。然后就可以递推打表了。
1 | #include<iostream> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **