POJ
chenxiaoran666
人要有梦想,不然和咸鱼有什么区别!
展开
-
【POJ1080】Human Gene Functions(动态规划)
题面:【POJ1080】Human Gene Functions这道题目一看就能想到用DP来做。首先,先把题中的表格放在一个函数中:int s(char x,char y){ if(x=='A') { if(y=='A') return 5; if(y=='C') return -1; if(y=='G') return -2; if(y=='T') retur...原创 2018-04-07 13:52:16 · 400 阅读 · 0 评论 -
【POJ1159】Palindrome(动态规划)
题面:【POJ1159】Palindrome这道题是一道较水的DP题。我们可以用f[i][j]来表示把[i..j]这个区间变成一个回文串所需添加的最少字母数,这样我们就可以轻松地得到状态转移方程:当s[i]==s[j]时,f[i][j]=min{f[i+1][j-1],f[i+1][j]+1,f[i][j-1]+1};当s[i]!=s[j]时,f[i][j]=min{f[i+1][j]...原创 2018-04-07 15:04:27 · 768 阅读 · 0 评论 -
【POJ3122】Pie(二分)
题面:【POJ3122】Pie按理来说,这题应该是一道很水的二分题,可是精度问题却折磨了我很久很久,经过无数次的修改,我总算A了这一题。你可以二分最终每个人所能得到的Pie的大小,而验证函数check()其实也非常简单:bool check(double x)//验证函数{ int t=0;//记录当Pie的大小为x时所能得到的Pie的数量 for(int i=1;i<=...原创 2018-04-14 09:46:34 · 633 阅读 · 0 评论 -
【POJ3253】Fence Repair(合并果子的翻版)
题面:【POJ3253】Fence Repair考虑到每一次切割所花费的代价是所切割的木板的长度,那我们就可以反向思考,合并两块木板所花费的代价是这两块木板的长度和,那么问题就转化为了将输入中给出的N块木板给两两合并在一起。于是,我们会惊奇地发现这道题其实就是合并果子的翻版,一道用小根堆来优化的贪心题!当然了,手打堆是比较麻烦的,相比之下,C++自带的优先队列就好用多了。代码见下:#...原创 2018-04-14 13:50:56 · 234 阅读 · 0 评论 -
【POJ2251】Dungeon Master(三维BFS)
题面:【POJ2251】Dungeon Master这是一道很有意思的题目,平时我们所接触的BFS大多是二维的,可这题不一样,这题是一道三维BFS!!!这题不需要多讲,直接上代码就可以了:#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>#...原创 2018-04-14 14:39:53 · 254 阅读 · 0 评论 -
【POJ2531】Network Saboteur(一道无需优化的DFS)
题面:【POJ2531】Network Saboteur可以说,这道题是一道无需优化的DFS,由于N最大只有20,连O(2^n)的复杂度都能过,因此,只需要DFS枚举每一个节点分配到哪一个子集即可。因此就能得出代码:#include<cstdio>#include<algorithm>#include<iostream>#include<...原创 2018-04-21 12:57:12 · 1066 阅读 · 0 评论 -
【POJ3126】Prime Path(预处理+BFS)
题面:【POJ3126】Prime Path这道题目要在解决问题之前先预处理出一个四位数的质数表,由于范围很小,只需要枚举1000~9999并用O(√n)的质数判断函数进行验证即可,当然,用线性筛或除余法也是可以的(此题时间充裕,不建议用MR素数判断)。然后便是一个BFS,对于当前数字,只要枚举每一个它能变成的质数,判断是否已操作过,若未操作过则将其加入队列即可。代码如下:#in...原创 2018-04-21 13:15:01 · 313 阅读 · 0 评论 -
【POJ1988】Cube Stacking(并查集水题)
题面:【POJ1988】Cube Stacking题意:有n个编号分别为1~n的立方体以及两种操作,一种是move操作,一种是count操作。move操作就是让你把含x的一堆立方体移到含y的一堆立方体的上面,count操作就是让你求出编号为x的立方体底下有几个立方体。解析:一看到这道题,很容易就能想到用并查集来做,而这道题也的确是用并查集来做的O(∩_∩)O~首先,我们先来考虑...原创 2018-05-06 12:49:36 · 382 阅读 · 0 评论 -
【POJ2676】Sudoku(类似于八皇后问题的DFS)
题面:【POJ2676】Sudoku题意:给你若干个不完整的数独(空的地方用0表示),请你把它们补全(对于每个数独只需输出一种方案)。 解析:看见这题,我自然而然地想到了八皇后问题,而这题似乎比八皇后问题还要更为简单。我们可以用a[]数组来存储每一列出现过的数字,用b[]数组来存储每一行出现过的数字,用c[]数组来存储每一大格出现过的数字,这样就可以进行搜索了。代码如下...原创 2018-05-06 14:48:18 · 323 阅读 · 0 评论