题目链接:uva
1252
题意:
有n个长度为m的二进制串,每个都是不同的。
为了把所有字符串区分开,你可以询问,每次可以问某位上是0还是1。
问最少提问次数,可以把所有字符串区分开来。
思路来源于:点击打开链接
思路:
m很小,可以考虑状态压缩。
dp[s1][s2]表示询问的状态为s1时,此时能猜到状态包含s2时最小需要的步数。
当询问的几位=...
分类:
其他好文 时间:
2014-07-11 08:39:57
阅读次数:
244
题目描述:
把一个数组最开始的若干个元素搬到数组的末尾,称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。
分析描述:
求一个数组中的最小值,最简单的办法就是逐个比较数组中各个元素的值,遍历完整个数组,即可得数组中最小元素。但...
分类:
其他好文 时间:
2014-07-11 08:27:37
阅读次数:
206
题目链接:uva 10413 - Crazy Savages
题目大意:一座山有m个山洞,形成一个圈,现在有n个部落的人,每个部落一开始住在ci山洞,第2天会向后面移动pi个位置,一共会在这座山住li天。现在如果两个部落在同一个山洞相遇,则会发生战争,问说m最小时多少的时候,保证不会发生争斗。
解题思路:因为每个部落都有自己的存在时间,所以枚举m,然后枚举两个部落,判断他们有没有可能相...
分类:
其他好文 时间:
2014-07-11 08:13:19
阅读次数:
283
UVA 10837 - A Research Problem
题目链接
题意:给定phi(n),求最小满足的最小的n
思路:phi(n)=pk11(p1?1)?pk22(p2?1)?pk33(p3?1)....(p为质数),因此对于给定phi(n),先把满足条件phi(n)%(p?1)=0的素数全找出来,在这些素数基础上进行暴力搜索,枚举哪些素数用与不用,求出最小值。这样做看似时...
分类:
其他好文 时间:
2014-07-11 08:06:03
阅读次数:
209
克鲁斯卡尔算法:
假设连通网N = {V,{E}},则令最小生成树的初始状态为只有n个顶点而无边的非连通图T = {V,{}},图中每个顶点自成一个连通分量。在E中选择一个最小代价边,若该边依附的顶点落在T中的不同连通分量上,则将此边加入到T中,否则舍去此边而选择下一条最小代价边【最小生成树不存在环】。依次类推,直至T中所有顶点都在同一连通分量上为止。【连通分量:无向图的极大连通子图】
...
分类:
其他好文 时间:
2014-07-10 21:06:36
阅读次数:
207
本题是单调队列题解的入门,当然也可以使用RMQ 和 线段树,不过速度都没有单调队列那么快。
单调队列难点:
1 如何入列,保存数据 -- 最小单调队列的时候, 所有数都入列一次,在新的数据准备入列的时候,增加判断,如果当前数值小于队尾数值,那么队尾数值就出列。空队列的时候直接入列。
2 保存的数列是什么样的?
举例吧: 1 3 -1 -3 5 3 6 7
构建最小单调队列
第一个数值1...
新单词unidirectional get T T
求有向图上,以某点为根的,最小生成树
参考别人的模板
#include
#include
#include
#include
#include
#include
#include
#define inf 2000000000
using namespace std;
struct node1
{
double x,...
分类:
Web程序 时间:
2014-07-10 20:32:47
阅读次数:
285
我都不好意思在标题上写这是最短路
这题挺有意思,关键在于把题目所求的量转换为最短路问题。
题意:
给一个无向图,每个结点有权值p[i],每条边有权值w[i]
求使这颗树所有顶点与根节点1联通的最小花费,
最小花费=∑w[i]×∑p[i]
第一个∑是所有边,第二个∑是该边下所有结点的权值和
思路:
通过推导可以发现,对于每个结点,它被算入的花费为 p[i]*d[i],...
分类:
其他好文 时间:
2014-07-10 20:18:43
阅读次数:
177
UVA 10413 - Crazy Savages
题目链接
题意:一个岛上有一些山洞,有n个幸存者,每个幸存者初始在山洞Ci,山洞是形成一个环的,每天每个人都会走Pi,然后Li天后该人会死掉,要求一个最小的山洞数使得每个人在活着的时候都不会碰面(因为碰面就会发生冲突)
思路:枚举山洞数m,然后两两判断会不会碰面
判断的方法是:两个人其实就是两个线性方程
(c1+p1k1)%...
分类:
其他好文 时间:
2014-07-10 19:24:13
阅读次数:
210
POJ 1160 Post Office (动态规划)
题目大意:
有n个村庄,m个邮局,每个村庄的位置坐标告诉你,现在要将m个邮局设立在这n个村庄里面,问你最小花费是多少?花费为每个村庄到最近的邮局的距离和。
解题思路:
dp[i][j] 记录 i个邮局 j个村庄的最小花费,cost[k+1][j],记录在k+1号村庄到 j 号村庄设立一个邮局的最小花费。
那么:dp[i][j]=min { dp[i][k]+cost[k+1][j] }
最后输出dp[m][n]即可。
但是在k+1号村庄到 j 号村...
分类:
其他好文 时间:
2014-07-10 17:28:24
阅读次数:
168