题目:
第一次看懵了,然后发现,区间内所有的子串好像都可以排成这样一排,,,所以,就是让你算该区间的所有子串,一个求和公式。。。。
#include<stdio.h>
#include<iostream>
#include<map>
#include<algorithm>
#include<cstring>
#include<string.h>
#include<math.h>
using namespace std;
typedef long long ll;
#define MAXN 10005
#define INF 0x3f3f3f3f//将近int类型最大数的一半,而且乘2不会爆int
char ch[MAXN];
int main()
{
int n, m;
scanf("%d %d %s", &n, &m, ch);
while(m--){
int l, r;
scanf("%d %d", &l, &r);
int x = r-l+1;
int sum = (1+x)*x/2; //(首项+末项)X 项数 / 2
cout << sum << '\n';
}
return 0;
}