【记录】AT_abc400模拟赛

复建的一场,脑子还在重启中。

之前写的有很多东西都看不太懂了,有点艰难啊。

c 题:https://www.luogu.com.cn/problem/AT_abc400_c

long long 的 sqrt 应该这么写,不然会爆精度:

cpp 复制代码
LL isqrt(LL x) {
    if (x <= 1) {
        return x;
    }
    LL l = 1, r = x, p = 0;
    while(l <= r) {
        LL mid = (l + r) >> 1;
        if (mid <= x / mid) {  // avoid overflow
            l = mid + 1;
            p = mid;
        }
        else {
            r = mid - 1;
        }
    }
    return p;
}

d 题:https://www.luogu.com.cn/problem/AT_abc400_d

多个状态,转移可能付出代价,最小代价。

最短路。

e 题:https://www.luogu.com.cn/problem/AT_abc400_e

看出来 1e6 就行,暴力枚举+二分查找。

感觉不太难?

f 题:https://www.luogu.com.cn/problem/AT_abc400_f

最开始的想法是每个颜色单独计算代价,但实际各个颜色段互相交错,染色时会互相影响代价。

区间,最优子结构可达成最优子结果,状态转移和代价计算都和端点有关。

区间 dp。

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;

typedef long long LL;
const int N = 810;

LL n, c[N], x[N];
LL f[N][N];

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);

	int n;
    cin >> n;
	
	for (int i = 1; i <= n; i ++) {
        cin >> c[i], c[i + n] = c[i];
    }
	for (int i = 1; i <= n; i ++) {
        cin >> x[i];
    }
	
	for (int i = 1; i <= n * 2; i ++) {
		f[i][i] = x[c[i]] + 1;
	}
	
	for (int len = 2; len <= 2 * n; len ++) {
		for (int l = 1, r = len; r <= 2 * n; l ++, r ++) {
            f[l][r] = f[l][r - 1] + f[r][r];
			for (int k = l; k < r; k ++) {
				if (c[k] == c[r]) {
                    f[l][r] = min(f[l][r], f[l][k] + r - k + f[k + 1][r - 1]);
                }
            }
		}
    }
	
	LL res = 1e18;
	for (int l = 1, r = n; r <= 2 * n; l ++, r ++) {
        res = min(res, f[l][r]);
    }
	cout << res;
	
	return 0;
}

g 题:https://www.luogu.com.cn/problem/AT_abc400_g

看不太懂题解,先跳过,等水平归位了再补。

相关推荐
小O的算法实验室3 小时前
2024年IEEE TII SCI1区TOP,面向动态多目标多AUV路径规划的协同进化计算算法,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
Charlie_lll3 小时前
力扣解题-88. 合并两个有序数组
后端·算法·leetcode
菜鸡儿齐4 小时前
leetcode-最小栈
java·算法·leetcode
雪人不是菜鸡4 小时前
简单工厂模式
开发语言·算法·c#
岛雨QA4 小时前
常用十种算法「Java数据结构与算法学习笔记13」
数据结构·算法
weiabc4 小时前
printf(“%lf“, ys) 和 cout << ys 输出的浮点数格式存在细微差异
数据结构·c++·算法
铸人4 小时前
大数分解的Shor算法-C#
开发语言·算法·c#
问好眼4 小时前
《算法竞赛进阶指南》0x01 位运算-3.64位整数乘法
c++·算法·位运算·信息学奥赛
yyjtx4 小时前
DHU上机打卡D31
开发语言·c++·算法
GEO行业研究员4 小时前
《认知锚定与路径锁死:基于爱搜光年模型的AI决策链条风险放大机制监测》
人工智能·算法·ai搜索优化·geo优化·医疗geo·医疗geo优化