题意:这个题是以坦克大战为原型出来的题目,就是走迷宫的变种,给定一个地图mxn的地图,地图上有普通的砖B,金砖S,河R,空地E,和一个宝物位置T,和你的位置Y,求吃到宝物的最小步数(坦克通过普通砖B需要两步,空地E一步,不能通过金砖和河)..样例输入3
4YBEBEERESSTE0 0样例输出8解题...
分类:
其他好文 时间:
2014-05-21 20:29:37
阅读次数:
264
http://acm.hdu.edu.cn/showproblem.php?pid=4009最小树形图。题意是有n个地方需要供水,每个地方都可以选择是自己挖井,还是从别的地方引水,根据方法不同和每个地方的坐标不同,花费也不同,现在给出每个地方的坐标,花费的计算方法,以及每个地方可以给哪些地方供水(即...
分类:
其他好文 时间:
2014-05-21 19:56:11
阅读次数:
289
在一条直线上有n个村庄,选出m个村庄,在其中每个村庄建立一个邮局,要求每个村庄到最近邮局的距离和最小。
f[i][j]:在前i个村庄中建立j个邮局的最小耗费
dis[i][j]:在第i个村庄到第j个村庄中建立1个邮局的最小耗费
那么就有转移方程:f[i][j] = min(f[i][j],f[k][j-1]+dis[k+1][i]) DP的边界状态即为f[i][1] = dis[1][i...
分类:
其他好文 时间:
2014-05-21 16:30:14
阅读次数:
236
题目大意:
墙上有一块区域被分成了n个矩形,每个矩形要涂上各自的颜色。为了保证完美要求这一块区域可以进行涂色的条件是它上方的所有区域都已经涂好颜色,这样就不会有后续的操作影响这块区域的颜色。但是如果两块区域颜色不同就要换涂颜色用的刷子。问最少需要换几次。
解题思路:
区域涂色的大体次序是由拓扑排序决定的,当有多个区域在同一层次时需要枚举这些区域来保证换刷子的次数最小。
...
分类:
其他好文 时间:
2014-05-21 10:28:49
阅读次数:
277
题意
有C个奶牛去晒太阳 (1
而刚开始的阳光的强度非常大,奶牛都承受不住,然后奶牛就得涂抹防晒霜,防晒霜的作用是让阳光照在身上的阳光强度固定为某个值。
那么为了不让奶牛烫伤,又不会没有效果。
给出了L种防晒霜。每种的数量和固定的阳光强度也给出来了
每个奶牛只能抹一瓶防晒霜,最后问能够享受晒太阳的奶牛有几个。
那么将奶牛按照阳光强度的最小值从小到大排序。
将防晒霜也按照能固...
分类:
其他好文 时间:
2014-05-21 09:29:45
阅读次数:
176
SOL : 扩展的欧几里德, ax+by==c
x=x0+b/d*t;
y=y0-a/d*t;
求|x|+|Y|的最小值
可以发现:
|x0+b/d*t| 单调递增 |y0-a/d*t| 单调递减
因为 a>b,所以就是说函数是凹的,先减小后增大。
显然 当y0-a/d*t==0的时候 |x|+|Y| 最小值就在那附近。
枚举几个值就能找到。
#in...
分类:
其他好文 时间:
2014-05-21 09:25:41
阅读次数:
290
最近在程序中需要取一个列表的top 3元素,就是去一个列表中数值最大的3个元素。这可以用Python的heapq模块来处理。
1、对列表取top N:
现在有一个列表myList,需要取出该列表的最大3个元素和最小3个元素,按如下代码所述的简单例子:
test.py
import heapq
myList = [5, 2, 6, 12, 7, 3, 4, 9]
topNum = 3
n...
分类:
编程语言 时间:
2014-05-21 08:18:57
阅读次数:
335
题意:求for(int i=a;i!=b;i+=c,i%=(1
解法:即求解C*x-(1C*x+K*y=b-a;如果g=gcd(C,K)不能被b-a整除,则说明无解。
用exgcd()求出一组C/g*x+K/g*y=1的解,然后两边乘上(b-a)/g将求出的x取最小正数输出。
代码:/*************************************...
分类:
其他好文 时间:
2014-05-21 07:09:42
阅读次数:
226
SOl:将原题改为枚举N的每一对因子,计算其是否互素即可。
#include
#include
#include
using namespace std;
inline int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
int n,T,i,j;
scanf("%d",&T);
while(T...
分类:
其他好文 时间:
2014-05-21 07:07:00
阅读次数:
273