![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ZOJ
文章平均质量分 74
HouseFangFZC
oo
展开
-
ZOJ 3715 Kindergarten Election
题意: n个人投票 唯一一个票数最多的人当选 1想当选 他可以通过给别人糖让不选他的人选他 问 最少需要多少糖 思路: 由于n比较小 可以枚举1当选时得了多少票 这样就可以贪心的使用糖 如果1当选时有i票 那么所有人都要先保证选票数 保证上述条件下 如果1票数已经超过i 则说明这次枚举是失败的 如果不到i 就尽量少用糖补到i 代码: #incl原创 2014-04-02 20:08:48 · 1070 阅读 · 0 评论 -
ZOJ 3602 Count the Trees
题意: 两棵树(10^5个节点) 问其中有多少对子树是同构的 思路: 树的同构一般使用hash来判断 hash函数为1、val=A 2、val = (val*P)^Soni%Q 其中Soni为第i个子树的hash值 3、val=val*B%Q 注意Son值应该排序 (本题因为左右子树是区分开的 因此不用排序) 代码: #include #include #include原创 2015-01-24 12:44:34 · 978 阅读 · 0 评论 -
ZOJ 3820 Building Fire Stations
题意: 树上找两个点 使得其他点到这两点任意一点的距离的最大值最小 思路: 最大值最小 想到二分 在二分的基础上判定这个最大值是否可能 如何判定这个问题就是如何选那两个点的问题 很明显 我们要处理的是直径(不然没意义 最长的就是直径) 那么既然已经有了一个要判定的值x 不妨就选择距离直径两端点距离为x的点就好 直径上的点最多n个 算上二分的复杂度 O(nlogn)可以原创 2014-10-14 14:37:38 · 1363 阅读 · 0 评论 -
ZOJ 3822 Domination
题意: 一个棋盘如果每行每列都有棋子那么这个棋盘达到目标状态 现在随机放棋子 问达到目标状态的期望步数 思路: 用概率来做 计算第k步达到目标状态的概率 进而求期望 概率计算方法就是dp dp[k][i][j]表示第k步有i行被覆盖j列被覆盖 转移只有4种 —— 同时覆盖行列 覆盖行 覆盖列 不覆盖 状态数50^4 很简单 代码: #include #inclu原创 2014-10-14 15:16:31 · 1054 阅读 · 0 评论 -
ZOJ 3812 We Need Medicine
题意: 一个物品重w效力t 给出所有n个物品 有q个询问 每个询问输出w的和为m同时t的和为s的方案 思路: 明显就是01背包 只不过一个东西在两个维度上有价值 由于w只有50因此可以状压 先想如何输出方案 利用f[i][j]表示sumw=i同时sumt=j时候装进包里的最后一个物品 那么输出这个物品后i和j都减去这个物品的w和t 就可以到达新的状态 这样可以一直到背包为原创 2014-09-16 18:58:44 · 1034 阅读 · 0 评论 -
ZOJ 3810 A Volcanic Island
题意: n*n的格子 将它分成n份大小为n的连通块 要求每个块形状不同 用4种颜色将格子染色后输出 思路: 纯构造题 考验智商 不过还是有思路可寻的 首先这题要想到将格子分区域的去做(想不到就没办法了…)假设我们两行为一个区域 那么将这两行划分成两个面积为n的块之后发现它们的形状必然相同 因此两行不行 所以我们尝试3行为1个区域!! 可以构造: 这样构造就可以保证形原创 2014-09-09 13:33:20 · 1705 阅读 · 0 评论 -
ZOJ 3811 Untrusted Patrol
题意: 一幅图某些点有监视器 监视器只记录第一次路过的时间 问 给出路线序列 是否存在满足序列的情况下遍历整幅图的点 思路: 不要想割点 割点无法处理在一个双连通分量内的多个监视器 这题就是贪心+搜索 贪心就是尽量多的使用不违背序列的点 那么我们先把序列里的第一个点和不存在监视器的点加入图 并将他们连边 对于其他的序列中的点 如果这个点存在与第一个点所形成的连通块连接的原创 2014-09-08 10:41:45 · 990 阅读 · 0 评论 -
ZOJ 3324 Machine
题意: 一段区间最开始元素都是0 每次操作可以令一段连续区间+1或-1(在加过的前提下才能减) 每次操作输出整段区间有多少段连续的0 思路: 一看区间操作首先考虑线段树 本题n比较大 但是操作数很小 而且每次操作最多影响一段区间(可用两个数字表示区间头尾) 那么就想到了离散化 我和网上题解的离散方式不同 我的更暴力更无脑- -b 为了保证区间连续性 不能只在线段树原创 2014-07-14 23:30:41 · 1141 阅读 · 0 评论 -
ZOJ 2112 Dynamic Rankings
题意: 允许单点修改的区间第K值为题 思路: 树状数组套主席树 详见注释 按照kuangbin大神的代码学习 虽然还是理解得不透彻TAT 代码: //树状数组套主席树 #include #include #include using namespace std; #define N 60010 //数组和哈希表大小 #define M 10010 //操作数 #de原创 2014-07-28 20:25:25 · 1219 阅读 · 0 评论 -
ZOJ 3430 Pizza schedule
题意: 给你一串编码后的单词和一篇文章 问 编码前文章中出现了几个单词 思路: 根据题意反编码 然后AC自动机跑一下 转化字符时候注意长度 因为可能转换出'\0' 所以转完后再求strlen会出错 注意 ZOJ的char默认是signed char 所以转码后要么存在unsigned char数组里 要么用int数组存 否则会错的!! 因为signed char无法表示128+的数字!!原创 2014-07-18 20:52:23 · 1004 阅读 · 0 评论 -
ZOJ 2334 HDU 1512 Monkey King
题意: 猴子们打架 认识的猴子不会打架 两只猴子打完以后就认识了 A认识B B认识C A也认识C 每次打架由两伙猴子进行 分别选出自己的最高战斗力 在战斗之后两只猴子战斗力减半 给出m次打架 输出打架后这一伙猴子里的最强战斗力 思路: 判断两只猴子是不是一伙的 用到并查集 快速找出一伙猴子中的最强战斗力用到堆 但打完架两伙猴子合并时堆需要nlogn复杂度 因此用左偏树代替堆原创 2014-07-16 15:54:37 · 1140 阅读 · 0 评论 -
ZOJ 2362 Beloved Sons
题意: 将男孩和女孩配对 让月老开心度最高 (我把题目改得真洋气…) 思路: KM不解释… 代码: #include #include #include #define oo 99999999 #define M 410 using namespace std; int t,n,m,ans; int link[M],visx[M],visy[M],val[M][M],原创 2014-03-26 19:48:52 · 812 阅读 · 0 评论 -
ZOJ 1992 Sightseeing Tour
题意: 判断混合图欧拉回路 思路: (欧拉回路整理 参考 http://zhyu.me/acm/zoj-1992-and-poj-1637.html 和 http://blog.csdn.net/zxy_snow/article/details/6230223) 1.无向图:图连通,且图中均为偶度顶点。 2.有向图:图连通,且图中所有顶点出入度相等。 3.混合图:混合原创 2014-03-26 19:25:21 · 803 阅读 · 0 评论 -
ZOJ 3602 Count the Trees
题意: 有两棵树 问原创 2014-04-04 16:46:23 · 710 阅读 · 0 评论 -
ZOJ 3606 Lazy Salesgirl
题意: n(10^5)个客人来到商店 给出了来的时间和买东西的单价 售货员每隔w分钟会睡觉 如果客人来的时候她在睡觉就把她叫醒但是不买东西 买东西的客人的购买个数为1、2、3、1、2、3…循环 问 w为多大时 卖出的东西平均价格最高 思路: 容易想到将客人按来的时间排序 然后算出他们的间隔时间 w必为其中某个间隔时间 即枚举n个w的可能 如果我们将间隔排序 那么对于某原创 2015-01-24 12:56:40 · 920 阅读 · 0 评论