
FZU
文章平均质量分 61
JeraKrs
本人目前就职于百度商业研发部,有需要内推的朋友简历可发我邮箱 jerakrs@qq.com
展开
-
fzu 1912 Divisibility by Thirty-six(数论+枚举)
题目链接:fzu 1912 Divisibility by Thirty-six题目大意:给出一串数字,从中任选n个数字组成一个n位数可以被36整除。(0也算符合条件)解题思路:首先36可以拆分成9*4,然后根据列举9的倍数可以发现,凡是可以整除9的数,各个位上数字之和一定是9的倍数。这样就可以反向推到,只要剔除若干个数字,使得原有序列数值之和保证为9的倍数既可以满足说可以原创 2013-12-06 15:36:17 · 1558 阅读 · 0 评论 -
fzu 2110 Star(枚举)
题目链接:fzu 2110 Star题目大意:给出若干的点,计算出用这些点可以组成的锐角三角形的个数。解题思路:枚举三个点,然后按照向量相乘大于0作为锐角来考虑。#include #include typedef long long ll;const int N = 105;struct point { ll x, y; void get() {原创 2013-12-13 18:30:32 · 1148 阅读 · 0 评论 -
fzu 2112 Tickets(欧拉道路)
题目链接:fzu 2112 Tickets题目大意:给出n和m,表示有n个城市和m张票,现在要进行一场旅行,要求将所有的票使用掉,问还需要自己买几张票。解题思路:欧拉道路的题目,只要输入中出现的城市才需要去考虑它的度数,并且要考虑说两个图是否联通。我的做法是,读入数据的时候,标记出现过的点,并且记录每个点的度数,并查集记录点属于哪一个集合。然后首先保证每个子原创 2013-12-14 12:09:42 · 1398 阅读 · 0 评论 -
fzu 1050 Number lengths
题目链接:fzu 1050 Number lengths题目大意:计算n!有多少位数。解题思路:ans = log10(n!) =原创 2013-12-14 23:38:32 · 1269 阅读 · 0 评论 -
fzu 2103 Bin & Jing in wonderland(组合数学)
题目连接:fzu 2103 Bin & Jing in wonderland题目大意:给出n,k和r,表示有n种礼物,可以抽取k次礼物,要挑选r个礼物送人。然后给出n种礼物被抽中的概率,以及想要送得礼物序号。注意,抽取礼物之后只能按照礼物的标号从大到小排序后选后r个送人。例如,想要送1,1,2这样的情况,可以抽取4次。那么就只有抽取3个1和1个2的情况才可以,否则抽取两个2的话排序后即原创 2013-12-14 23:49:53 · 1713 阅读 · 0 评论 -
fzu 2138 久违的月赛之一 && 2139 久违的月赛之二
题目链接:2138 久违的月赛之一题目链接:2139 久违的月赛之二题目大意:略。解题思路:一份代码水过两题,注意ans = 0的情况就好了。#include #include using namespace std;int n, num[5], sum;int solve() { sum -= 2 * n; if (sum < 0)原创 2013-12-16 23:25:30 · 1375 阅读 · 0 评论 -
fzu 2140 Forever 0.5(推理)
题目链接:fzu 2140 Forever 0.5题目大意:给出n,要求找出n个点,满足:1)任意两点间的距离不超过1;2)每个点与(0,0)点的距离不超过1;3)有n对点之间的距离刚好为1;4)n个点组成的多边形面积大于0.5;5)n个点组成的多边形面积小于0.75;解题思路:其实题目的样例是由误导性的,只要以原点为顶点,做一个边长为1的等边三角形,然原创 2013-12-22 18:55:06 · 1557 阅读 · 1 评论 -
fzu 2148 Moon Game(暴力+几何)
题目链接:fzu 2148 Moon Game题目大意:给出n个点,判断可以组成多少个凸四边形。解题思路:因为n很小,所以直接暴力,判断是否为凸四边形的方法是:如果4个点中存在某个点D,Sabd + Sacd + Sbcd = Sabc,则说明是凹四边形。#include #include #include const int N = 50;struc原创 2013-12-22 18:59:34 · 1522 阅读 · 0 评论 -
fzu 2146 Easy Game & 2147 A-B Game & 2151 OOXX Game(水题)
题目链接:fzu 2146 Easy Game 题目连接:fzu 2147 A-B Game题意略。2146#include #include const int N = 10100;const char sign[2][N] = {"Even", "Odd"};int main () { char str[N]; int cas;原创 2013-12-22 19:08:04 · 1496 阅读 · 0 评论 -
fzu 2144 Shooting Game(贪心区间覆盖)
题目链接:fzu 2144 Shooting Game题目大意:在立体的空间上,有n只蚊子,给出蚊子的坐标,以及蚊子的移动方向(向量的方式给出), 然后人的攻击范围为半径为r的球体。问说人最多可以打几只蚊子,以及需要花多少时间。解题思路:对于每只蚊子计算进入攻击范围的时间和离开攻击范围的时间,注意有可能不进入攻击空间,计算区间可以设一个k然后解方程求出区间,然后对求出的区间原创 2013-12-23 00:02:48 · 1722 阅读 · 0 评论 -
fzu 2150 Fire Game(BFS)
题目链接:fzu 2150 Fire Game题目大意:有一块空地上有些草堆‘#’,两个小伙伴想要在这片地上玩耍,然后就要烧掉这些草堆,相邻的草堆可以相互引燃,两个人可以分别选择一块草堆点燃,问说最少需要多少时间才能烧光草堆(每人只能点一次)解题思路:枚举两个位置同时做为起点,然后BFS,注意有一个坑点就是说草堆的个数少于2的时候,枚举不到两个起点,但是是可以烧光草堆的。原创 2013-12-23 00:03:14 · 2268 阅读 · 0 评论 -
fzu 1963 交通建设(kruskal)
题目链接:fzu 1963 1963 交通建设题目大意:略。解题思路:kruskal的变形,外填一个汇点0,将建造飞机场看成是于0点建立一条边,费用为一个飞机场的价格。然后就是裸的kruskal算法,不过要注意的是如果只有一个点与0点相连,那么就要判断该点的飞机场是否为必须建立的,如果不为必须建立的则要减掉。#include #include #incl原创 2014-03-29 20:28:23 · 1728 阅读 · 0 评论 -
fzu 1901 Period II(KMP)
题目链接:fzu 1901 Period II题目大意:给出一个字符串,要求找出所有的p,使得说s[i] = s[i+p] (i 解题思路:其实就是求所有的前缀后缀串,p = n, 然后一直循环p = jump[p]; 直到p = 0,其他的p值,n - p都是答案。#include #include const int N = 1e6+5;in原创 2014-03-19 22:50:54 · 1576 阅读 · 0 评论 -
fzu 2136 取糖果(线段树)
题目链接:fzu 2136 2136 取糖果题目大意:略。解题思路:线段树区间合并。将袋子按照个数排序,每次将最小的放入线段树,如果当前连续的个数超过区间,那么说明最小值即为最后加入的袋子糖果个数。#include #include #include #include using namespace std;const int maxn = 1e5 + 5;#原创 2014-10-23 19:14:40 · 967 阅读 · 0 评论 -
fzu 2107 Hua Rong Dao(回溯)
题目链接:fzu 2107 Hua Rong Dao题目大意:给出n(1≤n≤4)然后在一个n * 4的格子上放矩形,必须放一个2*2的(为题目背景下的曹操),然后剩余的位置要用三种矩形拼接。解题思路:先枚举曹操的位置,然后用回溯的方式枚举出所有可能,计算总数。#include #include const int N = 10;const int d原创 2013-12-13 18:26:07 · 1204 阅读 · 0 评论 -
fzu 2102 Solve equation(水题)
题目连接:fzu 2102 Solve equation题目大意:给出数a,b和进制bas,a和b都是bas进制的数,现在要计算十进制数k和d ,使得a = k * b + d。解题思路:将a和b转换成十进制数,然后k = a / b, d =a - (a/b) * b.#include #include const int N = 100;int b原创 2013-12-13 18:17:37 · 1230 阅读 · 0 评论 -
fzu 1909 An Equation(水题)
题目链接:fzu 1909 An Equation典型的签到题。#include #include bool judge(int *a, int sum) { for (int i = 0; i < 4; i++) { for (int j = i + 1; j < 4; j++) if (sum == (a[i] + a[j]) * 2) return原创 2013-12-04 23:04:41 · 1973 阅读 · 0 评论 -
fzu 2034 Password table(水题)
题目链接:fzu 2034 Password table题目大意:给出一个密码表,然后根据后面给出的坐标输出相应的值。解题思路:略。#include #include const int N = 20;int n, m, q;char g[N][N][100];void init() { memset(g, 0, sizeof(g)); s原创 2013-12-11 19:55:11 · 1061 阅读 · 0 评论 -
fzu 1911 Construct a Matrix(矩阵快速幂+规律)
题目链接:fzu 1911 Construct a Matrix题目大意:给出n和m,f[i]为斐波那契数列,s[i]为斐波那契数列前i项的和。r = s[n] % m。构造一个r * r的矩阵,只能使用-1、0、1。使得矩阵的每行每列的和都不相同,输出方案,不行的话输出No。解题思路:求r的话用矩阵快速幂求,每次模掉m,{ {1, 1, 0}, {1, 0, 0},原创 2013-12-04 23:24:20 · 1810 阅读 · 0 评论 -
fzu 1913 Easy Comparison(字符串)
题目链接:fzu 1913 Easy Comparison题目大意:给出一个字符串,计算与它按照字典序排序排列后的字符串有多少个位置不同。解题思路:水体,sort一下,然后遍历一遍就好。#include #include #include using namespace std;const int N = 105;char str[N], tmp原创 2013-12-04 23:28:15 · 1308 阅读 · 0 评论 -
fzu 1920 Left Mouse Button(dfs)
题目链接:fzu 1920 Left Mouse Button题目大意:给出一张图,数字代表说周围8个位置有多少个地雷’@‘,然后根据扫雷的规则,点在0的位置话,会将一片连在一起的0全部显示出来,外加0的周围一圈。问说最少要多少步可以点完所有没有泪的位置。解题思路:遍历图,碰到’0‘的时候用dfs搜索将一片整体的全标记起来。然后最后在计算没有标记且不是雷的位置的个数,加上前原创 2013-12-04 23:38:55 · 1205 阅读 · 0 评论 -
fzu 1894 志愿者选拔(双端队列)
题目链接:fzu 1894 志愿者选拔题目大意:中文题不解释。解题思路:第一次做双端队列的题目,就是维护队列按照从大到小的。然后队列中的每个元素有一个key值,是元素入队的顺序,然后每次加入一个元素的时候,要将队尾所有比该元素小的全部删除,放入该元素。#include #include #include using namespace std;con原创 2013-12-04 23:56:37 · 1260 阅读 · 0 评论 -
fzu 2037 Maximum Value Problem(递推)
题目链接:fzu 2037 Maximum Value Problem题目大意:给出n,然后有一个长度为n的序列,元素由1~n组成,现在有一个Max = 0,问说计算所有排列可能的序列需要更新多少次Max。列如:但n = 2的时候,存在序列s1 = { 1, 2}, 和序列s2 = {2, 1}, f1 = 2, f2 = 1, 所以ans = 3。并且要输出p[i] = f[i] /原创 2013-12-11 20:09:08 · 1068 阅读 · 0 评论 -
fzu 2038 Another Postman Problem(递归求解)
题目链接:fzu 2038 Another Postman Problem题目大意:给出n, 然后给出n - 1条边,保证图联通,计算每个点到其他所有点的路径总和的和。解题思路:一开始想到Floyd算法求出所有点点之间的最短路,但是o(n^3)的复杂度太高了;后来想到说用枚举起点后直接用BFS去计算距离,可是o(n^2)还是超时。后来灵光一闪,发现可以枚举每条边走过的次数,原创 2013-12-11 20:31:58 · 1332 阅读 · 2 评论 -
fzu 2039 Pets(网络流最大流)
题目大意:fzu 2039 Pets题目大意:给出n和m,代表有n个人和m只狗,然后给出t表示t个关系,每个关系给出a b,表示第a个人不会买第b条狗。问说商店最多卖出多少条狗。解题思路:网络流的最大流问题,增广路算法,不同的是建图的过程,每新增一条关系就会删除一条边儿不是增加一条边。#include #include #include using na原创 2013-12-11 20:41:48 · 1159 阅读 · 0 评论 -
fzu 1914 Funny Positive Sequence
题目链接:fzu 1914 Funny Positive Sequence题目大意:给出n,以及长度为n的数列a[i],现在以每个i为起点,计算d[i][j]表示以i为起点,计算后面j个数的和(如果i + j超过n,从1开始继续计算)问有几个i满足d[i][j](1≤j≤n)均大于0。解题思路:这题还是有点技巧的,从数组的后面枚举,碰到a[i] ≤ 0,就开始往前叠加,凡是原创 2013-12-05 19:40:53 · 1568 阅读 · 0 评论 -
fzu 2035 Axial symmetry(枚举+几何)
题目链接:fzu 2035 Axial symmetry题目大意:给出n个点,表示n边形的n个顶点,判断该n边形是否为轴对称图形。(给出点按照图形的顺时针或逆时针给出。解题思路:将相邻两个点的中点有序的加入点集,即保证点是按照图形的顺时针或逆时针出现的,然后枚举i和i + n两点的直线作为对称轴。判断其他所有点是否对称即可。#include #include原创 2013-12-12 13:04:39 · 1309 阅读 · 0 评论 -
fzu 2104 Floor problem(水题)
题目链接:fzu 2104 Floor problem题目大意:给出n,l和r, 计算∑(l≤i≤r)floor(n/i).解题思路:直接遍历l到r。#include #include #include int main () { int cas, n, L, R; scanf("%d", &cas); while (cas--) { scan原创 2013-12-13 18:21:15 · 1150 阅读 · 0 评论 -
fzu 2111 Min Number(贪心)
题目链接:fzu 2111 Min Number题目大意:给出一个数num,然后可以进行m次交换(即可以交换不同位数上的数),使得新的数越小。(0不能放在第一位)解题思路:贪心,每次把最小的数字换到尽量前的位置,第一位特殊处理。#include #include const int N = 1005;int m;char num[N];void原创 2013-12-13 18:42:22 · 1250 阅读 · 0 评论 -
fzu 2082 过路费(树链剖分)
题目链接:fzu 2082 过路费题目大意:略。解题思路:树链剖分裸题。#include #include #include using namespace std;const int maxn = 50005;typedef long long ll;#define lson(x) ((x)#define rson(x) (((x)int val[maxn原创 2014-10-17 18:48:05 · 855 阅读 · 0 评论