洛谷P2367 语文成绩(差分)】的更多相关文章

标准的差分应用题,不要想的太复杂,写成了线段树. 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=5e6+10; 4 int d[N],a[N];//d是差分数组 5 int n,p,x,y,z,ans=1e9; 6 int main(){ 7 scanf("%d%d",&n,&p); 8 for(int i=1;i<=n;i++) scanf("%d",…
洛谷题目链接 珂朵莉树吼啊!!! 对于操作$1$,直接普通查询即可 对于操作$2$,直接区间赋值即可 对于操作$3$,其实也并不难,来一次计数排序后,依次插入即可,(注意初始化计数器数组)具体实现看代码 代码: #include<iostream> #include<cstdio> #include<set> #include<algorithm> #include<cstring> #define Set set<Node>::it…
一道看一眼就知道差分约束的题目 但是最短路spfa的时候注意松弛条件是 if(dis[u]+w[i]<dis[v[i]]) dis[v[i]]=dis[u]+w[i]; 不能写成 if(dis[u]+w[i]<=dis[v[i]]) dis[v[i]]=dis[u]+w[i] 否则会TLE 就是如何把\( a_{i}-a_{j} \ge t \),方法非常简单,只需要乘上-1 就可以愉快地变成\( a_{j}-a_{i} \le -t \)了 然后就是建立图. 瞪眼法可知我们可以使用类似前缀和…
题目描述 你有n个砝码,均为1克,2克或者3克.你并不清楚每个砝码的重量,但你知道其中一些砝码重量的大小关系.你把其中两个砝码A 和B 放在天平的左边,需要另外选出两个砝码放在天平的右边.问:有多少种选法使得天平的左边重(c1).一样重(c2).右边重(c3)?(只有结果保证惟一的选法才统计在内) 输入输出格式 输入格式: 第一行包含三个正整数n,A,B(1<=A,B<=N,A 和B 不相等).砝码编号 为1~N.以下n行包含重量关系矩阵,其中第i行第j个字符为加号“+”表示砝 码i比砝码j重…
题目描述 幼儿园里有 $N$ 个小朋友,$lxhgww $老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候,$lxhgww$ 需要满足小朋友们的 $K$ 个要求.幼儿园的糖果总是有限的,$lxhgww$ 想知道他至少需要准备多少个糖果,才能使得每个小朋友都能够分到糖果,并且满足小朋友们所有的要求. 输入输出格式 输入格式: 输入的第一行是两个整数 $N$,$K$.接下来 $K$ …
二维平面上的差分,我们可以对每行处理. 比如我们要把(2,2)(5,5)之间的矩形加上1,可以这样处理. 0 0 0 0 0 0 0 +1 0 0 0 -1 0 +1 0 0 0 -1 0 +1 0 0 0 -1 0 +1 0 0 0 -1 0 0 0 0 0 0 那么这道题就简单了. 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,m,a[1001][1001],c[1001][1001]; 4 5 int main(){ 6…
传送门 ODTODTODT水题. 题意:有一个字母序列,支持区间赋值,查询区间某个字母的数量,区间按字母序排序. 思路: 可以开262626棵线段树搞过去,然而也可以用ODTODTODT秒掉. 如果用ODTODTODT排序操作可以直接上桶排感觉快到飞起. 不会ODTODTODT的点这儿 代码: #include<bits/stdc++.h> #define ri register int #define fi first #define se second using namespace st…
题目传送门 糖果 题目描述 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候,lxhgww需要满足小朋友们的K个要求.幼儿园的糖果总是有限的,lxhgww想知道他至少需要准备多少个糖果,才能使得每个小朋友都能够分到糖果,并且满足小朋友们所有的要求. 输入输出格式 输入格式: 输入的第一行是两个整数N,K.接下来K行,表示这些点需要满足的关系,每行…
传送门 一看到区间推倒……推平操作就想到珂朵莉树 区间推平直接assign,查询暴力,排序的话开一个桶统计,然后一个字母一个字母加就好了 开桶统计的时候忘了保存原来的左指针然后挂了233 //minamoto #include<iostream> #include<cstdio> #include<set> #define IT set<node>::iterator using std::set; int read(){ #define num ch-'0…
题意简述 维护字符串,支持以下操作: 0 l r k:求l~r中k的出现次数 1 l r k:将l~r中元素赋值为k 2 l r:询问l~r中最大连续1的长度 题解思路 珂朵莉树暴力赋值,查询 代码 #include <set> #include <iostream> #define IT std::set<Node>::iterator int n,m,opt,l,r,c[26]; char ch; struct Node { int l,r,v; Node(cons…