
ZOJ
JeraKrs
本人目前就职于百度商业研发部,有需要内推的朋友简历可发我邮箱 jerakrs@qq.com
展开
-
zoj 3758 Singles' Day(暴力)
题目链接:zoj 3758 Singles' Day题目大意:给出bas和n,表示有一个bas进制的数,从各位开始n个位均为1,问说这个数是否为质素。解题思路:一看16^17-1就慌了,不够后来想想很水,总共才16^2个数,而且大部分不是素数。所以直接暴力判断是否为素数,注意要用unsigned long long。#include #include ty原创 2014-03-02 20:49:41 · 1578 阅读 · 0 评论 -
zoj 3820 Building Fire Stations(二分+bfs)
题目链接:zoj 3820 Building Fire Stations题目大意:给定一棵树,选取两个建立加油站,问说所有点距离加油站距离的最大值的最小值是多少,并且任意输出一种建立加油站的方式。解题思路:二分距离判断,判断函数的复杂度是o(n),这样的复杂度应该是o(nlogn),即使常数系数偏大,但是居然跑了4.5s,也是醉了。判断函数里面做了3次bfs,但是每次bfs节点原创 2014-10-13 09:08:23 · 1676 阅读 · 0 评论 -
zoj 3829 Known Notation(贪心)
题目链接:zoj 3829 Known Notation题目大意:给定一个不完整的后缀表达式,要求有2种不同操作,用尽量少的操作使得表达式完整。解题思路:贪心,数字的个数要要保证比∗的个数多1,不够的话优先补在开头是最优的。然后遍历一遍字符串,碰到数字+1,碰到∗-1,保证数字的个数大于等1,如果不够减的话,可以和最后面的一个数字交换位置(用栈维护十分方便),因为添加和交换代价都是原创 2014-10-13 09:36:33 · 1966 阅读 · 0 评论 -
zoj 3823 Excavator Contest(构造)
题目链接:zoj 3823 Excavator Contest题目大意:一个人开着挖掘机要在N∗N的格子上面移动,要求走完所有的格子,并且转完次数要至少为n∗(n−1)−1次,并且终点和起点必须都在边界上。解题思路:构造,因为终点和起点必须在边界上,进去的同时得留出一条路径出来。奇数偶数奇数的情况分两种(图上两点所代表的正方形构造方式是一样的,即13,9为一原创 2014-10-14 00:04:12 · 2367 阅读 · 2 评论 -
zoj 3826 Hierarchical Notation(模拟)
题目链接:zoj 3826 Hierarchical Notation题目大意:给定一些结构体,结构体有value值和key值,Q次询问,输出每个key值对应的value值。解题思路:思路很简单,写个类词法的递归函数,每次将key值映射成一个hash值,用map映射每个key的value起始终止位置,预处理完了查询就很简单了。这题是最后10分钟出的,因为没有考虑value为{}原创 2014-10-13 09:22:31 · 2657 阅读 · 6 评论 -
zoj 3822 Domination(dp)
题目链接:zoj 3822 Domination题目大意:给定一个N∗M的棋盘,每次任选一个位置放置一枚棋子,直到每行每列上都至少有一枚棋子,问放置棋子个数的期望。解题思路:大白书上概率那一张有一道类似的题目,但是因为时间比较久了,还是稍微想了一下。dp[i][j][k]表示i行j列上均有至少一枚棋子,并且消耗k步的概率(k≤i∗j),因为放置在i+1~n上等价与放在i+1行上原创 2014-10-13 09:16:51 · 1147 阅读 · 0 评论 -
zoj 3827 Information Entropy(水题)
题目链接:zoj 3827 Information Entropy题目大意:三种底,计算和。解题思路:调用库函数就可以直接算了,不过要注意Pi = 0的时候,不过它题目里居然也讲了。。。limp→0+plogb(p)=0,因为p是logp的高阶。#include #include #include #include using namespace std;int原创 2014-10-13 09:29:01 · 1015 阅读 · 0 评论 -
zoj 3871 Convex Hull(凸包)
题目链接:zoj 3871 Convex Hull枚举每条边,计算出有多少情况下为凸包的边界,即有多少点在该边的左边。#include #include #include #include #include #include using namespace std;typedef pair pii;typedef long long ll;const d原创 2015-08-31 23:41:02 · 1597 阅读 · 0 评论 -
zoj 3891 K-hash(后缀自动机)
题目链接:zoj 3891 K-hash代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long long ll;const int maxn = 50005;const int maxm = 35;const int SIGMA_SIZE = 10;struct S原创 2015-11-06 22:00:15 · 1084 阅读 · 0 评论 -
zoj 3913 Bob wants to pour water(二分)
题目链接:zoj 3913 Bob wants to pour water解题思路二分高度,判断容量。代码#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;const int maxn = 1e5 + 5;const double eps = 1e-8;co原创 2015-10-22 19:09:32 · 570 阅读 · 0 评论 -
zoj 3911 Prime Query(线段树)
题目链接:zoj 3911 Prime Query代码#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;const int maxn = 1e6 + 5;const int maxm = 1e7;#define lson(x) ((x)<<1)#defin原创 2015-10-22 19:11:59 · 588 阅读 · 0 评论 -
zoj 3908 Number Game(STL)
题目连接:zoj 3908 Number Game代码#include <cstdio>#include <cstring>#include <set>#include <vector>#include <algorithm>using namespace std;typedef long long ll;typedef multiset<int>::iterator iter;int原创 2015-10-22 19:13:55 · 557 阅读 · 0 评论 -
zoj 3905 Cake(状压dp)
题目链接:zoj 3905 Cake代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 805;struct State { int a, b; State (int a = 0, int b = 0): a(a), b(b) {} b原创 2015-10-22 19:15:45 · 844 阅读 · 0 评论 -
zoj 3901 Ant(计数)
题目链接:zoj 3901 Ant代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long long ll;const int mod = 1e9+7;ll pow_mod(ll x, int n) { ll ret = 1; while (n) {原创 2015-10-22 19:17:21 · 666 阅读 · 0 评论 -
zoj 3732 Graph Reconstruction(构造)
题目链接:zoj 3732 Graph Reconstruction解题思路用贪心的方式取构造即可。代码/* hdu4797 */#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef pair<int,int> pii;const int maxn = 105;int N, E,原创 2015-11-14 21:29:49 · 814 阅读 · 0 评论 -
zoj 3819 Average Score(水题)
题目链接:zoj 3819 Average Score题目大意:给定两个集合A,B,现在将A中一个元素x移动到B中,导致两个集合中的元素平均值均变大,求x的取值范围。解题思路:列两个不等式求解,注意平均值必须增大。#include #include #include using namespace std;int N, M, A, B;int main () {原创 2014-10-13 08:54:55 · 1275 阅读 · 0 评论 -
zoj 3511 Cake Robbery(线段树)
题目链接:zoj 3511 Cake Robbery题目大意:就是有一个N边形的蛋糕,切M刀,从中挑选一块边数最多的,保证没有两条边重叠。解题思路:有多少个顶点即为有多少条边,所以直接按照切刀切掉点的个数排序,然后用线段树维护剩下的还有哪些点。#include #include #include #include using namespace std;const原创 2014-10-13 09:46:23 · 1020 阅读 · 0 评论 -
zoj 3494 BCD Code(AC自动机+数位dp)
题目链接:zoj 3494 BCD Code题目大意:给定n个2进制串,然后有一个区间l,r,问说l,r之间有多少个数转换成BCD二进制后不包含上面的2进制串。解题思路:AC自动机+数位dp。先对禁止串建立AC自动机,所有的单词节点即为禁止通行的节点。接着进行数位dp,dp[i][j]表示第i为移动到节点j的可行方案数,每次枚举下一位数字,因为是BCD二进制,所以每位数要一原创 2014-11-13 20:23:18 · 1462 阅读 · 0 评论 -
zoj 3761 Easy billiards(建图+贪心+dfs)
题目链接:zoj 3761 Easy billiards题目大意:在一个平面上,有若干个球,给出球的坐标,每次可以将一个球朝另一个球打过去(只有上下左右),碰到下一个球之后原先的球停下来,然后被撞的球朝这个方向移动,直到有一个球再也撞不到下一个球后,这个球飞出。问说最少平面上剩几个球,并且给出打球的方案。解题思路:对于每个球,最多有4个边,上下左右,将它与每个方向上最近的那原创 2014-03-02 20:59:15 · 1317 阅读 · 0 评论 -
zoj 3809 The Himalayas(水题)
题目链接:zoj 3809 The Himalayas题目大意:给定一个序列,问说有多少位置满足,Hi−1Hi>Hi+1解题思路:遍历一遍判断即可。#include #include #include using namespace std;const int maxn = 105;int n, arr[maxn];int main () { int原创 2014-09-08 14:13:44 · 920 阅读 · 0 评论 -
zoj 3810 A Volcanic Island(构造)
题目链接:zoj 3810 A Volcanic Island题目大意:给定n,要求用n块面积为n的拼图铺满n∗n的矩阵,任意两块拼图形状不能相同(包括旋转和镜像),并且n块拼图只能有4中颜色,相邻两块拼图颜色不能相同。解题思路:构造,n = 2,3,4时是不存在的。然后对于n >= 5的直接构造,具体看代码。注意这种构造方式构造6的时候会出现相同的拼图,所以特判。#inclu原创 2014-09-08 14:18:59 · 1340 阅读 · 0 评论 -
zoj 3811 Untrusted Patrol(BFS+并查集)
题目链接:zoj 3811 Untrusted Patrol题目大意:给定n,m,k,表示有n个仓库,m条通道,k个传感器,现在给定n个传感器的位置和m条通道,现在要最这n个仓库进行巡逻,要求一次进过给定具有传感器的仓库,每个仓库经过的次数不限,单要求至少进过1次。解题思路:首先判断是否为联通图,不连通的话肯定到不了。其次判断l是否等于k,如果不等于的话,说明至少有一个仓库到不了,原创 2014-09-08 14:37:31 · 1318 阅读 · 0 评论 -
zoj 3816 Generalized Palindromic Number(暴力枚举)
题目链接:zoj 3816 Generalized Palindromic Number题目大意:给定n,找一个最大的数x,保证x小于n,并且x为palindromic number解题思路:枚举前i个放于n相同的数,然后去构造后半部分即可。#include #include #include using namespace std;typedef unsigned原创 2014-09-08 15:10:01 · 1047 阅读 · 0 评论 -
zoj 3818 Pretty Poem(暴力枚举)
题目链接:hdu 3818 Pretty Poem题目大意:给定一个字符串,忽略标点符号,考虑是否押韵,即为ABABA或者ABABCAB形式。解题思路:暴力枚举A,B的长度,判断即可, 注意A,B,C非空,并且不相同。#include #include #include using namespace std;int n;char s[105];bool ch原创 2014-09-08 15:16:23 · 804 阅读 · 0 评论 -
zoj 3813 Alternating Sum(线段树)
题目链接:zoj 3813 Alternating Sum题目大意:给定一个P,S是以P为循环的无限串,定义G(i,j),现在有两种操作:1 x d;将P中x的位置变为d2 l r:查询S中l-r之间所有的G(i, j)的和解题思路:线段树的区间查询点修改。根据G(i,j)的公式可以推导出:每次查询l~r这段区间的答案为:奇数:sl∗len+sl+2∗(len−原创 2014-09-10 11:11:39 · 1424 阅读 · 0 评论 -
zoj 3814 Sawtooth Puzzle(隐式图搜索)
题目链接:zoj 3814 Sawtooth Puzzle题目大意:给定一个9宫拼图,每次可以挑选一个位置顺时针旋转,和普通拼图不一样的是每块拼图周围可能有齿转动一个可能导致全部拼图转变。解题思路:隐式图搜索,9块拼图最多49个状态,对于每个状态枚举转动的位置,考虑转动的状态。一开始转移是用bfs写的,但是由于频繁申请队列,然后时间爆了#include #include #原创 2014-09-10 11:24:56 · 1019 阅读 · 0 评论 -
zoj 3812 We Need Medicine(01背包)
题目链接:zoj 3812 We Need Medicine题目大意:有n中化学成分,每种成分要么选取重量Wi,获得Ti的TEV值,要么不取,获得0的TEV值。现在对于每种病毒,要求配置质量为Mi的药物,并且TEV值为Si,求化学成分组成。解题思路:看了别人的题解,以前居然不知道背包转移可以用二进制。因为质量总共才50,所以用一个long long的二进制数表示说哪原创 2014-09-10 17:19:34 · 1150 阅读 · 0 评论 -
zoj 3817 Chinese Knot(hash+暴力)
题目链接:zoj 3817 Chinese Knot题目大意:给出四个字符串,对应着同心结的四条边,现在给定一个目标串,可以从任意节点开始移动,问是否可以匹配目标串。解题思路:用hash将四个字符串的正序和逆序处理出来,然后dfs枚举,每次保留起始位置和移动方向即可。#include #include #include #include using namespace原创 2014-09-10 20:28:07 · 1553 阅读 · 0 评论 -
zoj 3806 Incircle and Circumcircle(二分)
题目链接:zoj 3806 Incircle and Circumcircle题目大意:给定三角形的内接圆半径和外切圆半径,求三角形的三边长。解题思路:以等腰三角形去构造,确定外切圆半径的时候,内切圆半径的范围为0−3‾‾√R,二分判断即可。#include #include #include #include using namespace std;double原创 2014-08-31 21:56:09 · 936 阅读 · 0 评论 -
zoj 3430 Detect the Virus(AC自动机)
题目连接:zoj 3430 Detect the Virus题目大意:给定一个编码完的串,将每一个字符对应着表的数值转换成6位二进制,然后以8为一个数值,重新形成字符串,判断给定询问串是否含有字符集中的串。解题思路:主要是题意,逆编码部分注意,转换完了之后,可能有字符'\0',所以不能用字符串的形式储存,要用int型的数组。注意有相同串的可能。#include原创 2014-11-08 23:30:08 · 1234 阅读 · 0 评论 -
zoj 1610 Count the Colors(线段树)
题目链接:zoj 1610 Count the Colors题目大意:给定一段区间,进行N次操做,每次为一段区间涂上一种颜色,最后输出每种颜色占的长度。解题思路:线段树维护,最后在一一查询计数。#include #include #include using namespace std;const int maxn = 8005;#define lson(x) (原创 2014-10-24 00:12:58 · 1209 阅读 · 0 评论 -
zoj 3228 Searching the String(AC自动机)
题目连接:zoj 3228 Searching the String题目大意:给定一个字符串,然后现在有N次询问,每次有一个type和一个子串,问说子串在字符串中出现几次,type为0时为可重叠,为1时为不可重叠。解题思路:不过没有type=1的限制,那么就是普通的AC自动机匹配问题,对于不可重叠问题,可以对于每个节点记录一下上一次匹配到的pos,用当前匹配的i减掉原创 2014-11-10 20:46:43 · 1092 阅读 · 0 评论 -
zoj 3914 Semantic Version(模拟)
题目链接:zoj 3914 Semantic Version代码#include <cstdio>#include <cstring>#include <vector>#include <string>#include <algorithm>using namespace std;const int maxn = 100;int P, N;char a[maxn], b[maxn];v原创 2015-10-29 14:59:56 · 712 阅读 · 3 评论