2024.2.1 寒假训练记录(15)

今天学了点网络流,vp了个div3,d真是毒瘤啊,晚上写写xcpc真题吧

CF 1921D Very Different Array

题目链接

贪心真是越菜越爱啊,天天贪假

可以想到把大的分给小的,小的分给大的,推广一下就是枚举有多少分给小的有多少分给大的

#include <bits/stdc++.h>

using namespace std;

#define int long long

typedef pair<int, int> PII;
typedef pair<double, double> PDD;
typedef pair<int, PII> PIII;

const int N = 1000010;

void solve()
{
   
	int n, m;
	cin >> n >> m;
	vector<int> a(n), b(m);
	for (int i = 0; i < n; i ++ ) cin >> a[i];
	for (int i = 0; i < m; i ++ ) cin >> b[i];
	sort(a.begin(), a.end());
	sort(b.begin(), b.end());
	int ans = 0, tmp = 0;
	for (int i = 0; i < n; i ++ ) tmp += llabs(a[i] - b[n - i - 1]), ans = max(ans, tmp);
	for (int i = 0; i < n; i ++ ) tmp = tmp - llabs(a[i] - b[n - i - 1]) + llabs(a[i] - b[m - i - 1]), ans = max(ans, tmp);
	cout << ans << '\n'; 
}

signed main()
{
   
	ios::sync_with_stdio(false);
	cin.tie(0), cout.tie(0);

	int t = 1;
	cin >> t;
	while (t -- )
	{
   
		solve();
	}
}

CF 1921F Sum of Progression

题目链接

这题学到了一个技巧,根号分治,也就是在小数据时暴力计算,大数据先预处理之后使用技巧计算

vp的时候想到了前缀和的应用,但是没能想到根号分治

#include <bits/stdc++.h>

using namespace std;

#define int long long

typedef pair<int, int> PII;
typedef pair<double, double> PDD;
typedef pair<int, PII> PIII;

const int N = 1000010;

void solve()
{
   
	int n, q;
    cin >> n >> q;
    vector<int> a(n + 1);
    for (int i = 1; i <= n; i ++ ) cin >> a[i];

    vector<vector<int>> f(n + 1, vector<int>(350)), prev(n + 1, vector<int>(351));
    for (int j = 1; j <= 350; j ++ )
    {
   
        for (int i = 1; i <= n; i ++ )
        {
   
            if (j <= i)
            {
   
                f[i][j] = f[i - j][j] + ((i - 1) / j + 1) * a[i];
                prev[i][j] = prev[i - j][j] + a[i];
            }
            else
            {
   
                f[i][j] = a[i];
                prev[i][j] = a[i];
            }
        }
    }

    while (q -- )
    {
   
        int s, d, k;
        cin >> s >> d >> k;
        int ans = 0;
        if (d <= 350)
        {
   
            if (s < d) ans = f[s + (k - 1) * d][d];
            else
            {
   
                ans = f[s + (k - 1) * d][d] - f[s - d][d];
                ans -= (s - 1) / d * (prev[s + (k - 1) * d][d] - prev[s - d][d]);
            }
        }
        else
        {
   
            for (int i = s; i <= s + (k - 1) * d; i += d)
            {
   
                ans += ((i - s) / d + 1) * a[i];
            }
        }
        cout << ans << ' ';
    }
    cout << '\n';
}

signed main()
{
   
	ios::sync_with_stdio(false);
	cin.tie(0), cout.tie(0);

	int t = 1;
	cin >> t;
	while (t -- )
	{
   
		solve();
	}
}

相关推荐

  1. 2024.2.1 寒假训练记录15

    2024-02-02 08:14:04       56 阅读
  2. 2024.2.15 寒假训练记录(24)

    2024-02-02 08:14:04       48 阅读
  3. 2024.1.28 寒假训练记录11

    2024-02-02 08:14:04       70 阅读
  4. 寒假学习记录15:Node(网络)

    2024-02-02 08:14:04       49 阅读
  5. 寒假学习记录16:Express框架(Node)

    2024-02-02 08:14:04       59 阅读
  6. 寒假 14

    2024-02-02 08:14:04       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-02 08:14:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-02 08:14:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-02 08:14:04       82 阅读
  4. Python语言-面向对象

    2024-02-02 08:14:04       91 阅读

热门阅读

  1. 用C#实现实时动态图表

    2024-02-02 08:14:04       48 阅读
  2. WebSocket

    WebSocket

    2024-02-02 08:14:04      50 阅读
  3. 前端如何预防CSRF

    2024-02-02 08:14:04       53 阅读
  4. python笔记11

    2024-02-02 08:14:04       52 阅读
  5. 前端下载导出文件流,excel/word/pdf/zip等

    2024-02-02 08:14:04       64 阅读
  6. yolov5导出onnx模型问题

    2024-02-02 08:14:04       47 阅读
  7. 【centos系统ddos攻击】

    2024-02-02 08:14:04       56 阅读
  8. Unity_Visual Effect Graph2

    2024-02-02 08:14:04       43 阅读
  9. 为什么游戏APP选择不上架?

    2024-02-02 08:14:04       58 阅读