题意:
给出n个整数,对每个整数可以减去0-k的任意一个数
求这样操作后,n个数的最大GCD是多少
分析:
我们首先可以知道n个整数中最小的数是多少
而且,最终的答案肯定不大于这个数
这个n个整数中最小的数是答案的上限
然后对于答案的下限
可以肯定的是
1肯定是答案的下限
2呢?3呢?为什么1一定是
其实,0-k+1,都可以作为答案
为什么?
可以把k想象成一个剪...
分类:
其他好文 时间:
2014-08-25 15:02:34
阅读次数:
196
UVA 10821 - Constructing BST
题目链接
题意:有1 - n的数字,要构造一棵高度不超过h的BST,并且要字典序最小的,输出序列
思路:贪心构造,既然字典序最小,那么每个子树的根都要尽量小,那么也就是右子树尽量填满,按照这个策略去dfs构造即可
代码:
#include
#include
#include
using namespace...
分类:
其他好文 时间:
2014-08-25 14:59:04
阅读次数:
196
这种深层递归的题还是要多多体会,只看一遍是不够的题意:有一个森林,在若干个节点处放一盏灯,灯能照亮与节点邻接的边。要求:符合要求的放置的灯最少为多少,在灯数最少的前提下,一条边同时被两盏灯照亮的边数最多是多少。因为边数为m,所以被两盏灯照亮的边数最多就等价于被一盏灯照亮的边数最少因为题目中要求两个最...
分类:
其他好文 时间:
2014-08-25 14:36:54
阅读次数:
176
题意:队列中有小团体(队列)。当入队时,如果有该团体的元素在队列中,则新元素排到该团体的尾部,否则排到队列的尾部。出队时和正常的一样,队首元素出列。
思路:这个用STL很好模拟,用纯C的话,很直接会想到用二维数组来做,每个团体是其中的一个一维数组,最多再开一个数组来对小团体编号进行排队。但是当时没有看到题目中说的每个团体最后有1000个元素,这样的话我以为要开1000X200000的数组,忒大了...
分类:
其他好文 时间:
2014-08-25 13:24:34
阅读次数:
179
??
题意 求母串中子串出现的次数(长度不超过1后面100个0 显然要用大数了)
令a为子串 b为母串 d[i][j]表示子串前i个字母在母串前j个字母中出现的次数 当a[i]==b[j]&&d[i-1][j-1]!=0时 d[i][j]=d[i-1][j-1]+d[i][j-1]
(a[i]==b[j]时 子串前i个字母在母串前j个字母中出现的次数 等于 子串前i-1个字母在母串前j...
分类:
其他好文 时间:
2014-08-25 12:00:04
阅读次数:
127
UVA 1264 - Binary Search Tree
题目链接
题意:给定一个序列,插入二叉排序树,问有多少中序列插入后和这个树是相同的(包括原序列)
思路:先建树,然后dfs一遍,对于一个子树而言,只要保证左边和右边顺序对就可以了,所以种数为C(左右结点总数,左结点),然后根据乘法原理乘上左右子树的情况即可
代码:
#include
#include
t...
分类:
其他好文 时间:
2014-08-25 11:51:14
阅读次数:
204
题意: 有N个点,给出从a点到b点的距离,当然a和b是互相可以抵达的,问从1到n的最短距离 分析: 典型的模板题,但是一定要注意有重边,因此需要对输入数据加以判断,保存较短的边,这样才能正确使用模板。 题解 #include
#include #include
#include
#include u...
分类:
其他好文 时间:
2014-08-25 11:48:14
阅读次数:
132
题意:给出一个数让你求出等于这个数的x
策略:如题。因为整个式子是单调递增的,所以可以用二分。
要注意到精度.
代码:
#include
#include
#include
#define eps 1e-10
#define f(x) 8*pow(x, 4) + 7*pow(x, 3) + 2*pow(x, 2) + 3*x
int main()
{
int t;
double...
分类:
其他好文 时间:
2014-08-25 08:46:34
阅读次数:
209
1 /* 2 题意:一个矩阵中有 n*m个宠物,每一个宠物都有一个状态, 1醒着的,0睡着的 3 X离开的!如果这个宠物(醒着的)的周围醒着的个数>3 || 9 #include10 #include11 #include12 using namespace std;13 14 in...
分类:
其他好文 时间:
2014-08-25 01:02:53
阅读次数:
349
UVA 10909 - Lucky Number
题目链接
题意:问一个数字能否由两个lucky num构造出来,lucky num根据题目中的定义
思路:利用树状数组找前k大的方法可以构造出lucky num的序列,然后每次查找n,就从n / 2开始往下查找即可
代码:
#include
#include
#include
using namespace st...
分类:
其他好文 时间:
2014-08-24 23:52:53
阅读次数:
423