题目链接:https://ac.nowcoder.com/acm/contest/549/H 题意:给一个柱状图,包括每个矩阵的宽度和高度,求能组成的最大矩阵的面积. 思路:显然最大矩阵的高一定为n个矩阵中的一个矩阵的高,所以不访用单调栈求出每个矩阵左边.右边第一个高度小于该矩阵的下标.然后用树状数组求出该区间的宽度和,遍历一遍即可得到结果.算法复杂度O(nlogn),顺便吐槽这题数据,一朋友没用单调栈暴力求区间,复杂度为O(n^2),竟然也过了.. AC代码: #include<cstdio>…
题目地址:https://www.nowcoder.com/acm/contest/136/F 树状数组.快速幂.逆元的模板运用: #include<iostream> #include<cstdio> using namespace std; #define LL long long #define lowbit(x) x&-x ; ; int n, m; LL sum[N]; void read(int &x) { ; x = ; char ch = getch…
题目链接: 题意:有三个操作 操作 1:表示节点 i 长出了一个新的儿子节点,权值为0,编号为当前最大编号 +1(也可以理解为,当前是第几个操作 1,新节点的编号就是多少). 操作 2:表示华华上线做任务使节点 i 的子树中所有节点(即它和它的所有子孙节点)权值加 a . 询问 3:华华需要给出 i 节点此时的权值. 解法: 把整棵树进行离线操作 先对这棵树进行dfs,一棵子树上的节点是连续的,加权值的时候直接把整颗子树加上权值即可,后面可以把新加上的点的权值清空. 当进行操作1的时候,把这个点…
题目 链接 $Reki$ 在课余会接受一些民间的鹰眼类委托,即远距离的狙击监视防卫..$Reki$ 一共接收到$m$份委托,这些委托与 $n$ 个直线排布的监视点相关.第 $i$ 份委托的内容为:对于区间 $[r_i, \ j_i]$ 中的监视点,至少要防卫其中的 $k_i$ 个点.$Reki$ 必须完成全部委托,并希望选取尽量少的监视点来防卫.($n \leq 500000, \ m \leq 1000000$). 分析 一眼看,发现是道差分约束的裸题.设点i的值为sum[i],如果l-r中至…
链接:https://ac.nowcoder.com/acm/contest/549/H来源:牛客网 题目描述 柱状图是有一些宽度相等的矩形下端对齐以后横向排列的图形,但是小A的柱状图却不是一个规范的柱状图,它的每个矩形下端的宽度可以是不相同的一些整数,分别为a[i]a[i],每个矩形的高度是h[i]h[i],现在小A只想知道,在这个图形里面包含的最大矩形面积是多少. 输入描述: 一行一个整数N,表示长方形的个数接下来一行N个整数表示每个长方形的宽度接下来一行N个整数表示每个长方形的高度 输出描…
题面:小A的柱状图 题解:无 代码: #include<cstdio> #include<cstring> #include<iostream> #define ll long long #define max(a,b) ((a)>(b)?(a):(b)) using namespace std; inline ll rd(){ ll x=;char c=getchar(); '){c=getchar();} +c-'; c=getchar();} return…
H.写真がとどいています   链接:https://www.nowcoder.com/acm/contest/85/H来源:牛客网     这个题数乱了,导致wa了好几次. 特别弱智,从A开始往上,就是A,B,C,D,E,F. A的下面就是G开始倒着,G,F,E. 我智障,我写成G,F,G了(吐血...)   代码: 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<cma…
链接:https://www.nowcoder.com/acm/contest/86/H来源:牛客网 题目描述 其次,Sεlιнα(Selina) 要进行体力比武竞赛. 在 Sεlιнα 所在的城市,有 个街区,编号为 ,总共有 条的街道连接这些街区, 使得每两个街区之间都直接或间接地有街道将它们相连.Sεlιнα 把通过了文化知识竞赛的参赛男友们召集到她家所在的街区 ,并以这个街区为起点,让所有参赛男友们向其他街区跑去.这些参赛者们被命令不准重复跑某条街道,而且在规定时间内要尽可能地跑远.比赛…
链接:https://www.nowcoder.com/acm/contest/134/H来源:牛客网 题目描述 有n个盒子摆成一排,每个盒子内都有ai个糖果. 现在你可以执行以下操作: ·你可以选择任意一个盒子,在选择的盒子内吃掉一个糖果. 对你的要求如下: ·任何m个相邻的盒子内糖果数量不能超过x个. 请问,实现要求的最少操作次数是多少? 输入描述: 第一行三个数字n, m, x(2 ≤ n,m ≤ 10 6 ,1 ≤ x ≤ 10 9 ).第二行n个数字(1 ≤ a i ≤ 10 9 ).…
链接:https://ac.nowcoder.com/acm/contest/949/H来源:牛客网 题目描述 小阳手中一共有 n 个贝壳,每个贝壳都有颜色,且初始第 i 个贝壳的颜色为 colicoli .现在小阳有 3 种操作: 1 l r x:给 [l,r][l,r] 区间里所有贝壳的颜色值加上 xx . 2 l r:询问 [l,r][l,r] 区间里所有相邻贝壳 颜色值的差(取绝对值) 的最大值(若 l=rl=r 输出 0). 3 l r :询问 [l,r][l,r] 区间里所有贝壳颜色…
链接:https://ac.nowcoder.com/acm/contest/392/H 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 华华看书了解到,一起玩养成类的游戏有助于两人培养感情.所以他决定和月月一起种一棵树.因为华华现在也是信息学高手了,所以他们种的树是信息学意义下的. 华华和月月一起维护了一棵动态有根树,每个点有一个权值.刚开存档的时候,树上只有 0 号节点…
链接:https://ac.nowcoder.com/acm/contest/949/H来源:牛客网 题目描述 小阳手中一共有 n 个贝壳,每个贝壳都有颜色,且初始第 i 个贝壳的颜色为 colicoli .现在小阳有 3 种操作: 1 l r x:给 [l,r][l,r] 区间里所有贝壳的颜色值加上 xx . 2 l r:询问 [l,r][l,r] 区间里所有相邻贝壳 颜色值的差(取绝对值) 的最大值(若 l=rl=r 输出 0). 3 l r :询问 [l,r][l,r] 区间里所有贝壳颜色…
链接:https://ac.nowcoder.com/acm/contest/549/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 小A最近开始沉迷买彩票,并且希望能够通过买彩票发家致富.已知购买一张彩票需要3元,而彩票中奖的金额分别为1,2,3,4元,并且比较独特的是这个彩票中奖的各种金额都是等可能的.现在小A连续购买了n张彩票,他希望你能够告诉他至少能够不亏本的概率…
链接:https://ac.nowcoder.com/acm/contest/549/B来源:牛客网 题目描述 小A非常喜欢回文串,当然我们都知道回文串这种情况是非常特殊的.所以小A只想知道给定的一个字符串的最大回文子串是多少,但是小A对这个结果并不是非常满意.现在小A可以对这个字符串做一些改动,他可以把这个字符串最前面的某一段连续的字符(不改变顺序)移动到原先字符串的末尾.那么请问小A通过这样的操作之后(也可以选择不移动)能够得到最大回文子串的长度是多少. 输入描述: 一行一个字符串表示给定的…
链接:https://ac.nowcoder.com/acm/contest/549/F来源:牛客网 题目描述 小A这次来到一个景区去旅游,景区里面有N个景点,景点之间有N-1条路径.小A从当前的一个景点移动到下一个景点需要消耗一点的体力值.但是景区里面有两个景点比较特殊,它们之间是可以直接坐观光缆车通过,不需要消耗体力值.而小A不想走太多的路,所以他希望你能够告诉它,从当前的位置出发到他想要去的那个地方,他最少要消耗的体力值是多少. 输入描述: 第一行一个整数N代表景区的个数.接下来N-1行每…
H.武 链接:https://www.nowcoder.com/acm/contest/86/H 这个题写的有点想发脾气,自己的板子垃圾了,这个题要用优先队列优化版的迪杰斯特拉的板子才可以过,但是自己太智障了,段错误,编译错误,段错误,内存超限,运行超时,段错误,a了. 不想说什么了,简直蠢到家了. 代码(学长的板子就是好): 1 //H-学长的模板 2 #include<iostream> 3 #include<cstdio> 4 #include<cstring>…
H 华华和月月种树 链接:https://ac.nowcoder.com/acm/contest/392/H 思路:先得到整棵树最终的形态,在这棵树上进行三种操作,用dfs跑下,第二种操作就直接对最终形态树上这个点子树区间操作,第一种操作的时候是新加一个点,此时我们将那个点的权值设为0就好了,最后单点查询..,很简单的数据结构题. 实现代码: #include<bits/stdc++.h> using namespace std; ; #define lson l,m,rt<<1…
题目链接 https://www.nowcoder.com/acm/contest/85/H 思路 如果熟悉 五线谱 才能做啊... 然后 先竖着遍历 再 横着 遍历 就可以了 AC代码 #include <cstdio> #include <cstring> #include <ctype.h> #include <cstdlib> #include <cmath> #include <climits> #include <c…
AC通道 两边同步搜,一步里面A走一次B走两次,遇到对方走过的地方就得到了答案. #include <bits/stdc++.h> using namespace std; const int maxn = 1001; const int tx[] = {-1, 1, 0, 0, -1, -1, 1, 1}; const int ty[] = {0, 0, -1, 1, -1, 1, -1, 1}; int N, M, Ax, Ay, Bx, By; bool vis[2][maxn][max…
AC通道 如果建立第一天某点到某点有几条路的矩阵,做k次矩阵乘就是第k天某点到某点有几条路.统计即可. #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 101, mod = 1e9 + 7; int N, M, K, S, ans; struct Matrix { int v[maxn][maxn], n; Matrix(int n) { memset(v, 0, size…
Description 有n个盒子摆成一排,每个盒子内都有ai个糖果. 现在你可以执行以下操作: ·你可以选择任意一个盒子,在选择的盒子内吃掉一个糖果. 对你的要求如下: ·任何m个相邻的盒子内糖果数量不能超过x个. 请问,实现要求的最少操作次数是多少? Input 第一行三个数字n, m, x \((2 ≤ n,m ≤ 10^6,1 ≤ x ≤ 10^9)\).第二行n个数字\((1 ≤ ai ≤ 10^9)\). Output 输出一个操作数,代表实现要求的最少操作数. Solution 感…
参考:https://www.cnblogs.com/lcf-2000/p/6789680.html 这是一个相对码量少的做法,用到了区间修改区间查询的树状数组,详见:www.cnblogs.com/lcf-2000/p/5866170.html#3830447 枚举最大值a[i],找到l[i],r[i]是左边最后一个比它大的和右边第一个比它大的,考虑贡献: p1:每次询问要先加上(r-l)*p1是点对相邻,然后对r[i]有p1贡献的左端点是l[i] p2:对l[i]有贡献的是(i+1,r[i]…
求树直径的方法在此转载一下大佬们的分析: 可以随便选择一个点开始进行bfs或者dfs,从而找到离该点最远的那个点(可以证明,离树上任意一点最远的点一定是树的某条直径的两端点之一:树的直径:树上的最长简单路径).再从找到的点出发,找到据该点的最远点,那么这两点就确定了树的一条直径,两点间距即为所求距离. 无意中看到一道水题,也就是POJ 1383题目中给出了一个无环的迷宫,求出其中最长的一条路我们知道无环图本质上可以认为就是树,所以此题完全可以使用树的最长链算法 即:随便从某个节点C开始DFS或B…
[牛客小白月赛21]NC201605 Bits 题目链接 题目描述 Nancy喜欢做游戏! 汉诺塔是一个神奇的游戏,神奇在哪里呢? 给出3根柱子,最开始时n个盘子按照大小被置于最左的柱子. 如果盘子数为偶数,则需要将她们全部移动到最右侧的柱子上,否则将她们移动到中间的柱子上. 那么,Nancy该怎样移动呢?请你输出汉诺塔游戏的过程叭! 输入描述: 共一行:一个整数n 输出描述: 共2^n组:每组n+2行,每行3×(2n+1)+4个字符,用.表示空白区域,用|表示柱子区域,用*表示盘子.组与组之间…
牛客小白月赛5 I.区间 (interval) 休闲的时候写的,但是写的心情有点挫,都是完全版线段树,我的一个队友直接就水过去了,为啥我的就超内存呢??? 试了一晚上,找出来了,多初始化了add标记数组或者将add标记数组定义为long long型就会超内存,并不是自己的线段树写的有问题,而是出题人故意想卡线段树,就是不想让人家用线段树过这道题,但是还是有很多人用线段树过了,我最后删了add标记数组的初始化就过了,mdzz... 这道题还要记得开long long,其他的就没了,差分数组的没写,…
牛客小白月赛8 - E - 诡异数字 题意: 求区间中,满足限制条件的数字的个数. 限制条件就是某些数字不能连续出现几次. 思路: 比较裸的数位DP, DP数组开一个dp[len][x][cnt] 表示长度为len,x这个数字连续出现cnt次的个数. #include <iostream> #include <algorithm> #include <cstring> #include <string> #include <cstdio> typ…
牛客小白月赛18 Forsaken给学生分组 Forsaken给学生分组 链接:https://ac.nowcoder.com/acm/contest/1221/C来源:牛客网 ​ Forsaken有nnn个学生,每个学生都有一个能力值aia_iai,为了方便管理,Forsaken决定将nnn个学生分成kkk组. ​ Forsaken认为如果一个小组有一个能力在该小组极其突出的学生,这个小组就比较容易管理.我们定义对于teamiteam_iteami来说,这个小组的管理方便度f(i)=max(a…
牛客小白月赛18 Forsaken喜欢数论 题目传送门直接点标题 ​ Forsaken有一个有趣的数论函数.对于任意一个数xxx,f(x)f(x)f(x)会返回xxx的最小质因子.如果这个数没有最小质因子,那么就返回0. ​ 现在给定任意一个nnn,Forsaken想知道\(∑i=1nf(i)\sum_{i = 1}^{n}{f(i)}∑i=1nf(i)\)的值. ​ 输入描述: 一个整数nnn. 输出描述: 一个整数代表上面的求和式的值. 示例1 输入 复制 4 输出 复制 7 备注: 1≤n…
牛客小白月赛19 E 「火」烈火燎原 (思维,树) 链接:https://ac.nowcoder.com/acm/contest/2272/E来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 帕秋莉掌握了一种火属性魔法 这种强大的魔法可以让一棵树瞬间化为灰烬! 现在有一棵树G(无环),定义它的"小树"是X(G),小树X(G)的点集是G的边集 在"小树&qu…
[牛客小白月赛21]NC201604 Audio 题目链接 题目大意: 给出三点 ,求到三点距离相等的点 的坐标. 解析 考点:计算几何基础. 初中蒟蒻表示不会什么法向量.高斯消元..qwq 方法一: 根据两点间距离公式: 由D到A,B距离相等得(任选两点即可) 两边同时去根号,消去X^2,Y^2得 由D到A,C距离相等得 代入Y,得 为了代码美观,防止出错,我们用A1,B1,C1等表示上面的系数和常数项 A1=2*(x2-x1),B1=2*(y2-y1),C1=x2*x2+y2*y2-x1*x…