
计蒜客
星辰浩宇
路在脚下
展开
-
计蒜客-蒜头君王国(排列组合+dp)
解题思路:参考:即如下的公式:满分代码如下:#include<bits/stdc++.h>using namespace std;const int N=23;double dp[N];int n;double p;double pailie(int n,int k){ double val=1; for(int i=n,...原创 2019-08-02 08:24:36 · 353 阅读 · 1 评论 -
计蒜客 最长公共子序列
问题描述这次我们的问题非常简单,蒜头君有两个字符串 a 和 b,蒜头想知道两个字符串的最长公共子序列的长度。输入格式第一行输入一个字符串。第二行输入一个字符串。(字符串只包含字母,每个字符串长度不超过 1000)输出格式输出二者的最长公共子序列的长度,占一行。样例输入computereducation样例输出2#include<bits/stdc++...原创 2019-04-02 17:17:12 · 273 阅读 · 0 评论 -
计蒜客 删除最少的元素
问题描述给定有 n 个数的 A 序列:A1,A2,A3…An 。对于这个序列,我们想得到一个子序列 Ap1,Ap2⋯Api⋯Apm(1≤p1< p2<⋯pi<⋯< pm≤n),满足 Ap1≥Ap2≥⋯≥Api≤⋯≤Apm 。从 A 序列最少删除多少元素,可以得到我们想要的子序列。输入格式第一行输入一个整数 n,代表 A 序列中数字的个数。第二个输入 n 个整数,代...原创 2019-04-02 17:07:25 · 238 阅读 · 0 评论 -
计蒜客 蒜头君跳木桩
问题描述蒜头君面前有一排 n 个木桩,木桩的高度分别是h1,h2,h3…hn。蒜头第一步可以跳到任意一个木桩,接下来的每一步蒜头不能往回跳只能往前跳,并且跳下一个木桩的高度 不大于 当前木桩。蒜头君希望能踩到尽量多的木桩,请你帮蒜头计算,最多能踩到多少个木桩。输入格式第一行输入一个整数 n 代表木桩个数。第二行输入 n 个整数h1,h2,h3..hn,分别代表 n 个木桩的高度。(1≤n...原创 2019-04-02 16:50:14 · 175 阅读 · 0 评论 -
计蒜客 平分娃娃
问题描述蒜头君酷爱收集萌萌的娃娃。蒜头君收集了 6 种不同的娃娃,第 i 种娃娃的萌值为 i(1≤i≤6)。现在已知每种娃娃的数量 mi,蒜头君想知道,能不能把娃娃分成两组,使得每组的娃娃萌值之和相同。输入格式输入一行,输入 6 个整数,代表每种娃娃的数量 mi(0≤mi≤20,000)。输出格式输出一行。如果能把所有娃娃分成萌值之和相同的两组,请输出Can be divided....原创 2019-04-02 14:15:25 · 889 阅读 · 0 评论 -
计蒜客 蒜头君的购物袋3
问题描述蒜头君去超市购物,他有一只容量为 V 的购物袋,同时他想买 nn 种物品,已知每种物品的体积 vi和重要度 pi 。蒜头君想知道,怎么挑选物品放入购物袋中,可以使得买到的物品重要度之和最大,且物品体积和不超过购物袋的容量。注意超市中每种物品的数量无限多。输入格式第一行输入两个整数 n, V (1≤n≤1,000,1≤V≤10,000)。接下来输入 n 行,每行输入两个整数 v...原创 2019-04-02 11:15:55 · 199 阅读 · 0 评论 -
计蒜客 蒜头君的购物袋2
问题描述蒜头君去超市购物,他有一只容量为 V 的购物袋,同时他想买 n 件物品,已知每件物品的体积 vi和重要度 pi。蒜头君想知道,挑选哪些物品放入购物袋中,可以使得买到的物品重要度之和最大,且物品体积和不超过购物袋的容量。输入格式第一行输入两个整数 V(1≤V≤1000)和 n(1≤n≤100)。代表购物袋的总体积为 V,蒜头君一共想买 n 件物品。接下来输入 n 行,每行输入两个整...原创 2019-04-02 10:48:19 · 150 阅读 · 0 评论 -
计蒜客 蒜头君的购物袋1
题目:蒜头君去超市购物,他有一只容量为 V 的购物袋,同时他买了 n 件物品,已知每件物品的体积 vii。蒜头君想知道,挑选哪些物品放入购物袋中,可以使袋子剩余的空间最小。输入格式第一行输入一个整数 V(1≤V≤20,000),表示购物袋的容量。第二行输入一个整数 n(1≤n≤30),表示蒜头君购买的 n 件物品。接下来输入 n 行,每行输入一个整数 vii(1≤vi≤...原创 2019-04-02 10:39:54 · 192 阅读 · 0 评论 -
计蒜客 蒜头君的城堡之旅(dp)
问题描述蒜国地域是一个 n 行 m 列的矩阵,下标均从 1 开始。蒜国有个美丽的城堡,在坐标 (n,m) 上,蒜头君在坐标 (1,1) 的位置上。蒜头君打算出发去城堡游玩,游玩结束后返回到起点。在出发去城堡的路上,蒜头君只会选择往下或者往右走,而在返回的路上,蒜头君只会选择往上或者往左走,每次只能走一格。已知每个格子上都有一定数量的蒜味可乐,每个格子至多经过一次。现在蒜头君请你来帮他计算一...原创 2019-04-01 21:13:50 · 179 阅读 · 0 评论 -
计蒜客 蒜头君的新游戏
问题描述工作空闲之余,蒜头君经常带着同事们做游戏,最近蒜头君发明了一个好玩的新游戏:n 位同事围成一个圈,同事 A 手里拿着一个兔妮妮的娃娃。蒜头君喊游戏开始,每位手里拿着娃娃的同事可以选择将娃娃传给左边或者右边的同学,当蒜头君喊游戏结束时,停止传娃娃。此时手里拿着娃娃的同事即是败者。玩了几轮之后,蒜头君想到一个问题:有多少种不同的方法,使得从同事 A 开始传娃娃,传了 m 次之后又回到了...原创 2019-04-01 20:22:54 · 205 阅读 · 0 评论 -
计蒜客 逃生dp
题目:蒜头君在玩一款逃生的游戏。在一个 n×m 的矩形地图上,蒜头位于其中一个点。地图上每个格子有加血的药剂,和掉血的火焰,药剂的药效不同,火焰的大小也不同,每个格子上有一个数字,如果格子上的数字是正数说明是一个药剂代表增加的生命值,如果是负数说明是火焰代表失去的生命值。蒜头初始化有 v 点血量,他的血量上限是 c,任何时刻他的生命值都不能大于血量上限,如果血量为 0 则会死亡,不能...原创 2019-04-01 19:28:00 · 202 阅读 · 0 评论 -
计蒜客 回文串
问题描述一个字符串如果从左往右读和从右往左读都一样,那么这个字符串是一个回文串。例如:”abcba”,”abccba”。蒜头君想通过添加字符把一个非回文字符串变成回文串。例如:”trit”,可以添加一个’i’ 变成回文串”tirit”。请你用程序计算出,对于一个给定的字符串,最少需要添加几个字符,才能变成回文串。输入格式输入一个长度为n(1≤n≤3000) 的字符串。(字符串只包含字...原创 2019-04-03 18:09:49 · 1168 阅读 · 0 评论 -
计蒜客 蒜头君的积木
问题描述蒜头君酷爱搭积木,他用积木搭了 n 辆重量为 wi的小车和一艘最大载重量为 W 的小船,他想用这艘小船将 n 辆小车运输过河。每次小船运载的小车重量不能超过 W。另外,小船在运载小车时,每辆小车会对小船有一个损坏值si,当多辆小车一起运载时,该趟运载对小船的损坏值为船上所有小车的最大损坏值。现在蒜头君想知道,如何用小船运载 n 辆小车,可以使得对小船造成的总损坏值最小。输入...原创 2019-04-03 18:09:03 · 377 阅读 · 0 评论 -
计蒜客 消除回文串
问题描述蒜头君喜欢中心对称的字符串,即回文字符串。现在蒜头君手里有一个字符串 SS,蒜头君每次都会进行这样的操作:从 SS 中挑选一个回文的子序列,将其从字符串 SS 中去除,剩下的字符重组成新的字符串 SS。 蒜头君想知道,最少可以进行多少次操作,可以消除整个字符串。输入格式 输入一行输入一个字符串 S(1≤length(S)≤16),字符串均由小写字母组成。输出格式输...原创 2019-04-03 18:27:25 · 659 阅读 · 1 评论 -
计蒜客-数列求值(递推)
样例输出2-761.49解题思路:利用递推的思想,见下图满分代码如下:#include<bits/stdc++.h>using namespace std;const int N=1010;double c[N];int n;int main(){ scanf("%d",&n); double start,end; ci...原创 2019-08-02 06:52:34 · 227 阅读 · 0 评论 -
计蒜客-划分整数(动态规划)
划分整数蒜头君特别喜欢数学。今天,蒜头君突发奇想:如果想要把一个正整数 nnn 分解成不多于 kkk 个正整数相加的形式,那么一共有多少种分解的方式呢?蒜头君觉得这个问题实在是太难了,于是他想让你帮帮忙。输入格式共一行,包含两个整数 n(1≤n≤300)n(1 \leq n \leq 300)n(1≤n≤300) 和 k(1≤k≤300)k(1 \leq k \leq 300)...原创 2019-08-01 20:37:38 · 396 阅读 · 0 评论 -
计蒜客-取石子(简单的博弈)
题目:蒜头君和花椰妹今天都很无聊。两个人相约一起玩游戏。蒜头君取出了一堆奇形怪状的石子,并且把它分成了三堆。他和花椰妹轮流从里面取石子,取出最后一颗石子的人胜利。花椰妹觉得这样没意思,于是她要求加入一个限制条件:每个人每次只能取出 1,3,71,3,7 或 99 颗石子。石子数目不够的时候不能多取,如还剩 22 颗石子的情况下,只能拿走 11 颗,而不能选择 3,7,93,7,9。蒜头君答...原创 2019-08-01 14:44:16 · 413 阅读 · 0 评论 -
计蒜客-引爆炸弹(并查集)
题目在一个 n×m 的方格地图上,某些方格上放置着炸弹。手动引爆一个炸弹以后,炸弹会把炸弹所在的行和列上的所有炸弹引爆,被引爆的炸弹又能引爆其他炸弹,这样连锁下去。现在为了引爆地图上的所有炸弹,需要手动引爆其中一些炸弹,为了把危险程度降到最低,请算出最少手动引爆多少个炸弹可以把地图上的所有炸弹引爆。输入格式第一行输两个整数 n, m,用空格隔开。接下来 n 行,每行输入一个长度...原创 2019-08-01 11:40:40 · 255 阅读 · 0 评论 -
差分约束系统
差分约束系统概念问题转化解决的问题例题1:虽然蒜头君并没有多少钱,但是蒜头君办了很多张银行卡,共有 nn 张,以至于他自己都忘记了每张银行卡里有多少钱了。他只记得一些含糊的信息,这些信息主要以下列三种形式描述:银行卡 aa 比银行卡 bb 至少多 cc 元。银行卡 aa 比银行卡 bb 至多多 cc 元。银行卡 aa 和银行卡...原创 2019-07-27 08:21:11 · 245 阅读 · 0 评论 -
计蒜客-轻重搭配(二分)
采用二分法,求配对的最小的的最大值即可#include<bits/stdc++.h>using namespace std;const int N=500050;int a[N];int n;int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); s...原创 2019-08-01 09:49:02 · 438 阅读 · 0 评论 -
计蒜客人以群分(二分+前缀)
满分代码如下:#include<bits/stdc++.h>using namespace std;const int N=500020;int dp[N];//表示前i个人分一组时最后一个人的下标//分组的要求为大于等于m int a[N];//每个人的不开心值 int n,m;int main(){ memset(dp,0,sizeof(dp...原创 2019-08-01 08:38:18 · 577 阅读 · 1 评论 -
计蒜客-蒜头君的数轴(前缀和)
题目描述今天蒜头君拿到了一个数轴,上边有 nn 个点,但是蒜头君嫌这根数轴不够优美,想要通过加一些点让它变优美,所谓优美是指考虑相邻两个点的距离,最多只有一对点的距离与其它的不同。蒜头君想知道,他最少需要加多少个点使这个数轴变优美。输入格式输入第一行为一个整数 n(1≤n≤105)n(1≤n≤105),表示数轴上的点数。第二行为 nn 个不重复的整数 x1,x2,.....原创 2019-08-01 07:02:38 · 440 阅读 · 0 评论 -
计蒜客 - 天上的星星 (前缀和)
在一个星光摧残的夜晚,蒜头君一颗一颗的数这天上的星星。蒜头君给在天上巧妙的画了一个直角坐标系,让所有的星星都分布在第一象。天上有 nn 颗星星,他能知道每一颗星星的坐标和亮度。现在,蒜头君问自己 qq 次,每次他问自己每个矩形区域的星星的亮度和是多少(包含边界上的星星)。输入格式第一行输入一个整数 n(1≤n≤50000) 表示星星的数量。接下里 n 行,每行输入三个整数 ...原创 2019-08-01 07:02:57 · 476 阅读 · 0 评论 -
线段树
void modify(int p, int l, int r, int x, int v){ s[p] += v; if (l == r) return; //叶结点则退出 int mid = (l + r) / 2; if (x <= mid) //判断x在左儿子还是右儿子 modify(p * 2, l, mid,...原创 2019-08-03 07:45:50 · 123 阅读 · 0 评论 -
计蒜客 最甜的苹果
问题描述蒜头君有很多苹果,每个苹果都有对应的甜度值。 蒜头君现在想快速知道从第 i 个苹果到第 j 个苹果中,最甜的甜度值是多少。 因为存放时间久了,有的苹果会变甜,有的苹果会因为腐烂而变得不甜,所以蒜头君有时候还需要修改第 i个苹果的甜度值。输入格式第一行输入两个正整数N,M接下来N个整数代表这N个的初始值接下来M行,第一个字母为U,改第i个的甜度值为j。为U,查询i到j...原创 2019-04-10 19:34:30 · 234 阅读 · 0 评论 -
计蒜客 斑点蛇
斑点蛇#有一种神奇斑点蛇,蛇如其名,全身都是斑点,斑点数量可以任意改变。有一天,蒜头君十分的无聊,开始数蛇上的斑点。假设这条蛇的长度是Ncm,蒜头君已经数完开始时蛇身的第icm上有ai个斑点。现在蒜头君想知道这条斑点蛇的任意区间的蛇身上一共有多少个斑点。这好像是一个很容易的事情,但是这条蛇好像是和蒜头君过不去,总是刻意的改变蛇身上的斑点数量。于是,蒜头君受不了了,加上蒜头君有密集型恐惧症...原创 2019-04-10 18:42:53 · 184 阅读 · 0 评论 -
计蒜客 公告板
问题描述蒜厂有一个 h×w 的矩形公告板,其中 h 是高度,w 是宽度。现在有若干张 1×Wi 的公告, Wi 是宽度,公告只能横着放,即高度为 1 的边垂直于水平面,且不能互相有重叠,每张公告都要求尽可能的放在最上面的合法的位置上。若可以放置,输出每块可放置的位置的行号;若不存在,输出 −1。行号由上至下分别为 1,2,…,h。输入格式第一行三个整数 h,w,n (1≤h,w...原创 2019-04-10 21:16:12 · 256 阅读 · 2 评论 -
计蒜客 气球消消乐
问题描述蒜头君有 n 只气球,蒜头君把气球排成一排。初始时,气球都是白色,现在蒜头君想用 m 种颜色给气球涂色,如果相邻的气球的颜色相同,这 2 个气球会发生消消乐,蒜头君希望你求出会发生消消乐的涂色方法有多少种。最后答案对 10^9+7取模。输入格式输入两个整数n(1<=n<=10^12),m(1<=m<=10^8)输出格式输出一行表示答案。样例输...原创 2019-03-31 11:40:23 · 396 阅读 · 0 评论 -
计蒜客 机器人的相遇问题
问题描述蒜头君和花椰菜君各做了一个机器人,小蒜和小花。蒜头君和花椰菜君打算用他们的机器人做个试验,同时放在圆形跑道上的两个点上,各自朝顺时针方向走,直到同时停留在相同的点上为止,即相遇点必须同时是双方走的某一步的终点。假设圆形跑道的长度为 L,出发点的位置为原点 0,顺时针方向为正方向。这样我们就得到了一条首尾相接的数轴。设小蒜的出发点坐标是 x,小花的出发点坐标是 y。小蒜一步能走 ...原创 2019-03-31 09:13:42 · 251 阅读 · 0 评论 -
计蒜客 素数距离
问题描述蒜头君请你求出区间 [l,r] 上距离最近的相邻的素数对和距离最远的相邻的素数对。3,5 是相邻的素数,2,5 不是相邻的素数。距离定义为 2 个素数的差的绝对值。比如 5,7 距离为 2。输入格式输入 2 个整数l,r(1≤l≤r≤8000000)输出格式如果 a,b(a< b) 是距离最近的素数对,c,d(c< d) 是距离最远的素数对,按照如下格式输出...原创 2019-03-30 18:07:06 · 274 阅读 · 1 评论 -
计蒜客 蒜头君的猜想
问题描述有一天蒜头君突发奇想,他有一个猜想,任意一个大于 2 的偶数好像总能写成 2 个质数的和。蒜头君查了资料,发现这个猜想很早就被一个叫哥德巴赫的人提出来了,称为哥德巴赫猜想。目前还没有证明这个猜想的正确性。蒜头君告诉你一个整数 nn ,让你用这个数去验证。注意 1 不是质数。输入格式输入一个偶数 n(2<n≤8000000)输出格式输出一个整数表示有多少对 (x,y) 满足...原创 2019-03-30 17:26:24 · 363 阅读 · 0 评论 -
计蒜客 取石子游戏
问题描述蒜头君和花椰妹在玩一个游戏,他们在地上将 n 颗石子排成一排,编号为 1 到 n。开始时,蒜头君随机取出了 2 颗石子扔掉,假设蒜头君取出的 2 颗石子的编号为 a, b。游戏规则如下,蒜头君和花椰妹 2 人轮流取石子,每次取石子,假设某人取出的石子编号为 i,那么必须要找到一对 j, k 满足 i=j−k 或者 i=j+k ,并且编号为 j,k 的石子已经被取出了,如果谁先不能取石子...原创 2019-03-30 16:35:23 · 158 阅读 · 0 评论 -
计蒜客 骑车比赛
问题描述蒜头君准备去参加骑车比赛,比赛在 n 个城市间进行,编号从 1 到 n。选手们都从城市 1 出发,终点在城市 n。已知城市间有 m 条道路,每条道路连接两个城市,注意道路是双向的。现在蒜头君知道了他经过每条道路需要花费的时间,他想请你帮他计算一下,他这次比赛最少需要花多少时间完成。输入格式第一行输入两个整数\n,m(\1≤n≤1,000,1≤m≤5,000),分别代表城市个...原创 2019-04-04 11:01:40 · 371 阅读 · 0 评论 -
计蒜客 两剑仪法
问题描述两仪剑法是武当派武功的高级功夫,且必须 2 个人配合使用威力才大。同时该剑法招数变化太快、太多。设武当弟子甲招数变化周期为 n,武当弟子乙招数变化周期为 m,两弟子同时使用该剑法,当 2 人恰好同时达到招数变化周期结束时,威力最大,此时能将邪教妖人置于死地。请你计算威力最大时,每人用了多少招?输入格式首先输入一个 t(t<100000) 表示测试组数。接下来 t组输入...原创 2019-03-30 15:41:39 · 136 阅读 · 0 评论 -
计蒜客 农场看守(欧拉回路)
问题描述蒜头君最近做了农场看守,他每天晚上的工作就是巡视农场并且保证没有人破坏农场。从谷仓出发去巡视,并且最终回到谷仓。蒜头君视力不太好,其他农场守卫只需要对农场的每一条连接不同场地的路走一遍就可以发现是不是有异常情况了。但是他很仔细和耐心,对农场的每一条连接不同场地的路需要走两遍,并且这两遍必须是不同的方向,因为他觉得应该不会两次都忽略农场中的异常情况。每两块地之间一定至少有一条路连接。...原创 2019-03-30 15:09:33 · 317 阅读 · 0 评论 -
计蒜客 网络延时
问题描述某计算机网络中存在 n 个路由,每个路由代表一个子网。路由之间有 n - 1 条互通关系,使得这 n 个网络之间任意两个网络都可以直接联通,或者通过其他网络间接连通。 为了测试组建的网路的性能,假设相邻的路由之间的数据传输需要一单位时间,现在需要知道任意两个路由之间传输数据最多需要多长时间。输入格式第一行一个整数 n(2≤n≤50000) 表示网络中路由个数。接下来 n - 1...原创 2019-03-30 11:48:50 · 228 阅读 · 0 评论 -
计蒜客 子树的结点个数
问题描述有一个棵树,树上有 n 个结点。结点的编号分别为 1…n,其中 1 是树的根结点。现在希望你帮忙计算每个结点作为根结点的子树分别有多少结点。输入格式第一行输入一个数字 n,代表树上结点的个数。(2≤n≤1000)接下来的 n−1 行,每行俩个数字 a,b,代表结点 a 到结点 b 有一条边。输出格式按编号顺序输出每个结点作为根结点的子树,分别有多少结点,中间用空格分开。...原创 2019-03-30 11:19:53 · 303 阅读 · 0 评论 -
计蒜客 迷阵突围
问题描述蒜头君陷入了坐标系上的一个迷阵,迷阵上有 n 个点,编号从 1 到 n。蒜头君在编号为 1 的位置,他想到编号为 n 的位置上。蒜头君当然想尽快到达目的地,但是他觉得最短的路径可能有风险,所以他会选择第二短的路径。现在蒜头君知道了 n 个点的坐标,以及哪些点之间是相连的,他想知道第二短的路径长度是多少。注意,每条路径上不能重复经过同一个点。输入格式第一行输入两个整数 n (1≤n≤...原创 2019-04-04 19:07:08 · 937 阅读 · 0 评论 -
计蒜客 闯关游戏
问题描述蒜头君在玩一个很好玩的游戏,这个游戏一共有至多 100 个地图,其中地图 1 是起点,房间 n 是终点。有的地图是补给站,可以加 ki点体力,而有的地图里存在怪物,需要消耗 ki 点体力,地图与地图之间存在一些单向通道链接。 蒜头君从 1 号地图出发,有 100 点初始体力。每进入一个地图的时候,需要扣除或者增加相应的体力值。这个过程持续到走到终点,或者体力值归零就会 Game Ove...原创 2019-04-04 21:00:30 · 300 阅读 · 0 评论 -
计蒜客 Fib数列问题二
问题描述用 fib(n) 表示斐波那契数列的第 n项,现在要求你求 fib(n) mod m。fib(1)=1,fib(2)=1。输入格式输入 2 个整数 n(1≤n≤10^18 ),m(2≤m≤100000000)。输出格式输出 fib(n) 对 m 取模的值。样例输入100000000 100000000样例输出60546875方法一:迭代(该方法超时)#include&...原创 2019-03-31 16:52:29 · 359 阅读 · 1 评论