202112-2 序列查询新解

简介: 202112-2 序列查询新解

090953e30f0d4cca90430bb1129585b7.png

8a66a9a4fb424efdad6c3b77d350afa3.png

a584a64df5524f08b4750bb1e7e59253.png


70分代码:

#include <bits/stdc++.h>//70分 30分运行错误
using namespace std;
const int maxn = 100005;
int n, N;
int a[maxn];
int f[maxn];
int g[maxn];
 
int main()
{
   cin >> n >> N;
   a[0] = 0;
   for (int i = 1; i <= n; i++)
   {
      cin >> a[i];
      f[a[i]] = f[a[i - 1]] + 1;
   }
   for (int i = 0; i < N; i++)
   {
      if (f[i] == 0)
         f[i] = f[i - 1];
   }
   int r=N/(n+1);
   for (int i = 0; i < N; i++)
   {
      g[i]=i/r;
   }
   int sum=0;
   for (int i = 0; i < N; i++)
   {
      sum+=abs(g[i]-f[i]);
   }
   cout<<sum;
  
}


100分代码:

利用区间内数字相同的特点,将数据压缩

#include <bits/stdc++.h> //分段思想
using namespace std;
typedef long long int ll;
const int maxn = 150000;
int n, N;
int a[maxn];
 
int main()
{
   cin >> n >> N;
   a[0] = 0;
   for (int i = 1; i <= n; i++)
   {
      cin >> a[i];
   }
   a[n + 1] = N;
   int r = N / (n + 1);
   long long sum = 0;
   for (int i = 0; i <= n; i++)
   {
      long long sum1 = 0, sum2 = 0;
      for (int j = a[i]; j < a[i + 1];)
      {
         int num = j / r; // g此时的值
         int cnt = r - j % r;//区间内共多少值
         cnt = min(cnt, a[i + 1] - j);
         sum1 = cnt * i;
         sum2 = cnt * num;
         sum+=abs(sum1-sum2);
         j+=cnt;
      }
   }
   cout<<sum;
}


相关文章
|
6月前
|
存储 算法 数据可视化
哈希表法快速求解最长连续序列 | 力扣128题详细解析
哈希表法快速求解最长连续序列 | 力扣128题详细解析
|
7月前
16.有一分数序列 1/2,2/3,3/5,5/8,8/13,13/21,…求出这个序列的前200 项之和
16.有一分数序列 1/2,2/3,3/5,5/8,8/13,13/21,…求出这个序列的前200 项之和
77 0
|
7月前
【每日一题Day277】LC2569更新数组后处理求和查询 | 线段树
【每日一题Day277】LC2569更新数组后处理求和查询 | 线段树
44 0
|
算法 测试技术 C#
C++单调向量算法:得到山形数组的最少删除次数
C++单调向量算法:得到山形数组的最少删除次数
|
算法
算法篇之二分查找(第74题探索二维矩阵、第287题寻找重复数)
算法篇之二分查找(第74题探索二维矩阵、第287题寻找重复数)
119 0
m 序列(最长线性反馈移位寄存器序列)详解
m 序列(最长线性反馈移位寄存器序列)详解
589 0
|
机器学习/深度学习 Windows
1228 序列求和 (伯努利数)
1228 序列求和 (伯努利数)
101 0
|
存储
[递推]双幂序列、多幂序列、双幂积序列的和
[递推]双幂序列、多幂序列、双幂积序列的和
215 0
[递推]双幂序列、多幂序列、双幂积序列的和
|
人工智能 Go Python
CSP 202112-2 序列查询新解 python 离散+二分法
CSP 202112-2 序列查询新解 python 离散+二分法
CSP 202112-2 序列查询新解 python 离散+二分法
|
存储 算法
算法 |【实验5.3】:一元三次方程的根-连续区间的二分搜索求近似解
算法 |【实验5.3】:一元三次方程的根-连续区间的二分搜索求近似解
174 0
算法 |【实验5.3】:一元三次方程的根-连续区间的二分搜索求近似解