题目描述 一张未知的有重边无自环的图,只知道点数为n,边数为m。可以标记若干个点,如果一个点被标记,那么与它距离不超过k的点(包括本身)都会被覆盖。 显然对于每张不同图,让所有点被覆盖的最小代价是不一样的。 问:对于所有这样的图,它可能产生的最小覆盖代价是多少。 输入 输入一行三个数,分别为n,m, ...
分类:
其他好文 时间:
2017-10-22 11:14:26
阅读次数:
189
给出一个目标序列,初始序列为0,你有一种操作方式可以将某段值相同的区间全部加上一定的值,问得到目标序列的最小次数。 开始没注意要求值相同,想都不想就暴力了,后来发现对于每个峰,只要找每个相对峰顶的阶数相同的数中数字相同的个数,最后总数减掉相同的就行了。 说的这么复杂,后来才发现换成图形就是找最小覆盖 ...
分类:
其他好文 时间:
2017-10-19 13:59:59
阅读次数:
215
这个还真的冷门....但是貌似明白怎么挑最小覆盖集就差不多做完了。证明还是挺有意思的。 ...
分类:
其他好文 时间:
2017-10-04 14:16:58
阅读次数:
345
题意:给定一个 n * m 的矩阵,有一些格子有目标,每次可以消灭一行或者一列,问你最少要几次才能完成。 析:把 行看成 X,把列看成是 Y,每个目标都连一条线,那么就是一个二分图的最小覆盖数,这个答案就是二分图的最大匹配,在输出解的时候,就是从匈牙利树上,从X的未盖点出发,然后标记X和Y,最后X中 ...
分类:
其他好文 时间:
2017-09-27 22:34:14
阅读次数:
246
【题意】给定n*n网格,有k个物品,每次可以消灭一行或一列,求消灭掉所有物品的最少操作次数。 【算法】二分图最小覆盖 【题解】此题是最小覆盖模型的出处。 将物品的x-y连边建立二分图。 最小覆盖:选择最少的点,使每条边至少有一个端点被覆盖。 刚好对应题意。 最小覆盖可以用最小割解决,将选择点视为割去 ...
分类:
其他好文 时间:
2017-09-26 21:00:14
阅读次数:
191
题意:让你求空间内n个点的最小覆盖球。 模拟退火随机走的时候主要有这几种走法:①随机旋转角度。 ②直接不随机,往最远的点的方向走,仅仅在尝试接受解的时候用概率。(最小圆/球覆盖时常用) ③往所有点的方向的总和走,仅仅在尝试接受解的时候用概率。(费马点时常用) 像这题,我用第一种最暴力的随机,死活过不 ...
分类:
其他好文 时间:
2017-09-15 20:58:25
阅读次数:
191
题意:求两个排列的最长公共子序列n<=1e5 解题关键:转化为LIS。 最长公共子序列 的 nlogn 的算法本质是 将该问题转化成 最长增序列(LIS),因为 LIS 可以用nlogn实现,所以求LCS的时间复杂度降低为 nlogn。 1. 转化:将LCS问题转化成LIS问题。 假设有两个序列 s ...
分类:
其他好文 时间:
2017-08-25 19:59:08
阅读次数:
163
/** 题目:poj3020 Antenna Placement 链接:http://poj.org/problem?id=3020 题意: 给一个由'*'或者'o'组成的n*m大小的图,你可以用一个小圈圈圈住两个相邻的'*',问要圈住所有的'*'最少需要多少个小圈圈。(小圈圈可以相交) 思路: 先... ...
分类:
编程语言 时间:
2017-07-20 22:13:52
阅读次数:
218
#include <iostream> #include <cstdio> #include <cstring> using namespace std; const int N=1111; int n1,n2,k; int mp[N][N],vis[N],link[N]; int vis2[N]; ...
分类:
其他好文 时间:
2017-07-16 10:05:37
阅读次数:
115
题目: 链接:点击打开链接 题意: 求最小覆盖矩阵的面积。 算法: 二维的KMP算法。 思路: 最小覆盖字符串定是串的前缀,我们能够求出没一行的最小覆盖串的长度。然后求每行串的最小公倍数。就能够得到最小覆盖矩阵的长度。同理求的矩阵的宽度。便可得面积。 代码: #include<iostream> # ...
分类:
其他好文 时间:
2017-06-17 21:46:23
阅读次数:
167