搜索
文章平均质量分 77
Tri_integral
这个作者很懒,什么都没留下…
展开
-
UVAlive 5866 Robot Arm Planning 题解
题目题意:有n+1的结点的链,每条边(结点圆心距)100,每个结点半径为10,每次可以旋转45°,但是不能自交。求是否通过旋转某些结点使得最上面的结点完全包含在一个矩形内。题解:首先矩形每条边向内缩10,这样只要最上面的点的圆心在新矩形即可。然后枚举所有节点旋转的角度,加上判断是否自交和剪枝,不会超时的。因为时间紧,代码写的很丑,请轻拍……//Time:22ms/原创 2013-07-21 22:58:04 · 1027 阅读 · 0 评论 -
UVA 12582 Wedding of Sultan 解题报告
题目题意:给出一棵树的先序遍历,但是在离开该点时还会再输出一次。每个节点用一个大写字母表示,要求输出每个节点的度数。题解:因为一个点先后输出了两次,所以可以用一个栈记录当前的最后一个点。//Time:12ms//Length:764B#include #include #include #include using namespace std;#defin原创 2013-08-27 21:39:26 · 1265 阅读 · 0 评论 -
UVAlive 6151 Beehives 解题报告
题目题意:森林里有n棵树,一些树之间有道路。现在蜜蜂要选择不少于两棵的树建蜂巢,每棵一个,之后所有两边不都有蜂巢的道路会被清除。如果要使得剩下的道路去掉任意一条依旧两两可达,求最少的蜂巢数。题解:也就是在原图中找一个点数最少的双连通子图,显然就是个环。由于点比较少,可以直接枚举每个点做BFS。原本我是每次BFS一找到环就退出并更新,但是那样会WA,不知道为什么。原创 2013-08-17 22:47:12 · 1323 阅读 · 0 评论 -
UVAlive 6153 LCM Pair Sum 解题报告
题目题意:对于一个数n,有一些这样的一个数对(p,q),满足1题解:考虑底数pi,对应指数ai,若p的指数小于ai,则q的指数必等于ai;若p的指数等于ai,则q的指数无所谓。通过枚举p每个底数的指数,可知q有多少种取法(可能会导致p>q,没关系)。加起来就可以。但是直接枚举p的每一个取值会TLE。显然p的指数小于ai时q的方案数是相同的,所以可以一起算。到最后除了(n,n原创 2013-08-17 22:40:59 · 1053 阅读 · 0 评论 -
UVAlive 6160 Countdown 解题报告
题目题意:给出6个数,可以任意做四则运算,但是每个数和每个等式的结果只能用一次,任何时候运算结果都要求是正整数。问能否能得出指定的值,如果不能,要求得到最接近的值。要求输出解,不要所有数字都用上,也不要求输出的过程个个都有用。题解:每次枚举剩下的数和结果里选两个枚举运算方式,将结果放进去再dfs。做之前先把6个数排序,如果两次枚举的数和上次一样,就不用再做了。加上这个剪枝可以快原创 2013-08-17 22:55:11 · 1055 阅读 · 0 评论 -
HDU 4597 Play Game 解题报告
通化邀请赛题意:给两叠数量相同的牌,两人轮流取,只能从顶部或者底部取牌,每次只能取一张,每张牌上有分数,问先手最多能得几分。解法:记忆化搜。dp[a][b][c][d]表示当前的第一堆牌顶部为第a张,底部为第b张时,第二堆同理,先手最多能获得的分数。搜的时候枚举每次的四种取法,最大值即为所求。#include #include #include #include #in原创 2013-05-30 20:53:01 · 1781 阅读 · 0 评论 -
HDU 4665 Unshuffle
题目题意:一串数字,将其分为两个等长子序列,且同一个序列内元素顺序不变,要求两个子序列一致的一种可行方案。其中必定有解,且每个数字出现次数为2次或4次。题解:比赛时以为有什么贪心的方法,结果都被自己的生成的数据cha了,赛后用搜索1A,简单粗暴快……首先强制任何时候1序列的长度大于等于2序列长度。如果一个数字只出现两次,那肯定第一个分给序列1,第二个分给序列2.原创 2013-08-09 14:46:22 · 859 阅读 · 0 评论 -
HDU 4607 Park Visit 解题报告
题目题意:一棵树,问从任意点出发,访问k个点走过的最少的边数。题解:找一条树上最长链,当k大于链上的点数时,就要走一些链的节点的子树且走回链上,即子树的边走了两次。//Time:765ms//Memory:2644KB#include #include #include #include #include #define MAXN 200010using原创 2013-07-23 19:20:54 · 1105 阅读 · 0 评论 -
POJ 4045 Power Station 解题报告
题目题意:有一个树形电网,要在某个节点建一个发电站,传输损耗是 I^2*Ri,Ri是总的电阻, 跟到各点距离总和有关。I是常数。问最小的损耗,并输出最优的节点。解法:DFS两次统计每个点到其它点的距离总和即可。Time:125msMemory:5216KBLength:2039B#include #include #include #include原创 2013-05-19 12:58:28 · 926 阅读 · 0 评论 -
poj-openjudge 1043:Bomb! 解题报告
题目2013北大校赛总结题意:有很多个炸弹,爆炸半径相同,如果一个爆炸那么所以在爆炸半径内的炸弹也爆炸。现在要引爆第一个炸弹,使得某个特定的炸弹爆炸,问所需最小的爆炸半径。解法:二分爆炸半径,然后BFS是否能炸到要炸的。Time:120msMemory:2364kBLength:1270 B#include #include #include #原创 2013-05-18 00:24:32 · 1063 阅读 · 0 评论 -
UVALive 6044 Unique Path 解题报告
题目BUPT Spring Training 6 4.06题意:给你一个图,求有多少个点对,之间的路径有且只有一条(点可以重复访问边不可以)。解法:删掉所有的双连通子图,对剩下的每一个连通块,若有n个结点,则有n*(n-1)/2个点对//Time:185ms//Memory:0KB//Length:2039B#include #include #inclu原创 2013-06-10 22:39:34 · 933 阅读 · 0 评论 -
HDU 4608 I-number 解题报告
题目题意:对于给定的x,要找一个y,要求y>x,且y所有位加和为10的倍数,输出最小的y。题解:两种情况:1、个位数可以增大至满足要求的,输出。2、否则,将非个位的最低的小于9的那一位加1(如果全是9就多加一位),然后后面全为0,个位补足10的倍数。//TIme:234ms//Memory:780K#include #include #inc原创 2013-07-23 19:15:28 · 1053 阅读 · 0 评论 -
UVALive 5864 Register Allocation 解题报告
题意:给出平面上n个点的坐标,给出起点和终点,找出一条路径使得起点到重点的经过的最长边最短,并输出这个最短的值。解法:二分长度+bfs判断是否可以到达//112ms#include #include #include #include #include #include #include const int maxn = 1005;using namespace std;原创 2013-07-23 20:32:21 · 934 阅读 · 0 评论 -
HDU 4628 Pieces 解题报告
题目2013 暑假多校训练 3题意:一个字符串,每次可以删掉一个子序列,且这个子序列必须构成回文串,求全部删完的最少次数。题解:枚举要删除的子序列,剩下的继续删除,记下每个部分的最少删除次数。代码写得很挫……//Time:125ms//Memory:560KB#include #include #include #include #include原创 2013-07-30 19:33:10 · 948 阅读 · 0 评论 -
UVA 12587 Reduce the Maintenance Cost 解题报告
题目题意:一个有n个城市m条道路的图,如果一条边删除后,有些城市变得不可达,则它需要维护,花费为L×D,L是道路长度,D是变得不可达的城市对数。每条道路维护花费由连接的城市中的一个承担。城市本来也有固定的维护花费。求所有可能中,花费最大的城市的最小花费。题解:首先可以用tarjan求桥,如果(u,v)之间为桥,且u为父亲,则回溯时已遍历的点数-dfn[v]+1就得到和v在同一双连通原创 2013-08-27 22:02:32 · 1181 阅读 · 0 评论