04 2019 档案
摘要:题目链接:https://vjudge.net/problem/POJ-2828 题目大意: 插队买票,有 n 个人依次插队,一开始买票队列为空,每个插队的人有两个属性 (pos, val) ,pos 表示这个人插队插在了 pos 位置,val 代表这个人的 id,输出 n 个人插完队后形成的序列所
阅读全文
摘要:题目链接:https://vjudge.net/problem/HDU-2795 题目大意: 有一块长度为 H 宽度为 W 的广告牌,现在有 n 则广告要依次贴上去,第 i 则广告的长度为 1 宽度为 w[i],广告要尽量贴得高,其次尽量靠左,求每则广告位于第几行,贴不上就输出-1。 分析: 如果广
阅读全文
摘要:题目链接:https://vjudge.net/problem/HDU-1394 题目大意: 给定一个由 0~n-1 组成的长度为 n 序列,如果将最前面一个元素放到最后面去,就形成了一个新序列,新序列进行同样的操作可以再形成新序列,一共能形成 n 的新序列,每个序列都有一个逆序数,求其中最小的逆序
阅读全文
摘要:题目链接:https://vjudge.net/problem/HDU-1754 题目大意: 略 分析: 线段树单点更新模板题,查询最值。 代码如下: 1 #pragma GCC optimize("Ofast") 2 #include <bits/stdc++.h> 3 using namespa
阅读全文
摘要:题目链接:https://vjudge.net/problem/HDU-1166 题目大意: 略 分析: 线段树单点更新模板题,查询和。 代码如下: 1 #pragma GCC optimize("Ofast") 2 #include <bits/stdc++.h> 3 using namespac
阅读全文
摘要:题目链接:https://www.nowcoder.com/questionTerminal/661c49118ca241909add3a11c96408c8 题目大意: 略 分析: 设 dpMax[i][j] 表示以 a[i] 结尾,一共选 j 个学生的情况下的乘积最大值。 设 dpMin[i][
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/1151/F 题目大意: 给定长度为 n 的 01 序列,可以对该序列操作 k 次,每次操作可以交换序列中任意两个元素的位置,求进行 k 次操作后 01 序列升序排列的概率。 分析: 每一次操作就是在 n 个
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/1151/E 题目大意: n个人排成一个序列,标号为 1~n,第 i 个人的学习成绩为 ai,现在要选出学习成绩在区间 [l, r] 中的人,被选出的人如果他们在序列中相邻,就将他们划分到一个小组,设 f(l
阅读全文
摘要:题目链接:https://www.luogu.org/problemnew/show/P1962 题目链接:https://www.nowcoder.com/practice/376282a6682a4005973cde7b3df69584?tpId=101&tqId=33251&tPage=1&r
阅读全文
摘要:题目链接:https://abc042.contest.atcoder.jp/tasks/arc058_b 题目大意: 给定一个 H * W 的矩阵,其中左下角 A * B 区域是禁区,要求在不踏入禁区的前提下,从左上角走到右下角一共有多少种走法? 分析: 设 D 为往下,R为往左。 这里举个 H
阅读全文
摘要:借鉴:https://blog.csdn.net/qq_24451605/article/details/47045279 借鉴:https://blog.csdn.net/qq_24451605/article/details/47045135 借鉴:https://blog.csdn.net/h
阅读全文
摘要:转载自:http://www.cnblogs.com/frog112111/archive/2012/08/19/2646012.html 说明: 欧几里德算法 简介: 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。 描述: 设q = a / b,r = a % b。 a,b,q,
阅读全文
摘要:题目链接:http://codeforces.com/contest/1151/problem/D 题目大意: 有n个学生排成一队(序号从1到n),每个学生有2个评定标准(a, b),设每个学生的位置为j,则每个学生所要交的学费为a * (j - 1) + b * (n - j),要求把这些学生从新
阅读全文
摘要:汉诺塔I 题目链接:https://www.nowcoder.com/questionTerminal/7d6cab7d435048c4b05251bf44e9f185 题目大意: 略 分析: 利用汉诺塔与二进制的关系来做。 如何用二进制解汉诺塔:https://www.bilibili.com/v
阅读全文
摘要:题目链接:https://www.nowcoder.com/questionTerminal/abc3fe2ce8e146608e868a70efebf62e 题目大意: 略 分析: 对萌醒很开拓思维的一道题,从左下角开始找。 代码如下: 1 class Solution { 2 public: 3
阅读全文
摘要:题目链接:https://www.nowcoder.com/questionTerminal/196141ecd6eb401da3111748d30e9141?source=relative 题目大意: 略 分析: 转自:https://www.nowcoder.com/profile/198826
阅读全文
摘要:题目链接:https://ac.nowcoder.com/acm/contest/243/A 题目大意: 略 分析: 方法就是把疲劳值从小到大排个序,然后从尾部开始一个一个取,当选到第i(i >= 2)个时有2种取法:一是取,那么X = i的答案就是[n-i+1,n]区间的疲劳值求和并加上其中最大距
阅读全文
摘要:题目链接:https://ac.nowcoder.com/acm/contest/249/B 题目大意: 略 分析1(记忆化搜索): 方法为减而治之,把n划分成k份的答案就相当于每次把n分成a,b两个数,再把a分成k-1份,然后把每次a分成k-1份的答案相加即可。注意点是每轮分出来的b要不大于上一轮
阅读全文
摘要:题目链接:https://ac.nowcoder.com/acm/contest/230/B 题目大意: 略 分析: DFS模板题。 代码如下: 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 #define rep(i,n) for (i
阅读全文
摘要:题目链接:https://ac.nowcoder.com/acm/contest/248/C 题目大意: 略 分析: 注意点:1.前缀和后缀的公共部分应该选最短的。2.如果两个字符串前缀和后缀的公共部分恰好是其中一个字符串,那么这两个字符串不能合并。 代码如下: 1 #include <bits/s
阅读全文
摘要:题目链接:https://ac.nowcoder.com/acm/contest/258/C 题目大意: 略 分析: 这题是并查集的一个变题,先按积怨值从大到小排序,然后一个一个看能否完全分开,遇到的第一个不能分开的囚犯对(如果强行分开就必然有更高的积怨值出现)就是答案。 一开始想到的是按监狱数量弄
阅读全文
摘要:题目链接:http://codeforces.com/contest/484/problem/A 题目大意: 给定一个区间[l, r],输出这个区间上二进制1的位数最多并且数值最小的数。 分析: 典型的位运算 需要注意的是,由于数据规模很大,用log2函数会产生超过1e-9以上的误差 代码如下: 1
阅读全文
摘要:题目链接:http://codeforces.com/contest/140/problem/C 题目大意: 有n个雪球(半径为:r1,r2,r3.....rn);一个雪人要三个雪球。但是要求半径两两不相同。求可以堆雪人数量的最大值。 输入第一行n代表了雪球数量。第二行,n个数字代表了雪球的半径。
阅读全文
摘要:题目链接:http://codeforces.com/contest/486/problem/B 题目大意: 有两个矩阵A和B,矩阵B的元素Bij的值是所有A的第i行元素和第j列元素或运算后的值。现在给出B矩阵,求A矩阵。 分析: 首先,如果B[i][j] == 1,那么B矩阵或者第i行全为1,或者
阅读全文
摘要:题目链接:http://codeforces.com/contest/337/problem/D 题目大意: 给定一棵树,树的某个节点存在一本恶魔之书,能使所有到该点的距离小于d的所有点出现幽灵,现在给出m个出现幽灵的点,问可能存在恶魔之书的节点有多少个。 分析: 先找出相距最远的2个幽灵节点(由于
阅读全文
摘要:题目链接:http://codeforces.com/contest/219/problem/D 题目大意: 给定一个n个节点的数和连接n个节点的n - 1条有向边,现在要选定一个节点作为起始节点,从这个点出发需要能走到其余每个节点,途中必然要调整有向边的方向,请求出当选定哪些节点作为初始节点时,所
阅读全文
摘要:题目链接:http://codeforces.com/contest/461/problem/B 题目大意: 给定一课树,树上的节点有黑的也有白的,有这样一种分割树的方案,分割后每个子图只含有一个黑色节点,问这样的分割方案一共有多少种? 分析: 先定义3个函数(为了之后说起来方便): 设A(x) =
阅读全文
摘要:题目链接:http://codeforces.com/contest/280/problem/B 题目大意: 给定一个由n个数组成的一个序列,s[l..r] (1 ≤ l < r ≤ n)代表原序列中从第l个到第r个组成的子序列,对于每一个这样的序列,都有一个幸运数字,其值为序列中最大的2个数字异或
阅读全文
摘要:题目链接:http://codeforces.com/contest/91/problem/B 题目大意: 有n头大象排队买票,第i头大象的年龄为ai,如果有比他年轻的大象排在他前面,这头大象就会非常不高兴,衡量不高兴度的指标是这只大象与排在前面的最远的比它年轻的大象之间的大象数量。输出每只大象的不
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/1151/C 题目大意: 有一个只存奇数的集合A = {1, 3, 5……2*n - 1,……},和只存偶数的集合B = {2, 4, 6……2*n,……},现在要生成一个序列,这个序列分成i次生成:第1次从
阅读全文
摘要:题目链接:http://codeforces.com/contest/1151/problem/B 题目大意: 给定一个n*m的矩阵,里面存放的是自然数,要求在每一行中选一个数,把他们异或起来后结果大于0,如果存在一种方案,就把每行所选数的列号输出。 分析: 我们只关注这些数的第i位二进制位,如果存
阅读全文
摘要:题目链接:https://ac.nowcoder.com/acm/contest/263/B 题目大意: 略 分析: 设preA(i)为字符串A中第1个字符到第i个字符构成的字符串。 设preB(i)为字符串B中第1个字符到第i个字符构成的字符串。 设所要解决的问题为problem(A, B, k)
阅读全文
摘要:题目链接:https://ac.nowcoder.com/acm/contest/70/F 题目大意: 略 分析: 可以分成四步计算冲突:水平方向,垂直方向,左斜线方向,右斜线方向。只要会处理水平方向,其余同理。 代码如下: 1 #pragma GCC optimize("Ofast") 2 #in
阅读全文
摘要:题目链接:https://www.acwing.com/problem/content/605/ 题目大意: 略 分析: 用dp[i][j]表示用j元钱能在前i只怪兽上所能贿赂到的最大武力值。 有一种情况就是打到第i只怪兽所需的最低花费大于j,那么令dp[i][j] = -1。 那么dp[i + 1
阅读全文
摘要:题目链接:https://ac.nowcoder.com/acm/contest/70/D 题目大意: 略 分析: 注意到12! < 10^9 < 13!,于是当n > 13时,第k号排列的前n - 13位是确定的。比如n = 15吧,那么无论k取何值,第k号排列都是形如:“12xxxxxxxxxx
阅读全文
摘要:题目链接:https://ac.nowcoder.com/acm/contest/70/B 题目大意: 略 分析: 先DFS求出所有幸运数,然后暴力即可 代码如下: 1 #pragma GCC optimize("Ofast") 2 #include <bits/stdc++.h> 3 using
阅读全文
摘要:题目链接:https://ac.nowcoder.com/acm/contest/70/E 题目大意: 略 分析: DP或记忆化搜索,个人觉得记忆化搜索比较好做,逻辑清晰,代码量少 代码如下: 1 #include <bits/stdc++.h> 2 using namespace std; 3 4
阅读全文
摘要:题目链接:http://uoj.ac/problem/265 题目大意: 太长了不想概括。。。 分析: 状压DP的模板题,把所有可能的抛物线用二进制表示,然后暴力枚举所有组合,详情见代码内注释 代码如下: 1 #pragma GCC optimize("Ofast") 2 #include <bit
阅读全文
摘要:SingleNumber I: 题目链接:https://leetcode-cn.com/problems/single-number/ 题意: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/113/B 题目大意: 多组数据每组给定3个字符串T,Sbeg,Sed,求字符串T中有多少子串是以Sbeg开头,Sed结尾的 分析: 难点在哈希函数的编写,如果直接存string会爆内存,不能用STL自带哈希
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/126/B 题目大意: 多组数据每组给定1个字符串S,问是否存在S的一个尽量长的子串,同时是S的前缀和后缀,并且在S的中间出现过(即非前缀也非后缀)。 分析: 利用KMP的next数组。 首先next[i]表
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/1154/G 题目大意: 给定n个数,在这些数中选2个数,使这两个数的最小公倍数最小,输出这两个数的下标(如果有多组解,任意输出一组即可)。 分析: 直接2个循环两两配对一下肯定要超时的,这里可以考虑枚举公因
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/1154/F 题目大意: 商店有n把铲子,欲购k把,现有m种优惠,每种优惠可使用多次,每种优惠(x, y)表示一次买满x把可使其中最便宜的y把免费。就正好购买k把的最小花费。 分析: 由于要正好购买k把铲子,
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/1154/E 题目大意: 有n个队员,编号1~n,每个人的能力各自对应1~n中的一个数,每个人的能力都不相同。有1号教练和2号教练,他们轮流从剩余队伍里选人,轮到某位教练选时,它总是选剩余队员中能力最强的人和
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/1154/C 题目大意: 主人有一只猫。周一&周四&周日:吃鱼周二&周六:吃兔子周三&周五:吃鸡 他们现在要外出旅游。他们带了一个包,包里有:a份鱼肉b份兔肉c份鸡肉 问,猫的主人在最优解的情况下(即他可以自
阅读全文