基本算法
文章平均质量分 67
saucyJack
外科
展开
-
POJ 1068(模拟)
题目链接:http://poj.org/problem?id=1068题意:一个括号表达式可以按照如下的规则表示,就是每个右括号之前的左括号数。比如(((()()()))),每个右括号之前的左括号数序列为P=4 5 6 6 6 6,而每个右括号所在的括号内包含的括号数为W=1 1 1 4 5 6.现在给定P,输出W。思路:直接模拟。根据p先模拟出原来的合式公式,然后从右向左判断匹配原创 2016-01-23 22:44:12 · 351 阅读 · 0 评论 -
POJ 3087(模拟)
题目链接:http://poj.org/problem?id=3087题意:给出两堆牌s1,s2,然后洗牌,两堆牌相互交叉,s1在上,s2再下,然后将下面的牌赋给s1,上面的牌赋给s2,问能否洗成s3?这题我是直接模拟A掉的..不知道为什么分到搜索系列里面。用一个map,若出现过就将其标记为1,否则标记为0先将s1,s2,s3全部做标记,然后开始洗牌如果该s已经出现过,当他和s原创 2016-01-27 17:38:43 · 314 阅读 · 0 评论 -
poj 3096 Surprising Strings
题目链接:http://poj.org/problem?id=3096暴力遍历所有字符串,数据比较小,0ms过。#include#include#includeusing namespace std;const int INF=0x3f3f3f3f;const int maxn=105;char s[maxn];bool ok(){ int len=strlen(s);原创 2016-02-05 09:58:17 · 175 阅读 · 0 评论 -
POJ 2965(DFS+枚举)
题目链接:http://poj.org/problem?id=2965题意:4*4矩阵,矩阵上每个元素都有两种符号+和-,每次变换将同行同列元素全部变为相反状态,问需要多少次可以将矩阵所有运算的状态变为+。思路:这道题和1753那道题差不多。题目不会出现Impossible的情况。具体做法是DFS+枚举,每个元素只有两种状态,所有元素共有2^16次状态,代码整体实现和1753差不多原创 2016-01-23 18:39:02 · 493 阅读 · 0 评论 -
POJ 2586(贪心)
题目链接:http://poj.org/problem?id=2586题意:(这个题看了大半天没看懂是什么意思)对于MS Inc来说,每个月如果盈利则必盈利sur,如果亏空则必亏空def(这个公司很怪)。它每五个月进行一次统计,共统计八次(1-5月一次,2-6月一次...)。统计的结果是这八次都亏空。判断MS Inc全年否能盈利,如果能则求出最大的盈利。如果不能则输出"Defici原创 2016-01-23 16:13:00 · 403 阅读 · 0 评论 -
POJ 2109
题目链接:http://poj.org/problem?id=2109题意:给出n,p,求k满足k^n=p思路:如果用对数的话,即k=log(p)/log(n),但是double有效位只有6位,需要进行两次log运算,这会导致结果不精确。所以,考虑直接使用pow()函数,只需要一行代码。注意:输出的时候不能用printf,结果要求四舍五入,所以用cout比较好。#i原创 2016-01-23 15:02:53 · 292 阅读 · 0 评论 -
POJ 1328(排序+贪心)
题目链接:http://poj.org/problem?id=1328题意:给出一个笛卡尔坐标系,在y轴上半轴给出多个点,以x轴上的点为圆心画圆,要求能覆盖y轴上所有的点,至少需要多少个圆?如果不存在,则输出-1;思路:首先说一下错误思路:将所有点从左向右排序,然后优先考虑左边的点,画圆覆盖该点,然后尽量将圆心右移,这是一个错误的做法,可以参考以下数据:2 30 2原创 2016-01-23 14:40:57 · 435 阅读 · 0 评论 -
POJ 1064 (二分)
题目链接:http://poj.org/problem?id=1064题意:给出n个木棒的长度,需要获得m根长度相等的木棒,可以将木棒简短,问:可以得到的最长的木棍长度是多少?思路:直接二分求解吧,需要注意一下精度,题目要求保留两位小数,可以直接将数*100来控制精度。#include#include#include#include#include#includeu原创 2016-01-24 14:19:18 · 269 阅读 · 0 评论 -
VK Cup 2016 - Round 1 (Div. 2 Edition)C. Bear and Forgotten Tree 3(构造)
题目链接:http://codeforces.com/contest/658/problem/C题意:给出树上的n个结点,任意两点的距离最大为d(树的直径),树根节点1到其他任意一点的最大距离不超过h,判断是否存在,如果存在,输出任意一种建树方式。首先考虑到树的长度d其最小高度为(d+1)/2,如果h比其小,则无法形成树。然后以1为根节点先构造长度为h的树,形成串(即i与i+1相连),原创 2016-03-30 20:44:26 · 261 阅读 · 0 评论