代码近期重新整理中…

ALGO-1 区间k大数查询

  1. 资源限制
    时间限制:1.0s 内存限制:256.0MB
  2. 问题描述
    给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。

  3. 输入格式
    第一行包含一个数n,表示序列长度。
    第二行包含n个正整数,表示给定的序列。
    第三个包含一个正整数m,表示询问个数。
    接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。

  4. 输出格式
    总共输出m行,每行一个数,表示询问的答案。

  5. 样例输入
    5
    1 2 3 4 5
    2
    1 5 2
    2 3 2
  6. 样例输出
    4
    2
  7. 数据规模与约定
    对于30%的数据,n,m<=100;
    对于100%的数据,n,m<=1000;
    保证k<=(r-l+1),序列中的数<=106。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include<bits/stdc++.h>
using namespace std;

int arr[1010];


int main(int argc, char const *argv[])
{
int lenth;
cin >> lenth;

for (int i = 1; i <= lenth; i++)
cin >> arr[i];

int num;
cin >> num;

while (num--)
{
int start, end, no, brr[1010];
cin >> start >> end >> no;
if (start <= end)
{
for (int i = start; i <= end; i++)
brr[i] = arr[i];

for (int i = start; i <= end-1; i++)
{
for (int j = start; j <= end-1; j++)
{
if(brr[j]<brr[j+1])
{
int temp = brr[j];
brr[j]=brr[j+1];
brr[j+1]=temp;1
}
}
}
cout << brr[start+no-1] << endl;
}
}

return 0;
}

ALGO-2 最大最小公倍数

  1. 资源限制
    时间限制:1.0s 内存限制:256.0MB
  2. 问题描述
    已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。

  3. 输入格式
    输入一个正整数N。

  4. 输出格式
    输出一个整数,表示你找到的最小公倍数。

  5. 样例输入
    9
  6. 样例输出
    504
  7. 数据规模与约定
    1 <= N <= 106。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
using namespace std;

int main(int argc, char const *argv[])
{
long long int num;
cin >> num;
if(num%2==0)
{
if(num%3==0)
cout << (num-1)*(num-2)*(num-3);
else
cout << num*(num-1)*(num-3);
}
else
cout << num*(num-1)*(num-2);
return 0;
}

ALGO-3 K好数

  1. 资源限制
    时间限制:1.0s 内存限制:256.0MB
  2. 问题描述
    如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007取模后的值。

  3. 输入格式
    输入包含两个正整数,K和L。

  4. 输出格式
    输出一个整数,表示答案对1000000007取模后的值。

  5. 样例输入
    4 2
  6. 样例输出
    7
  7. 数据规模与约定
    对于30%的数据,KL <= 106;
    对于50%的数据,K <= 16, L <= 10;
    对于100%的数据,1 <= K,L <= 100。
1