- 博客(21)
- 资源 (3)
- 收藏
- 关注
原创 POJ 1085 Triangle War 极小极大值算法+α-β剪枝
<br />用极小极大值算法解决比较直观,但是效率太低,即使使用了α-β剪枝,效率仍然很低,勉强ACCEPT,<br />因为这种方法本质上是深度搜索,会有大量的重复计算,如果像DP那样将计算过的状态记录下来,则还有进一步优化的空间。<br /><br />/*Triangle War Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 1567 Accepted: 623 Description Triangle W
2011-02-28 18:15:00 1804
原创 POJ 3253 Fence Repair Huffman
<br />利用贪心算法中的Huffman解决。<br /><br /> <br />/*Fence Repair Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 10280 Accepted: 3279 Description Farmer John wants to repair a small length of the fence around the pasture. He measures the fe
2011-02-27 12:38:00 642
原创 POJ 1077 Eight A*算法 八数码问题
可以使用A*算法解决。启发函数f(n)=g(n)+h(n),h(n)=所有棋子到其目标位置的距离和*K,也就是曼哈顿距离*K。经过验证,k=1时会超出POJ的时限,k=4时最快,但K=4得到的结果其实不能最短路径,如下面例子:8 6 7 2 5 4 3 x 1K=1: ruuldlurddlurrulldrdruldlururddK=2: urulldrrdluulddruruldldrruldluurrddK=4:ruulddrulldruldrrululddruurddluruldlurrddluu
2011-02-26 19:16:00 1400
原创 POJ 2449 Remmarguts' Date A*算法
求第K短路径。在A*算法中,求最短路径时,当从优先级队列中取到目的节点时就结束了,为了求K短路径,则不结束,继续从优先级队列中取节点,直到第K次取到目的节点就是第K短路径。为了使用A*算法,首先要得到启发函数 f(n)=g(n)+h(n), 其中f(n) 是从初始点经由节点n到目标点的估价函数,g(n) 是在状态空间中从初始节点到n节点的实际代价,g(n)可以在A*算法过程中得到,h(n)是从n到目标节点最佳路径的估计代价,也就是目标节点到其他所有节点的距离,需要通过其他算法(如Dijkstra、Spfa)
2011-02-25 19:24:00 1205
原创 POJ 1061 青蛙的约会
<br />求解模线性方程:a*x = b(mod n)。参见《算法导论》P533.<br /> <br /><br /> <br />/*青蛙的约会 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 56557 Accepted: 8577 Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发
2011-02-20 15:46:00 779 2
原创 POJ 1011 Sticks
<br />搜索+剪枝。<br /><br />/*Sticks Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 78763 Accepted: 17360 Description George took sticks of the same length and cut them randomly until all parts became at most 50 units long. Now he wants
2011-02-19 22:10:00 744
原创 POJ 2050 Searching the Web
<br />hash.<br /><br /> <br /> <br /> <br /> /*Searching the Web Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 1670 Accepted: 367 Description The word "search engine" may not be strange to you. Generally speaking, a search engine s
2011-02-18 13:20:00 1033
原创 POJ 1013 Counterfeit Dollar
<br />逻辑问题。<br />如果为even,则确定为真币;否则为怀疑状态:Light or Heavy,<br />如果既被怀疑为Light又被怀疑为Heavy,则也确定为真币;<br />否则被怀疑次数最多的硬币为假币。<br /> <br /><br /> <br />/*Counterfeit Dollar Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 27895 Accepted: 8723 Descri
2011-02-16 17:38:00 571
原创 POJ 1338 Ugly Numbers 寻找丑数
寻找丑数 动态规划,比较简单,直接参见下面的代码。/*Ugly Numbers Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 13272 Accepted: 5856 Description Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence 1, 2, 3, 4, 5, 6, 8, 9, 10, 12,
2011-02-15 23:10:00 625
原创 POJ 1160 Post Office
<br />状态方程gaDistance[m][n] = min{gaDistance[m-1][t] + gaiSumDistance[t+1][n] }<br />gaiSumDistance[t][n]表示在t到n站间设立一个邮局所能达到的最小和;<br /> <br /><br /> <br />/*Post Office Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9956 Accepted: 5341 D
2011-02-14 18:17:00 708
原创 POJ 2411 Mondriaan's Dream
<br />用00表示2*1的长方形,11表示1*2的长方形,<br />则每一行的每一个状态对下一行的状态有要求,gastStateLimit[][i]表示某行第i种状态对下一行的各种要求。<br />最后一行没有“凸出”,也就是对“下一行”没有要求,因此也就是统计最后一行各个状态对下一行没有要求的总数。<br /><br />/*Mondriaan's Dream TiHeighte LiHeightit: 3000MS Memory LiHeightit: 65536K Total Submi
2011-02-12 14:49:00 492
原创 POJ 1185 炮兵阵地
<br />gaiStateDp[i][j][k] = max{gaiStateDp[i-1][k][p]+c[j]},(枚举p的每种状态) <br />gaiStateDp[i][j][k]表示第i行状态为aiState[j],第i-1行状态为aiState[k]的最大炮兵数,且aiState[j],aiState[k],aiState[p]及地形之间互不冲突.<br /> <br /><br />/*炮兵阵地 Time Limit: 2000MS Memory Limit: 65536K Tot
2011-02-10 23:22:00 653 1
原创 POJ 3254 Corn Fields
<br />记录状态的DP.<br />每一行的状态有2^12种可能(其中一部分状态是无效的),且与前一行的状态相关,<br />题目要求计算的可以理解为到达最后一行各个有效状态的次数之和。<br />输入1 for fertile, 0 for infertile,为了计算方便进行取反,0 for fertile, 1 for infertile。<br /><br /><br />/*Corn Fields Time Limit: 2000MS Memory Limit: 65536K Tota
2011-02-10 14:26:00 712
原创 POJ 2739 Sum of Consecutive Prime Numbers
<br />将一个数分解为连续素数的和。<br /><br />/*Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10186 Accepted: 5777 Description Some positive integers can be represented by a sum of one or more consecutive prime n
2011-02-08 00:49:00 468
原创 POJ 2262 Goldbach's Conjecture
<br />素数的判断。<br /><br />/*Goldbach's Conjecture Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 21888 Accepted: 8714 Description In 1742, Christian Goldbach, a German amateur mathematician, sent a letter to Leonhard Euler in which he
2011-02-08 00:42:00 454
原创 POJ 3006 Dirichlet's Theorem on Arithmetic Progressions
<br />素数的判断。<br /><br />/*Dirichlet's Theorem on Arithmetic Progressions Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9253 Accepted: 4617 Description If a and d are relatively prime positive integers, the arithmetic sequence begin
2011-02-08 00:34:00 364
原创 POJ 1083 Moving Tables
<br />要注意细节:如图,当room3占用时,room4是不能同时占用的。<br />比如,2--> 3 ,4-->5不能同时进行。<br /><br /> <br /><br />/*Moving Tables Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 15537 Accepted: 5067 Description The famous ACM (Advanced Computer Maker) Co
2011-02-08 00:28:00 435
原创 POJ 3176 Cow Bowling
<br />DP。<br /><br />/*Cow Bowling Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8030 Accepted: 5248 Description The cows don't use actual bowling balls when they go bowling. They each take a number (in the range 0..99), though, an
2011-02-08 00:17:00 510
原创 POJ 2255 Tree Recovery
<br />通过二叉树的前序和中序遍历结果,计算出后续遍历结果。<br />思路为拆分成左子树和右子树进行递归。<br /><br />可以恢复出二叉树后再后续遍历,也可以在重建过程中进行输出,这里为了代码供以后参考,重建了二叉树,并在过程中打印输出。<br /> <br /><br /> <br />/*Tree Recovery Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5033 Accepted: 3350
2011-02-08 00:08:00 715
原创 POJ 2159 Ancient Cipher
<br /><br /> <br />/*Ancient Cipher Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16407 Accepted: 5659 Description Ancient Roman empire had a strong government system with various departments, including a secret service department.
2011-02-01 22:17:00 1355
原创 POJ 1836 Alignment
<br />DP.思路:<br />1.求递增子序列的长度,递减子序列的长度;<br />2.然后找一个中间点,把两个序列连在一起,形成一个先递增后递减的子序列,也就是留下来的序列,<br />3.目标是要留下来的个数最大。<br />gaiAscendingHeight[I]表示从0~i的最长递增子序列的长度;<br />gaiDescendingHeight[I]表示从i~len-1的最长递减子序列的长度;<br /> <br /><br /> <br />/* Alignment Time Lim
2011-02-01 12:25:00 531
Sukodu 数独游戏软件及源代码
2011-03-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人