- 博客(67)
- 收藏
- 关注
原创 两仪剑法
#include <iostream>using namespace std;long long gcd(long long a,long long b) { if(b==0){ return a; } return gcd(b,a%b);}int main(){ int n; cin >> n; while (n--) { long long...
2018-05-06 17:27:09
591
原创 关押罪犯
#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int MAX_N=1e+5;struct node{ int a,b,c;};int fa[MAX_N];node crime[MAX_N];bool cmp(node a,node b){...
2018-05-05 19:47:19
337
原创 两数之和
给定一个包含n个整数的数组a,保证每个数字不重复,从中取出两个不等数,使得他们的值为s,求一共有几种不同的方案。输入 :n,s输出:满足条件的方案数、#include <iostream>#include <algorithm>using namespace std;const int MAX_N = 1e6+10;long long n,s;long long num[M...
2018-05-01 19:21:04
380
原创 节点最近公共祖先
问题描述树是一种很常见的数据结构。现在蒜头君面临一个问题,在一个有 n 个节点的树上,节点编号分别是1…n。蒜头想知道一些节点之间的最近公共祖先是那些节点。 输入格式 第一行输入一个整数 n(2≤n≤10,000),表示树上有 n 个节点。 接下来的 n−1 行,每行输入俩个整数 a,b(1≤a,b≤n)代表节点 a,b 之间有一条 a 到 b 边,a 是 b 的父亲。 接下来输入一个整数 q,代...
2018-04-23 21:40:02
566
原创 连线问题
问题描述蒜头君和花椰菜君经常出难题考对方。一天,花椰菜君给蒜头君出了这样一道难题:花椰菜君在坐标系上随机画了 N 个点,然后让蒜头君给点之间连线,要求任意两点之间都是连通的,且所连的线段长度之和最小。聪明的你快来帮蒜头君解决一下吧。 输入格式 第一行输入一个整数 N(1≤N≤100),表示花椰菜君一共画了 N 个点。然后输入 N 行,每行输入两个整数 x,y(0≤x,y≤1,000),代表一个点的...
2018-04-23 21:38:18
771
原创 布设光纤
#include <iostream>#include <cstring>using namespace std;const int MAX_N = 1000;const int MAX_M = 100000;struct edge { int v, next; int len;} E[MAX_M];int p[MAX_N], eid;bool used[MAX...
2018-04-23 21:36:04
461
原创 穿越雷区
蒜头君最近迷上了一款 RPG 游戏,这次他要去森林里的 nn 个宝藏点收集宝藏,编号从 11 到 nn。森林里有 mm 条道路连接宝藏点,每条道路上都有数量不等的地雷,蒜头君想从中找出若干条道路,使得任意两个宝藏点都是连通的,这样蒜头君都能访问到每个宝藏点了。另外,每当遇到一个地雷,蒜头君会减少一定的血量。现在蒜头君知道了这 mm 条道路上的地雷数,蒜头君希望挑选若干条道路,使得挑选出的道路,地雷...
2018-04-22 20:12:16
403
原创 网络延时
某计算机网络中存在 nn 个路由,每个路由代表一个子网。路由之间有 n - 1n−1 条互通关系,使得这 nn 个网络之间任意两个网络都可以直接联通,或者通过其他网络间接连通。为了测试组建的网路的性能,假设相邻的路由之间的数据传输需要一单位时间,现在需要知道任意两个路由之间传输数据最多需要多长时间。输入格式第一行一个整数 n(2 \le n \le 50000)n(2≤n≤50000) 表示网络中...
2018-04-22 17:53:16
464
原创 昆虫的生活
一天蒜头君正在研究一种稀有昆虫的性行为。他们具有两种不同的性别,他假设他们只与异性昆虫互动。因为他们背上都印有数字,所以他们之间的一起互动,在实验室是很容易识别的。现在给出一些昆虫之间的互动,看看实验是否支持蒜头君的假设--只有异性互动。输入格式第一行输入两个整数 nn (1 \le n \le 2000)(1≤n≤2000) , mm(1 \le m \le 10^6)(1≤m≤106)。其中 ...
2018-04-19 20:52:42
407
原创 判定欧拉回路
你学过一笔画问题么?其实一笔画问题又叫欧拉回路,是指在画的过程中,笔不离开纸,且图中每条边仅画一次,而且可以回到起点的一条回路。蒜头君打算考考你,给你一个图,问是否存在欧拉回路?输入格式第 11 行输入两个正整数,分别是节点数 N(1 < N < 1000)N(1<N<1000) 和边数 M(1 < M < 100000)M(1<M<100000);...
2018-04-08 21:50:55
320
原创 接龙
蒜头君在玩一种接龙的游戏,蒜头君有 3000030000张卡片分别放在 3000030000 列,每列依次编号为 1,2,...,300001,2,...,30000。同时,蒜头君也把每张卡片依次编号为 1,2,...,300001,2,...,30000。游戏开始,蒜头君让让第 ii 张卡片处于第 i(i = 1,2,...,30000)i(i=1,2,...,30000) 列。然后蒜头君会发出...
2018-04-08 20:57:41
332
原创 网络交友
在网络社交的过程中,通过朋友,也能认识新的朋友。在某个朋友关系图中,假定 A 和 B 是朋友,B 和 C 是朋友,那么 A 和 C 也会成为朋友。即,我们规定朋友的朋友也是朋友。现在要求你每当有一对新的朋友认识的时候,你需要计算两人的朋友圈合并以后的大小。输入格式第一行:一个整数 n(n\leq 5000)n(n≤5000),表示有 nn 对朋友认识。接下来 nn 行:每行输入两个名字。表示新认识...
2018-04-08 20:57:02
531
原创 带权并查集
void init(int n) { for(int i = 1; i <= n; i++) { fa[i] = i; dist[i] = 0; size[i] = 1; }}int get(int x) { if(fa[x] == x) { return x; } int y = fa[...
2018-04-07 17:13:51
176
原创 作文:美好一隅
美好一隅方圆几里内,一片茫茫的草地,一池清凉的潭水,在那平凡的一角,或许,就是美好一隅。和我在老家的街头走一走,初冬的夜晚。漫步在松柏树皮散落下的路上,静静地,聆听,轻缓悠闲的脚步声,我正要到田野的那头去,寻找有什么稀奇古怪地小花小草。透亮的月光,在夜空中打着旋儿,投下一波微光,我的影子,跳出在我身边,我不停地踪蹑着我的影子,却迟迟赶不上它。不知不觉地用衣袖刮到枝叶,回头,在清冷狭窄的一角,我不禁...
2018-04-05 19:43:34
5719
原创 美好的邂逅
蒜头君走在校园里,邂逅了一个美女,可是蒜头君胆怯了,并没有上前搭讪。回到宿舍的蒜头君越想越难过,好在室友提出了一个很好的办法,可以通过同学的同学的同学这样的关系,当同学的同学这样的关系叠加到足够大的时候,覆盖的人群也就会足够多,这样就能找到这个美女了,而且蒜头君的室友很肯定的说,最多隔 66 个人,就一定能找到这个美女,蒜头君有点不相信了,想验证一下室友的想法,他和室友一起对 NN 个人展开了调查...
2018-04-03 21:09:47
523
原创 威虎山上的分配
每年过年的时候,座山雕都会给兄弟们分银子,分银子之前,座山雕允许大伙儿发表意见,因为要是没法满足所有人的意见,指不定谁要搞出什么大新闻。不过每个人在提意见的时候只能说:“我认为 A 分的银子应该比 B 多!”。座山雕决定要找出一种分配方案,满足所有人的意见,同时使得所有人分得的银子总数最少,并且每个人分得的银子最少为 100100两。输入格式第一行两个整数 n,m(0<n\leq 10000...
2018-04-01 20:28:45
486
原创 蒜头君的训练室
蒜头君的训练室有 NN 个站点,另外有 MM 条单向边连接这些站点。第 ii 条路从 S_iSi 站到 E_iEi站,有高度为 H_iHi 的围栏,蒜头君是需要跳跃的。现在蒜头君们有 TT 个任务要完成。第 ii 个任务,蒜头君要从 A_iAi 站到 B_iBi 站,蒜头君想要他们路径中最高围栏尽可能小。请你确定这个高度。输入格式第一行输入三个整数 N, M, TN,M,T。(1\leq...
2018-03-28 21:36:38
601
原创 时光机
蒜头君生活的宇宙有 nn 个星球,有 mm 条虫洞。蒜头君发明了时光机,利用虫洞进行时光旅行。这 mm 条虫洞,第 ii 条虫洞能实现星球 a_iai到 b_ibi 的单向旅行。蒜头君发明的时光机不稳定,通过第 ii 条虫洞能够使得时间前进或者倒退 c_ici(c_i \ge 0ci≥0 表示前进,c_i < 0ci<0 表示倒退)。如果通过时光机能够让时间无限倒退,那么将会...
2018-03-25 19:46:05
1247
原创 骑车比赛
蒜头君准备去参加骑车比赛,比赛在 nn 个城市间进行,编号从 11 到 nn。选手们都从城市 11 出发,终点在城市 nn。已知城市间有 mm 条道路,每条道路连接两个城市,注意道路是双向的。现在蒜头君知道了他经过每条道路需要花费的时间,他想请你帮他计算一下,他这次比赛最少需要花多少时间完成。输入格式第一行输入两个整数 n, mn,m(1 \leq n \leq 1,000, 1 \leq m \...
2018-03-25 15:16:46
714
转载 Dijkstra最短路算法
#include <iostream>#include <cstring>using namespace std;const int N = 1e3 + 9;const int M = 1e4 + 9;const int inf = 0x3f3f3f3f;struct edge { int v, w, fail; edge() {} edge(int _v...
2018-03-25 15:14:59
248
原创 蒜头君的城堡之旅
蒜国地域是一个 nn 行 mm 列的矩阵,下标均从 11开始。蒜国有个美丽的城堡,在坐标 (n, m)(n,m)上,蒜头君在坐标 (1,1)(1,1) 的位置上。蒜头君打算出发去城堡游玩,游玩结束后返回到起点。在出发去城堡的路上,蒜头君只会选择往下或者往右走,而在返回的路上,蒜头君只会选择往上或者往左走,每次只能走一格。已知每个格子上都有一定数量的蒜味可乐,每个格子至多经过一次。现在蒜头君请你来帮...
2018-03-20 21:36:02
481
原创 过河
在一个夜黑风高的晚上,有 nn 个小朋友在桥的这边,现在他们需要过桥,但是由于桥很窄,每次只允许不超过两人通过,他们只有一个手电筒,所以每次过桥后,需要有人把手电筒带回来,第 ii 号小朋友过桥的时间为 a[i]a[i],两个人过桥的总时间为二者中时间长者。问所有小朋友过桥的总时间最短是多少。输入格式第一行输入一个整数 nn (1 \le n \le 1000)(1≤n≤1000) ,表示有 nn...
2018-03-19 21:49:37
606
原创 最长公共子序列
这次我们的问题非常简单,蒜头君有两个字符串 aa 和 bb,蒜头想知道两个字符串的最长公共子序列的长度。输入格式第一行输入一个字符串。第二行输入一个字符串。(字符串只包含字母,每个字符串长度不超过 10001000)输出格式输出二者的最长公共子序列的长度,占一行。#include <iostream>#include <cstring>#include <string...
2018-03-15 20:27:13
246
原创 跳木桩
第一行输入一个整数 nn 代表木桩个数。第二行输入 nn 个整数 h_1,h_2,h_3\cdots h_nh1,h2,h3⋯hn,分别代表 nn个木桩的高度。(1 \leq n \leq 1000,1 \leq h_i \leq 1000001≤n≤1000,1≤hi≤100000)输出格式输出一个整数,代表最多能踩到的木桩个数,占一行。#include <iostream>...
2018-03-14 21:45:01
648
原创 蒜头君的购物袋1
蒜头君去超市购物,他有一只容量为 VV 的购物袋,同时他买了 nn 件物品,已知每件物品的体积 v_ivi。蒜头君想知道,挑选哪些物品放入购物袋中,可以使袋子剩余的空间最小。输入格式第一行输入一个整数 VV(1 \leq V \leq 20,0001≤V≤20,000),表示购物袋的容量。第二行输入一个整数 nn(1 \leq n \leq 301≤n≤30),表示蒜头君购买的 nn 件物品。接...
2018-03-11 20:45:50
595
原创 蒜头君的新游戏
工作空闲之余,蒜头君经常带着同事们做游戏,最近蒜头君发明了一个好玩的新游戏:nn位同事围成一个圈,同事 A 手里拿着一个兔妮妮的娃娃。蒜头君喊游戏开始,每位手里拿着娃娃的同事可以选择将娃娃传给左边或者右边的同学,当蒜头君喊游戏结束时,停止传娃娃。此时手里拿着娃娃的同事即是败者。玩了几轮之后,蒜头君想到一个问题:有多少种不同的方法,使得从同事 A 开始传娃娃,传了 mm 次之后又回到了同事 A 手里...
2018-03-11 20:44:48
740
原创 杨辉三角
杨辉三角是二项式系数在三角形中的一种几何排列。它的每个数等于它上方两数之和,每行数字左右对称,由 11 开始逐渐变大。1 12 1 1 3 1 2 1 4 1 3 3 1 5 1 4 6 4 1 61 5 10 10 5 1请求出杨辉三角的第 nn 行,第 mm 项的数字是什么...
2018-03-11 20:44:08
309
原创 墙壁涂色
蒜头君觉得白色的墙面好单调,他决定给房间的墙面涂上颜色。他买了 33 种颜料分别是红、黄、蓝,然后把房间的墙壁竖直地划分成 nn 个部分,蒜头希望每个相邻的部分颜色不能相同。他想知道一共有多少种给房间上色的方案。例如,当 n = 5n=5 时,下面就是一种合法方案。由于墙壁是一个环形,所以下面这个方案就是不合法的。#include <iostream>using namespace s...
2018-03-11 20:43:07
463
原创 8数码问题
八方块移动游戏要求从一个含 88 个数字(用 1-81−8 表示)的方块以及一个空格方块(用 00表示)的 3 \times 33×3 矩阵的起始状态开始,不断移动该空格方块以使其和相邻的方块互换,直至达到所定义的目标状态。空格方块在中间位置时有上、下、左、右 44 个方向可移动,在四个角落上有 22 个方向可移动,在其他位置上有 33个方向可移动。例如,假设一个 3\times 33×3 矩阵的...
2018-03-08 20:43:36
785
原创 单向公路
某地区有许多城镇,但并不是每个城镇都跟其他城镇有公路连接,并且有的公路并不能双向行驶。现在我们把这些城镇间的公路分布及允许的行驶方向告诉你,你需要编程解决通过公路是否可以从一个城镇到达另一个城镇。(我们规定,城镇自己跟自己可互相到达,即 AA 可到达 AA)。输入格式第一行只有一个数 NN ,下面将跟着 2N2N 行数据。在前 NN 行数据中,每行数据开头第一个数字 numbernumber ,表...
2018-03-08 20:42:38
714
原创 魔力值
我们定义一个区间 [l, r][l,r] 的魔力值为下列三个值中的最大值。l \oplus rl⊕r,其中 \oplus⊕ 表示异或,c++ 中是 ^ 这个操作符。如果 l \ne rl≠r,令 mid=int(\frac{l + r}{2})mid=int(2l+r),[l, mid][l,mid] 的魔力值。如果 l \ne rl≠r,令 mid=int(\frac{l + r}{2})mi...
2018-02-26 21:29:30
777
原创 方程的解数
蒜头君在求解一个 nn 元的高次方程:\displaystyle k_1x_1^{p_1}+k_2x_2^{p_2}+\ldots+k_nx_n^{p_n}=0k1x1p1+k2x2p2+…+knxnpn=0其中:x_1,x_2,\ldots,x_nx1,x2,…,xn 是未知数,k_1,k_2,\ldots,k_nk1,k2,…,kn 是系数,p_1,p_2,\ld...
2018-02-20 21:10:38
543
原创 交叉排序
蒜头君很无聊,现在有 NN 个数,第 ii 个数是 A_iAi。现在他先将 A_{l_1}, A_{l_1+1}...A_{r_1}Al1,Al1+1...Ar1 从小到大排序。再将 A_{l_2}, A_{l_2+1}...A_{r_2}Al2,Al2+1...Ar2 从大到小排序。请输出 AA 的排序结果。输入格式第一行五个整数 N, l_1, r_1, l_2, r...
2018-02-20 21:09:33
359
原创 论前端汽车
大胆的想象总是源于生活中的一点一滴。汽车设计师通过女性与游艇的报告,大部分女性第一次上游艇时,都带有一点恐惧,害怕自己会掉下去。正如我的母亲,快艇还没有航行,就已经开始晕了。设计师主要考虑车子与轮船如何两者结合,还有面积的问题,这需要很多的巧妙的细节让车更可亲近,其中,最大的难点就是如何让汽车与船融合在一起,那么就要考虑它的外观以及引擎是否能够完全匹配,看起来非常协调——便设计出“两栖概念车”。这...
2018-02-20 10:28:59
367
原创 最大的蛋糕块
这一天蒜头君生日,他的朋友们一起来给蒜头君买一个大的蛋糕过生日。游戏做完后到了切蛋糕的时刻了,朋友们知道蒜头君喜欢吃蛋糕,便让蒜头君自己给自己切一块最大的。蒜头君看朋友们这么热情也就不客气了。这块蛋糕是由 R \times CR×C 的网格构成,每个网格上面都放有不同的水果。蒜头君把这些水果分为两类,一类是自己喜欢吃的水果,用'#'来表示;一类是自己不喜欢吃的水果,用'.'来表示。蒜头君对切出的蛋...
2018-02-09 16:13:02
748
原创 合并果子
蒜头君很想吃果子,正好果园果子熟了。在果园里,蒜头君已经将所有的果子打了下来,按照就近原则把果子合成了 nn 堆。蒜头君决定把所有的果子合成一堆。 因为蒜头君比较懒,为了省力气,蒜头君开始想点子了: 每一次合并,蒜头君可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过 n-1n−1 次合并之后,就只剩下一堆了。蒜头君在合并果子时总共消耗的体力等于每次合并所耗体力...
2018-02-09 16:10:19
279
原创 勤劳的蒜头君
蒜头君是一个勤学俭工的好学生,每天都会在图书馆担任图书管理员整理书籍,来赚取自己的生活费。但是图书馆的书籍实在是太多了,实在是记不过来。于是蒜头君找到了学习编程的你,想让你通过计算机编写一个程序,实现每查询一本书籍,就告诉他这本书对应的编号(每本书的编号对应它字典序的编号,书名相同的话算一本书)。知道了编号。蒜头君就可以轻松地知道这本书的位置了。输入格式第一行有两个整数 n(1 \le n \le...
2018-02-09 16:09:10
355
原创 角谷定理
角谷定理:输入一个自然数,若为偶数,则把它除以 22,若为奇数,则把它乘以 33 加 11。经过如此有限次变换后,总可以得到自然数 11。求一个数 xx 需要经过多少次变换以后可得到自然数 11。输入格式输入一个自然数 n(1 \le n < 2^{31})n(1≤n<231)。输出格式第一行输出变换的次数。接下来一行按照变换顺序输出每次变换以后的值,每两个数中间用一个空格隔开(输出包...
2018-02-09 16:08:03
1401
原创 两数之和
给出一个有 nn 个元素的数列 aa 和一个整数 ss,其中数列 aa 的元素是按照升序排列的。请你在数列中找出两个元素 x,yx,y,使得的 x+y=sx+y=s。输入格式输入第一行一个整数 n(1 \le n \le 10^5)n(1≤n≤105),表示数列中的元素个数。接下来一个输入 nn 个空格隔开的整数,表示输入的数列 aa,保证是升序排列,并且 -10^9 \le a_i \le 10...
2018-02-08 19:51:00
301
原创 罗马数字
我们今日大多数时候习惯于使用阿拉伯数字,但是同时有时候我们还会使用一种数字——罗马数字。传统罗马数字用单个字母表示特定的数值,I表示1,V表示5,X表示10,L表示50,C表示100,D表示500,M表示1000。最多3个同样的I,X,C或M可以连续出现表示一个数字,V,L,D则不在一个数字中连续出现。例如II表示2,CCC表示300。但是要注意,IIII就不能表示4。有时,一个可表示为1
2018-02-06 22:15:19
1153
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人