- 博客(11)
- 资源 (46)
- 收藏
- 关注
原创 HDU 2612 Find a way(双BFS)
题意 在n*m的地图中 ‘Y’和'M'两个人到某一家KFC(在地图上用"@'表示) 所需的最小时间和是多少 他们每走一步都要11分钟可以分别以y和m为起点进行一遍bfs 把到每个KFC的时间都存起来 最后看哪家KFC的时间和最小就行了#include #include #include using namespace std;const int N = 205;in
2015-03-31 23:16:45 981
原创 POJ 3279 Fliptile(状压搜索)
题意 把一个n*m矩阵中的1全部变成0所需的最少步数 改变某个格子时其相邻的4个格子也一起改变 只要知道第一行改变了哪些后面的就都确定了 因为上一行对应位置是1的位置必须改变 上一行是0的一定不能改变 所以可以根据第一行的状态推出后面所有行的状态 直到最后一行结束 如果最后一行不是全0的话 这种状态就是不可行的 那么我们只用枚举第一行的所有状态就够了 m#i
2015-03-27 11:21:29 1648 1
原创 POJ 1321 棋盘问题(DFS)
题意 中文简单的搜索题 标记列是否已经有子进行深搜即可 k可能小于n 所以每行都有放子或不放子两种选择 #include using namespace std;const int N = 10;int n, k, ans, v[N];char g[N][N];void dfs(int r, int cnt){ if(cnt >= k) ++ans;
2015-03-25 20:03:41 798
原创 POJ 1434 Fill the Cisterns!(二分)
题意 有n个互相连通的长方体水箱 给出每个水箱的位置和长宽高 判断放v体积的水时水面的高度 精确到两位小数可以把每个水箱的位置 底面积 和高存起来 然用体积v二分高度 就是要注意精度的处理 最好转换成整数运算import java.util.*;public class Main { static int N = 50005; static long[] b = n
2015-03-23 22:36:47 838
原创 Codeforces 527C Glass Carving(Set)
题意 一块w*h的玻璃 对其进行n次切割 每次切割都是垂直或者水平的 输出每次切割后最大单块玻璃的面积用两个set存储每次切割的位置 就可以比较方便的把每次切割产生和消失的长宽存下来 每次切割后剩下的最大长宽的积就是答案了#include using namespace std;const int N = 200005;typedef long long LL;set
2015-03-18 23:26:44 1364
原创 Codeforces 527B Error Correct System(字符串)
题意 两个长度为n的只由小写字母组成的字符串a.b 问能否同时交换两个串两个对应位置的字符 使得两个串相同位置字符不相同的数目最小因为只能交换一次 所以只可能减少0,1或2个
2015-03-18 19:49:15 965
原创 关于lcm,gcd的一些性质
两个整数a,b 他们的最多公约数为n 最小公倍数为m 则有a b都能分解为有限个素数的积n为a,b所有素因子取较小指数的积2.3.m为a,b所有素因子取较大指数的积4.n中只含a,b的全部公共素因子5.m中含有a,b的所有素因子6.m/n中只含a,b的非公共素因子7.n*m==a*b
2015-03-17 09:31:56 4523
原创 hiho一下 37 (无序二分·k小数)
题意 中文可以先排序然后输出第k个 复杂度为O(N*logN) 但有更快的方法 其实二分时只要能保证mid左边的数都比mid小 mid右边的数都比mid大就能进行划分了 对于k不在的区间就不用管了 于是可以用到快排的思想#include using namespace std;const int N = 1000005;int a[N];int main(){
2015-03-16 12:49:06 1331
原创 URAL 1762 Search for a Hiding-Place(数学·模拟)
题意 你在一个n*m个白色正方形格子组成的矩形的某个顶点格子 你沿着45度角的方向走 到了边界就改变方向90度 每次经过一个格子都改变他原来的颜(白或灰) 求你走到另一个顶点格子时矩形中有多少格子是灰色的这题可以用公式也可以直接模拟 模拟就是一直向右移n-1位 每次超过边界就可以把边界向右移m-1位 用cnt记录超过边界的次数 那么每次都会经过cnt个已经走过的格子 (每个格子最
2015-03-11 21:32:21 730
原创 CodeForces 327D Block Tower(DFS)
题意 给你一个城市的地图 你可以在地图上的 . 上建房子#上不能建房子 红房子可以装200个人 蓝房子可以装100个人 只有相邻位置有蓝房子时才能建红房子 你也可以拆掉已经建成的房子 拆掉后该点又变成 . 这题想到了就很容易了 因为没有限制要步数最少 可以先把左右的地方都建成蓝房子 然后就变成求连通块的题了 每个蓝房子连通块内依次拆掉建红房子 最终就只剩下一个蓝房子了
2015-03-10 23:25:09 885
原创 POJ 3258 River Hopscotch(二分·最小距离最大)
题意 一条河两岸之间有n个石头 求取走m个石头后 使得两个石头间距离的最小值最大感觉关键是理解题意 简单的二分 二分最小距离 看要取走多少个(cnt)石头 cnt#include #include using namespace std;const int N = 50005;int p[N], l, n, m;bool ok(int k){ int
2015-03-09 11:33:17 1031
(HDUACM201303版_15)筛选法及预处理(附菜鸟的23个经典错误)
2014-08-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人