珂朵莉的数列 思路: 树状数组+高精度 离散化不知道哪里写错了,一直wa,最后用二分写的离散化 哪位路过大神可以帮我看看原来的那个离散化错在哪里啊 通过代码: import java.math.BigInteger; import java.util.*; import java.util.Scanner; class node { int x; int id; } class cmp implements Comparator<node> { public int compare(node…
https://www.nowcoder.com/acm/contest/38/E 题意: 思路: 树状数组维护.从大佬那里学习了如何处理爆long long的方法. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; +; int n; int a[maxn],b[maxn];…
题目描述 珂朵莉给你一个长为n的序列,有m次查询 每次查询给两个数l,r 设s为区间[l,r]内所有数的乘积 求s的约数个数mod 1000000007 输入描述: 第一行两个正整数n,m第二行一个长为n的序列之后m行每行两个数l和r 输出描述: 对于每个询问,输出一个整数表示答案 示例1 输入 5 5 64 2 18 9 100 1 5 2 4 2 3 1 4 3 4 输出 165 15 9 45 10 备注: 对于100%的数据,有n , m <= 100000 , a[i] <= 100…
题目描述 珂朵莉给你一个有根树,求有多少个子树满足其内部节点编号在值域上连续 一些数在值域上连续的意思即其在值域上构成一个连续的区间 输入描述: 第一行有一个整数n,表示树的节点数.接下来n–1行,每行两个整数x,y,表示存在一条从x到y的有向边.输入保证是一棵有根树. 输出描述: 输出一个数表示答案 示例1 输入 5 2 3 2 1 2 4 4 5 输出 5 说明 节点1子树中编号为1,值域连续节点3子树中编号为3,值域连续节点5子树中编号为5,值域连续节点4子树中编号为4,5,值域连续节点2…
链接:https://ac.nowcoder.com/acm/contest/308/D 来源:牛客网 tokitsukaze and Inverse Number 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 tokitsukaze给你一个长度为n的序列,这个序列是1到n的一种排列. 然后她会进行q次操作.每次操作会给你L R k这三个数,表示区间[L,R]往右移动k次. 移动一次的…
题目链接  Problem D 比赛的时候完全想不到 直接对给定的这些点做多源$BFS$,把给定的这些点全都压到队列里,然后一个个做. 最后统计被访问的点的个数即可. #include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for (int i(a); i <= (b); ++i) #define dec(i, a, b) for (int i(a); i >= (b); --i) #define MP…
题目链接 传送门 思路 这个题在\(BZOJ\)上有个二维平面的版本(\(BZOJ2716\)天使玩偶),不过是权限题因此就不附带链接了,我也只是在算法进阶指南上看到过,那个题的写法是\(CDQ\),然后比赛开始半个小时我就开始写\(CDQ\),\(T\)了之后冷静分析发现复杂度我少算了个\(log\),\(CDQ\)写这题的复杂度是\(nlog^3(n)\),然后就没思路了. 赛后看\(qls\)说用三维\(bit\)可以过后试了一下\(T\)了,然后发现\(qls\)的代码当时跑了\(937…
Energy stones 题意 有n块石头,每块有初始能量E[i],每秒石头会增长能量L[i],石头的能量上限是C[i],现有m次时刻,每次会把[s[i],t[i]]的石头的能量吸干,问最后得到了多少能量? 分析 题意不难理解,模拟题意也不难,但是纯粹模拟会T上天,怎么处理呢?枚举时间不可行,我们可以换个角度思考问题,考虑求每一个石头的贡献行不行?如何求一个石头的贡献呢,只要知道哪个时间点吸了这个石头,就能求出这个石头的贡献了.那时间点如何维护?我们知道,相邻石头的时间点不同只可能是有终点或者…
链接:https://ac.nowcoder.com/acm/contest/1114/E来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 524288K,其他语言1048576K 64bit IO Format: %lld 题目描述 老瞎眼有一个长度为 n 的数组 a,为了为难小鲜肉,他准备了 Q 次询问,每次给出 一个区间[L,R],他让小鲜肉寻 找一对 l,r 使L<=l<=r<=R 且 a[l]^a[l+1]^a[l+2]...^a[r]=0,老瞎眼只…
题意:求所有子区间的逆序数对数之和 题解:树状数组维护,对于每一对逆序数(l,r)属于l*(n-r+1)个区间,计算每一对对结果的贡献即可,可用树状数组维护,sum维护(n-r+1),按逆序数那样操作 这题最狗的地方是爆longlong,java又超时...,用了一个小技巧,避免爆longlong #include<bits/stdc++.h> #define fi first #define se second #define ll long long #define ull unsigne…