这是蓝书上一道很经典的数论题,位于P124页,只不过题意有一些细微偏差,但是不影响本题结论的正确性,做法可以看:洛谷P2398。我们只需要进行一次预处理,下底分块,保留SQRT(n)的查询就行了。虽然时间上Vjudge垫底,但是毕竟我弱啊……,下面是一段代码。#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 4e6 + 5;
long long f[maxn];
int&n
题目描述for i=1 to n for j=1 to n sum+=gcd(i,j)给出n求sum. gcd(x,y)表示x,y的最大公约数. 输入输出格式输入格式: n 输出格式: sum 输入输出样例输入样例#1:2 输出样例#1:5 说明数据范围 30% n<=3000 60% 7000<=n<=7100 100% n<=100000 题目十分奇特,我们知道1e6的数据n^2 log n 卡不死你也能卡爆你。我们需要将复杂度控制在O(n log n)以内。我们这样想,首先这些GCD可以被重新分
有一个字符串S,求S最少可以被划分为多少个回文串。 例如:abbaabaa,有多种划分方式。 a|bb|aabaa - 3 个回文串 a|bb|a|aba|a - 5 个回文串 a|b|b|a|a|b|a|a - 8 个回文串 其中第1种划分方式的划分数量最少。 Input输入字符串S(S的长度<= 5000)。Output输出最少的划分数量。Sample Input abbaabaaSample Output 3首先我们看见回文串问题可以模仿Manacher向空隙中填满'#'符号。然后可以推知DP转移方程dp[i + j] = min(dp[i + j], dp[i - j
题目描述如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数数加上x 2.求出某一个数的和 输入输出格式输入格式: 第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。 第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。 接下来M行每行包含2或4个整数,表示一个操作,具体如下: 操作1: 格式:1 x y k 含义:将区间[x,y]内每个数加上k 操作2: 格式:2 x 含义:输出第x个数的值 输出格式: 输出包含若干行整数,即为所有操作2的结果。 输入输出样例输入样例#1:5 5
题目背景题目名称是吸引你点进来的 实际上该题还是很水的 题目描述区间质数个数 输入输出格式输入格式: 一行两个整数 询问次数n,范围m 接下来n行,每行两个整数 l,r 表示区间 输出格式: 对于每次询问输出个数 t,如l或r∉[1,m]输出 Crossing the line 输入输出样例输入样例#1:2 5
1 3
2 6 输出样例#1:2
Crossing the line 说明【数据范围和约定】 对于20%的数据 1<=n<=10 1<=m<=10 对于100%的数据 1<=n<=1000 1
题目背景这是个非常经典的主席树入门题——静态区间第K小 数据已经过加强,请使用主席树。同时请注意常数优化 题目描述如题,给定N个正整数构成的序列,将对于指定的闭区间查询其区间内的第K小值。 输入输出格式输入格式: 第一行包含两个正整数N、M,分别表示序列的长度和查询的个数。 第二行包含N个正整数,表示这个序列各项的数字。 接下来M行每行包含三个整数l, r, kl,r,k , 表示查询区间[l, r][l,r]内的第k小值。 输出格式: 输出包含k行,每行1个正整数,依次表示每一次查询的结果 输入输出样例输入样例#1:5&nbs
题目描述如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.将某区间每一个数乘上x 3.求出某区间每一个数的和 输入输出格式输入格式: 第一行包含三个整数N、M、P,分别表示该数列数字的个数、操作的总个数和模数。 第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。 接下来M行每行包含3或4个整数,表示一个操作,具体如下: 操作1: 格式:1 x y k 含义:将区间[x,y]内每个数乘上k 操作2: 格式:2 x y k 含义:将区间[x,y]内每个数加上k 操作3: 格式:3 x y 含义:输出区间[x,y]内每个数的和对P取模所得
LCS - Longest Common Substringno tags A string is finite sequence of characters over a non-empty finite set Σ. In this problem, Σ is the set of lowercase letters. Substring, also called factor, is a consecutive sequence of characters occurrences at least once in a string. Now your task is si
题目描述作为体育委员,C君负责这次运动会仪仗队的训练。仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图)。 现在,C君希望你告诉他队伍整齐时能看到的学生人数。 输入输出格式输入格式: 共一个数N 输出格式: 共一个数,即C君应看到的学生人数。 输入输出样例输入样例#1:4 输出样例#1:9 说明【数据规模和约定】 对于 100% 的数据,1 ≤ N ≤ 40000 考虑对于一个矩形,站在左下角如何才能看到右上角的人?不难发现,如果有遮挡
题目背景这是一道模板题 题目描述给定n,p求1~n中所有整数在模p意义下的乘法逆元。 输入输出格式输入格式: 一行n,p 输出格式: n行,第i行表示i在模p意义下的逆元。 输入输出样例输入样例#1:10 13 输出样例#1:1
7
9
10
8
11
2
5
3
4 说明1 \leq n \leq 3 \times 10 ^ 6, n < p < 200005281≤n≤3×106,n<p<20000528 输入保证 pp 为质数。 突然觉得之前太傻了……居然拿逆元硬转成了线