-ZOJ
文章平均质量分 80
virgoDd
Good afternoon,good evening and good night
展开
-
ZOJ 3804 YY's Minions(模拟)
题意 你有n*m个小兵排成一个矩阵 每个在矩阵里的小兵有两种状态 0睡着 或 1清醒 每秒都会发生如下事件 睡着的小兵在他周围恰好有3个醒着的小兵时会醒过来 醒着的 小兵在周围醒着的的小兵数大于3或小于2时会睡着 还有k个小兵会在一定的时间离开 X 求f秒之后所有小兵的状态 直接模拟就行咯~~ #include #include #include using name原创 2014-09-01 22:23:18 · 836 阅读 · 0 评论 -
ZOJ 3447 Doraemon's Number Game(Java优先队列·BigInteger)
题意 给你一个数组 你每次可以从中删掉2到k个数 然后把删掉的数的积加入到原数组 直到最后只剩一个数 求这样能得到的最大值和最小值的差 每次选的数值越小 选的数量越少 最后得到的结果肯定越大 因为这样大的数可以乘以最大的倍数 运算的次数也是最多从而使+1的次数最多 这显然是有利于最后结果的增大的 同理 每次选的数越大 选的数越多 最后得到的结果越小 这样最大值就是原创 2015-07-29 20:40:22 · 1031 阅读 · 0 评论 -
ZOJ 3450 Doraemon's Railgun (DP·分组背包)
题意 多啦A梦有一个超电磁炮 然后要打死n堆敌人 在同一条射线上的敌人只有先打死前面的一堆才能打后面的一堆 给你打死某堆敌人需要的时间和这堆敌人的人数 问你在T0时间内最多打死多少个敌人 分组背包问题 先要把同一条射线上的敌人放到一个分组里 后面的敌人的时间和人数都要加上前面所有的 因为只有前面的都打完了才能打后面的 然后每组最多只能选择一个 判断共线用向量处理原创 2015-07-29 09:31:22 · 960 阅读 · 2 评论 -
ZOJ 3699 Dakar Rally(贪心)
题意 路上有 n 个加油站 每个加油站的价格可能不同 你的油箱容积为 v 问从起点开车到终点加油至少用多少钱 贪心 每次都让油箱里面便宜的油最多就行了 在每个站点 i 有两种情况 1. i 点把油加满跑完都没有更便宜的 那么在 i 点肯定要加满 然后开到 i+1 点去 2. i 点把油加满能跑到第一个比 i 点更便宜的 j 点或者到了终点 j 那么只用把油加到能到原创 2015-07-08 08:36:18 · 1522 阅读 · 0 评论 -
ZOJ 3436 July Number(DFS)
题意 把一个数替换为这个数相邻数字差组成的数 知道这个数只剩一位数 若最后的一位数是7 则称原来的数为 July Number 给你一个区间 求这个区间中July Number的个数 从7开始DFS 位数多的数总能由位数小的数推出 #include using namespace std; const int N = 1e6; int july[N], n; set ans;原创 2015-07-26 17:08:26 · 722 阅读 · 0 评论 -
ZOJ 3761 Easy billiards (DFS性质)
题意 桌上有n个球 a球撞击b球时 a球停在b球位置 b球保持a球运动 若b球前面再没有球 b球就会掉下桌子 给你n个球的坐标 你可以多次选择某个撞击方向前面还有球的球撞击 问最后桌上至少还剩多少球 并输出你的撞击过程 可以把x坐标或y坐标相同的点当作是连通的 因为可以通过撞击一个球使另一个球掉下桌面 那么容易发现 一个连通块内的m个球总可以经过m-1次撞击后变成只剩一原创 2015-07-10 08:57:51 · 1028 阅读 · 0 评论 -
ZOJ 1364 Machine Schedule(二分图最大匹配)
} int main() { int u, v, t; while(scanf("%d", &n), n) { memset(g, 0, sizeof(g)); scanf("%d%d", &m, &k); for(int i = 0; i < k; ++i) { scanf("%d%原创 2015-07-10 15:30:36 · 1350 阅读 · 0 评论 -
ZOJ 2913 Bus Pass (最近的最远BFS HDU2377)
题意 在所有城市中找一个中心满足这个中心到所有公交站点距离的最大值最小 输出最小距离和满足最小距离编号最小的中心 最基础的BFS 对每个公交站点BFS dis[i]表示编号为i的点到所有公交站点距离的最大值 bfs完所有站点后 dis[i]最小的点就是要求的点咯 #include #include #include #include using namespace std; typ原创 2014-10-18 22:12:05 · 1618 阅读 · 2 评论 -
ZOJ 1649 Rescue(有敌人迷宫BFS)
题意 求迷宫中从a的位置到r的位置需要的最少时间 经过'.'方格需要1s 经过‘x’方格需要两秒 '#'表示墙 由于有1s和2s两种情况 需要在基础迷宫bfs上加些判断 令到达每个点的时间初始为无穷大 当从一个点到达该点用的时间比他本来的时间小时 更新这个点的时间并将这个点入队 扫描完全图就得到答案咯 #include #include #include using names原创 2014-10-16 22:37:02 · 1289 阅读 · 0 评论 -
ZOJ 3622 Magic Number(数)
题意 如果一个正整数y满足 将任意正整数x放到y的左边得到的数z满足 z%y==0 那么这个数就是个Magic Number 给你一个范围 求这个范围内Magic Number的个数 令 l表示y的位数 ly=10^l 那么z=x*ly + y 要z%y==0 容易看出 只需 x*ly%y==0 又因为x是任意的 所以一个Magic Number必须满足 ly%y原创 2014-11-18 15:42:36 · 1026 阅读 · 2 评论 -
ZOJ 2110 Tempter of the Bone(条件迷宫DFS,HDU1010)
题意 一只狗要逃离迷宫 可以往上下左右4个方向走 每走一步耗时1s 每个格子只能走一次且迷宫的门只在t时刻打开一次 问狗是否有可能逃离这个迷宫 直接DFS 直道找到满足条件的路径 或者走完所有可能路径都不满足 注意剪枝 当前位置为(r,c) 终点为(ex,ey) 剩下的时间为lt 当前点到终点的直接距离为 d=(ex-r)+(ey-c) 若多走的时间rt=lt-d原创 2014-10-12 21:17:13 · 921 阅读 · 0 评论 -
ZOJ 2412 Farm Irrigation(DFS 条件连通块)
题意 两块农田里面的管道可以直接连接的话 他们就可以共用一个原创 2014-10-13 09:52:14 · 1040 阅读 · 0 评论 -
ZOJ 1586 QS Network(最小生成树 prim)
题意 输入n 然后输入n个数 代表连接时每个站点自身的消耗 然后输入n*n的矩阵 第i行第j列的数代表第i个站点和第j个站点之间路上的花费 链接i,j两个节点的总花费为两站点自身花费加上路上的花费 求⑩这n个站点连通的最小总花费 又是裸的最小生成树 给点的就用prim咯 #include #include #include using namespace std; const原创 2014-10-24 15:25:41 · 1141 阅读 · 0 评论 -
ZOJ 1203 Swordfish(最小生成树 kruskal)
题意 给你n个点的坐标 每个点都可与其它n-1个点相连 求这n个点的最小生成树的权重 裸的最小生成树 直接kruskal咯 #include #include #include #include using namespace std; const int N = 105, M = 10050; double x[N], y[N], ans; int n, m , par[N]; s原创 2014-10-22 09:39:13 · 1245 阅读 · 0 评论 -
ZOJ 3427 Array Slicing (scanf使用)
题意 Watashi发明了一种蛋疼(eggache) 语言 你要为这个语言实现一个 array slicing 函数 这个函数的功能是 有一个数组初始为空 每次给你一个区间[ l, r) 和一些数 你要输出数组中下标在[l, r) 之间的数 然后删除这些数 然后把给你的那些数插入到数组的下标为 l 的位置 签到模拟题 一直没看懂题意 看了Watashi的scanf高端用原创 2015-07-24 16:00:46 · 850 阅读 · 0 评论