2016年7月13日

UVA 11624 Fire!(广度优先搜索)

摘要: 题目大意:在一个N*M的迷宫内,J代表某人(只有一个),F代表火(可能不只一个),#代表墙,火每分钟会向四周除了墙以外的地方扩散一层,问人能否在没被火烧到 之前逃出迷宫,若能逃出输出最短时间。很明显的bfs。但由于火到达的地方人不能抵达,故需先对火进行bfs,标记后若人在火烧到之前抵达即可。最后逃出 阅读全文

posted @ 2016-07-13 11:14 刘威O_0 阅读(212) 评论(0) 推荐(0)

2016年7月12日

HDU 4578 Transformation (线段树区间多种更新)

摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4578 题目大意:对于一个给定序列,序列内所有数的初始值为0,有4种操作。1:区间(x, y)内的所有数字全部加上C;2:区间(x, y)内所有数字全部乘C; 3:区间(x, y)内的所有数字全部重置为C; 4:输 阅读全文

posted @ 2016-07-12 22:46 刘威O_0 阅读(224) 评论(0) 推荐(0)

2016年7月11日

HDU 1540 Tunnel Warfare(线段树+区间合并)

摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1540 题目大意:抗日战争期间进行地道战,存在n个村庄用地道连接,输入D表示破坏某个村庄(摧毁与其相连的地道, 包括其本身),输入R表示重建最后被破坏的那个村庄。 输入Q表示查询某村庄可通过地道到达多少个村庄(包含 阅读全文

posted @ 2016-07-11 21:23 刘威O_0 阅读(191) 评论(0) 推荐(0)

2016年3月31日

多重背包

摘要: 多重背包,也就是是01背包的进阶版,但是物品的数目过多,因此把那些数目转化为2的次方数来转存,后续与01背包一致, 下为关键的转化过程 void Slove(){ int j; for(int i=1; i<=n; i++) { for(j=1; j<=c[i]; j*=2) { W[k] = w[ 阅读全文

posted @ 2016-03-31 17:21 刘威O_0 阅读(121) 评论(0) 推荐(0)

2016年3月27日

常用算法之快速幂

摘要: #include <stdio.h>long long quickPow(long long a, long long b)///快速幂, a的b次方{ long long c = 1; while(b) { if(b&1)c=c*a; b=b/2; a=a*a; } return c;}int m 阅读全文

posted @ 2016-03-27 16:22 刘威O_0 阅读(141) 评论(0) 推荐(0)

导航