摘要: 计算几何模板#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <vector>#include <set>#include <map>#include <cmath>#include <queue>using namespace std;template <class T> void checkmin(T &t,T x) {if(x < t) t 阅读全文
posted @ 2013-04-06 01:43 aiiYuu 阅读(148) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4081题目大意:在一个完全图中找一棵生成树,满足其中一条边的两个邻接点的点权之和除以该生成树的所有比安全和的比例最大,求该比例。设最终所要的比例为ratio,则初始是设ratio为一个小负数。首先计算出图的最小生成树,设最小生成树的总长度为ans;然后枚举所有的点对(i,j),如果边(i,j)在最小生成树中,则比较ratio和(cost[i]+cost[j])/(ans-G[i][j])的大小,否则,比较ratio和(cost[i]+cost[j])/(ans-path[i][j])的大小;其中path[i] 阅读全文
posted @ 2013-04-05 23:47 aiiYuu 阅读(151) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4472题目大意:找节点数为n的对称的树的个数。状态转移方程:f[i]=∑f[j]|j为所有小于i也能整除(i-1)的整数证明:因为根节点只有一个,所以必须保证它的所有的子树相同并且也是对称的树。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <vector>#include <set>#include <map> 阅读全文
posted @ 2013-04-05 21:18 aiiYuu 阅读(137) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1028题目大意:默认主页为“http://www.acm.org/”,输入为指令,输出为当前网站的网址。输入的指令有四种:(1)VISIT访问一个新的网站(2)BACK返回之前访问的网站(3)FORWARD前往后一个访问的网站(4)QUIT退出直接开个数组记录一下,模拟就行#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <vector>#include <se 阅读全文
posted @ 2013-04-05 13:21 aiiYuu 阅读(158) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1038题目大意:一个生产芯片的工厂要生产一种规格为2×3的芯片,方法是先生产一块规格为n×m的矩形硅片,由n×m个正方形方块组成,但是硅片上存在一些损坏的方块,显示为黑色,他们不能用来制作芯片。现在给出硅片上每个损坏方块的位置,求用该硅片最多能切割出多少块芯片。要知道能否在第k-2行至第k行这三行中切割出芯片及切割出多少芯片,需要知道这3行上每个方块的具体状态:是否损坏,是否已经被其他芯片使用,这两种情况都称为不可用。那么可以用一个三进制数来表征某一列第k-1行至第k行的状态:0表示两个方块都可用,1表示仅有第 阅读全文
posted @ 2013-04-05 08:20 aiiYuu 阅读(220) 评论(0) 推荐(0)
摘要: http://codeforces.com/contest/288/problem/C按二进制位从大到小进行匹配#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <vector>#include <set>#include <map>#include <cmath>#include <queue>using namespace std;template <class 阅读全文
posted @ 2013-04-05 07:07 aiiYuu 阅读(193) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1738题目大意:有n堆石子排在一行,每堆石子给定一个重量。要把n堆石子合并成一堆,每次合并智能将相邻的两堆石子合并成一堆,代价为这两堆石子的重量和,求最小的总代价。参考资料:http://wenku.baidu.com/view/84c326fb700abb68a982fbcc.htmlhttp://fanhq666.blog.163.com/blog/static/81943426201062865551410/http://hi.baidu.com/nyroro/item/4ad998fc1234cad242c36a86下面是Garsi 阅读全文
posted @ 2013-04-05 00:19 aiiYuu 阅读(1345) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=3071题目大意:一场足球淘汰赛有2^n个队伍,编号为1,2,...,2^n,按队伍编号进行比赛,每轮比赛的胜者再与对应比赛的胜者进行比赛,输掉一场比赛该队伍即被淘汰。现在给出每支队伍与其他所有队伍进行比赛胜利的概率,求最可能成为冠军的队伍编号。在一轮比赛中某支队伍获胜的概率等于该队伍在上一轮比赛中获胜的概率与战胜本轮对手概率的乘积。所以,可以以dp[i][j]表示第i支队伍在第j轮比赛中获胜的概率,则dp[i][j]=dp[i-1][j]*sum,sum=∑(dp[k][j-1]*m[i][k]),枚举出本轮所有的i可能的对手k,计算出k在 阅读全文
posted @ 2013-04-04 19:57 aiiYuu 阅读(183) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1463题目大意:有若干节点,节点之间有路相连,构成树形结构,如果在一个节点上放置一个士兵,与这个节点相连的路就可以被监视,现在要监视所有的路,问至少要多少士兵。最优解结构:dp[i][0],dp[i][1]分别表示不在i节点上和在i节点上放置士兵时整个以i节点为根的子树被覆盖用到的最少士兵数目。状态转移方程:对叶子节点,有dp[i][1]=1;dp[i][0]=0;对非叶子节点,有dp[i][1]=∑(dp[j][1],dp[j][0]);dp[i][0]=∑(dp[j][1])。(j为i的叶子节点)#include <cstdio& 阅读全文
posted @ 2013-04-04 18:23 aiiYuu 阅读(141) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=2533题目大意:给出一个数列,求最大不下降子序列的长度。最优解结构:dp[i]:以第i个元素为子序列最后一个元素的LIS的长度。状态转移方程:dp[1]=1;dp[i]=max{dp[j]|j<i&&m[j]<m[i]}+1;i>1时间复杂度为O(n*n);再次,可以用二分搜索将时间复杂度降到O(n㏒n)。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#inc 阅读全文
posted @ 2013-04-04 17:02 aiiYuu 阅读(216) 评论(0) 推荐(0)