摘要: 1. 问题 图的m着色问题。给定无限连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。 2. 解析 设G有n个顶点,将顶点编号为1,2.…,n,则搜索空间为深度n的m叉完全树,将颜色编号为1,2 阅读全文
posted @ 2021-06-14 15:27 kitalekita 阅读(116) 评论(1) 推荐(0) 编辑
摘要: 1. 问题 设A1,A2,….,An为n个矩阵的序列,其中Ai为Pi-1 * Pi阶矩阵,这个矩阵链的输入用向量P=<P0,P1,…,Pn>给出. 给定向量P,确定一种乘法次序,使得基本运算的总次数达到最小。 2. 解析 这道题可以用枚举法: 枚举所有可能的乘法次序,针对每种次序计算基本运算的次数, 阅读全文
posted @ 2021-05-02 21:30 kitalekita 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 1. 问题 设m万元钱,n项投资,函数fi(x)表示将x万元投入第i项项目所产生的效益,i=1,2,…,n.问:如何分配这m元钱,使得投资的总效益最高? 2. 解析 假设分配给第i个项目的钱数是xi,问题描述为: 目标函数:max{f1(x1)+f2(x2)+…+fn(xn)} 约束条件 x1+x2 阅读全文
posted @ 2021-05-02 21:27 kitalekita 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 问题 在一堆数组当中,选出第k小的数组 分析 在一般的情况下面,要选择第k小的数组,要先给它进行排序,排序至少需要O(n * logn)的时间复杂度,但是我们可以用分治的思想,相当于快排,给它进行分组,一组一组的进行排序,虽然也是排序,但是时间复杂度可以到达O(n)。 #include<bits/s 阅读全文
posted @ 2021-04-24 21:58 kitalekita 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 1. 问题 最近点对问题 给你n个点的二维坐标,让你去求出这n个点的中两个点相差的最小距离。 以HDU1007为例,这道题大致意思为:给你n个点代表一个物体,给你一个圆环,这个圆环只能套中一个物体,问你这个圆环的最大半径是多少? 2. 解析 这道题简而言之就是让我们求解n个点当中,最近的两个点距离的 阅读全文
posted @ 2021-04-12 16:26 kitalekita 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 1. 问题 二分归并排序:对n个不同的数构成的数组A[1….n]进行排序,其中n=2^k. 2. 解析 二分归并排序: 将一个数组分割,分割成两个部分,递归分割下去,直到剩余数组元素个数不满足分割条件,就将分割的数组进行排序,然后在递归上去,将分割的序列形成的有序数组进行合并,最后形成一个有序的数组 阅读全文
posted @ 2021-03-29 15:06 kitalekita 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 1. 问题 写出两种检索算法:在一个排好序的数组T[1..n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0 2. 解析 这个问题很好想到暴力,就是一个一个查找过去,这个可以用于顺序表存储得到数组,也可以用于链表存储的链表。 同时观察一下这是一个排好序的数组,那么我们也能很容 阅读全文
posted @ 2021-03-28 09:51 kitalekita 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 概念(问题) 在一张有边权的无向图G=( V , E ), n = | V | , m = | E | 。 由 V 中全部 n 个顶点和 E 中 n - 1 条边构成的无向连通子图被称为G的一颗生成树。其中边权之和最小的生成树就是此图的最小生成树,一张图的最小生成树不止一颗。那如何去求呢?最小生成树 阅读全文
posted @ 2021-03-14 20:07 kitalekita 阅读(78) 评论(0) 推荐(0) 编辑
摘要: HDU - 4734 题目大致意思:我们定义十进制数x的权值为f(x) = a(n)*2^(n-1)+a(n-1)*2(n-2)+...a(2)*2+a(1)*1,a(i)表示十进制数x中第i位的数字。题目给出a,b,求出0~b有多少个不大于f(a)的数。 题解:这个f(x)计算就和数位计算是一样的 阅读全文
posted @ 2020-07-28 18:33 kitalekita 阅读(180) 评论(1) 推荐(0) 编辑
摘要: HDU - 1114 题目翻译: 在acm能够做任何事情之前, 必须编制预算并获得必要的财政支持。这一行动的主要收入来自IBM。这个想法其实很简单,每当一些会员有一点小钱时,他就会把所有的硬币都扔到小猪存钱罐里。这个过程是不可逆转的, 除非打破猪,否则硬币不能拿出来。过了足够长的时间, 存钱罐里应该 阅读全文
posted @ 2020-07-28 18:28 kitalekita 阅读(182) 评论(0) 推荐(0) 编辑