区间加,区间乘,单点查询。 跟线段树的差不多,为了避免精度问题要先乘再加。区别也和其他的差不多,残块暴力。然后就没什么了。scanf读int要& ! 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<cmath> 5 using namespace std; 6 const int mod = 10007; 7
区间开方,求和。 分析性质可发现sqrt(0)= 0,sqrt(1) = 1,所以记录每块是否已不能改变。 区分l与r啊。。错了这么个关键字母可不爆零了么。。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<algorithm> 6 using namespace std; 7 typede
hzwer tql! 渐渐找到了分块的套路。 给出一个长为 n 的数列,以及 n 个操作,操作涉及区间加法,询问区间内小于某个值 c*c 的元素个数。 残块先在原数组上暴力,然后拿原数组更新块数组(效率高于结构体存id!),整块就标记。 code: 1 #include<iostream> 2 #include<cmath> 3 #include<cs
参考博文 题目就是让我们求图中满足数值大于等于B的连通块数量 然后我们可以尝试转换为求连通块两端所产生的“谷”的数量,显然一个连通块对谷可以贡献2的答案,最终答案就是谷的数量除以2 (下图为查询$B_i$大小为4时的情况,每一个箭头代表一个谷) 发现每两个数中间的空格都是有可能产
分析 区间李超树板子题 代码 #include<bits/stdc++.h>using namespace std;#define db doubleconst int inf = 1e8;const int N = 1e5;int n,m,is;struct node { int x1,x2; db y1,y2; node(int x1=-N,int x2=N,db y1=-1e8,db y2=-1e8):x1(x1),x2(x2),y1(y1),y2(y2) {}}
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一张 n 个点 m 条边的无向图,现在想要把这张图定向。 有 p 个限制条件,每个条件形如 \((x_i, y_i)\),表示在新的有向图当中,\(x_i\) 要能够沿着一些边走到 \(y_i\)。 现在请你求出,每条边的方向是否
目录 @description@ @solution@ @accepted code@ @details@ @description@ V 君、I 君和 Y 君是好朋友。 I 君最近开了一家商店,商店里准备了 N 种物品(编号为 0~N-1 中的整数),每种物品均有无限个可供出售,每种物品的单价是 0 或者 1。 V 君想知道每个物品的价格,他已经通过某种
title LOJ 3195 analysis 首先明确一个东西, 一个数如果被异或奇数次,才会对结果做出贡献。 所以对于查询操作,手玩发现: 对于不同奇偶性 \(l,r\) ,这段区间中的每个数在答案里都出现了偶数次,也就是被异或了偶数次,那么最大后答案便为 \(0\) ; 对于同奇偶性 \(l,r\) , 与区间端点奇偶性相
loj 我本来是直接口胡了一个意思一样的做法的,但是因为觉得有点假+实现要用并查集(?)就卡了好一会儿... 对于一个点\(x\)来说,独特的点一定在它的最长链上,如果有独特的点不在最长链上,那么最长链上一定有和他到\(x\)距离相同的点,矛盾 然后对于一个点,最长链端点一定可以是直径的
目录 @description@ @solution@ @accepted code@ @details@ @description@ 小 Y 是一个心灵手巧的女孩子,她喜欢手工制作一些小饰品。她有 n 颗小星星,用 m 条彩色的细线串了起来,每条细线连着两颗小星星。 有一天她发现,她的饰品被破坏了,很多细线都被拆掉了。这个饰品只剩下了
目录 @description@ @solution@ @part - 0@ @part - 1@ @accepted code@ @details@ @description@ 小 D 有 n 个 std::queue,他把它们编号为 1 到 n。 小 D 对每个队列有不同的喜爱程度,如果有他不怎么喜欢的队列占用了太大的内存,小 D 就会不开心。 具体地说,如果第 i 个队列
QQ:1532803101 \(Codeforces\) \(LOJ\) \(Luogu\) \(nowcoder\) \(cometoj\)
分析 我们发现到达一个点一定是先快车再准快车再慢车 于是快车将1-n分为多个区间 每次取出每个区间当前能到达的点的数量 选剩余时间贡献最大的的一个取得贡献并且再能到达的最远点建立准快车 代码 #include<bits/stdc++.h>using namespace std;#define int long longint n,m,k,a
https://www.cnblogs.com/scx2015noip-as-php/p/loj6029.html 一开始以为裸的区间除,维护这一段是否全为0,后来发现还有加法,这样就会被卡了 这题除数达到了1e9,题解说在数很小除数很大的时候区间除会变成区间减,如一段序列由$x,x-1$组成,除一个$d$相当于减去了同样的变化量 所以我们需
题目传送门 传送门 想抄一个短一点ddp板子。然后照着Jode抄,莫名其妙多了90行和1.3k。 Code /** * loj * Problem#2955 * Accepted * Time: 2653ms * Memory: 25616k */#include <bits/stdc++.h>using namespace std;typedef bool boolean;const int N = 1e5 + 5;#defi
每日一题 day17 打卡 Analysis 二维树状数组的单点修改和区间查询,和一维的差不多 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<queue> 6 #define int long long 7 #define maxn 4096+10 8 #define INF 2147483647/2-1
每日一题 day13 打卡 Analysis 用简单的树状数组维护单点修改和查询就行了 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #define maxn 500000+10 6 using namespace std; 7 inline int read() 8 { 9 int x=0;10 bool f=1;
分析 区间加,区间和,区间最小值,区间整除 题解 跟区间开方的性质差不多,一次一次除下去,区间中的数会越来越接近 当区间中的数接近时,他们减少的数会相等,就转换成了区间减 代码 1 /***************************** 2 User:Mandy.H.Y 3 Language:c++ 4 Problem:market 5 *****
每日一题 day6 打卡 Analysis 题目的意思是找在区间[x,y]之间满足能够由k个b的不同次幂相加得到的数的总数。这题的关键是转换进制,之前几道题我们保存的是数的每位数,其实也就是10进制,这题我们要保存的是b进制,所以在ask函数中要把原来的对10求余和除10都要改成对b进行操作,dp[x][pre
这个题目我是建立一个操作树,根据时间的关系。 合并的过程还是用并查集来实现(按秩合并),然后关于询问,我是这么处理的,对于每个联通块,我建立一个权值分块,即cnt数组 由于内存限制,所以我权值的块的大小是1200,块数是最多90,每次递归的时候,就增加cnt,递归回来的时候,就减去cnt,这样就在
题目链接https://loj.ac/problem/6278 内存限制:256 MiB时间限制:500 ms 题目描述 给出一个长为n 的数列,以及 n个操作,操作涉及区间加法,询问区间内小于某个值 x 的元素个数。 输入格式 第一行输入一个数字 。 第二行输入 n 个数字,第 i 个数字为 ai,以空格隔开。 接下来输入n
我们对最长不下降子序的单调序列进行维护,用可持久化平衡树来维护。 (ps我写的好像是主席树) 1 #include<bits/stdc++.h> 2 using namespace std; 3 int const N=500000+10; 4 int const M=N*20; 5 int rt[N],sz[M],mx[M],sum,n,ch[M][2]; 6 int find(int x
链接: https://loj.ac/problem/6280 题意: 给出一个长为n 的数列,以及 n个操作,操作涉及区间加法,区间求和。 思路: sum维护区间和, tag维护每个区间多加的,不是一整块的暴力加进去,算的时候加上tag即可. 代码: #include <iostream> #include <cstdio> #include <cstring> #include <
「LibreOJ NOIP Round #1」旅游路线 题目链接:https://loj.ac/problem/539 题解: 这个题就很神奇 首先大力$dp$很好想,因为可以把一维放到状态里以取消后效性。 然后就能倍增了...因为就是个智障$dp$ 我没想出来/px 代码: #include <bits/stdc++.h>#define N 110 #define M 1010 #de
目录 @description@ @solution@ @accepted code@ @details@ @description@ CZ 市为了欢迎全国各地的同学,特地举办了一场盛大的美食节。 作为一个喜欢尝鲜的美食客,小 M 自然不愿意错过这场盛宴。他很快就尝遍了美食节所有的美食。然而,尝鲜的欲望是难以满足的。尽管所有的菜