2020CCPC河南省赛题解

news2025/5/18 8:50:17
A. 班委竞选

签到题,模拟。

#include <bits/stdc++.h>
#define x first
#define y second
#define int long long
//#define double long double

using namespace std;
typedef unsigned long long ULL ;
typedef pair<int,int> PII ;
typedef pair<double,double> PDD ;
const int N = 200010 , M = N * 2 , mod = 998244353 ;
int n , m ;
int a[20] , id[20] ;

void solve()
{
    cin >> n >> m ;
    for(int i = 1 ; i <= n ; i ++) {
        int c , x ;
        cin >> c >> x ;
        if(x > a[c]) {
            a[c] = x ;
            id[c] = i ;
        }
    }
    for(int i = 1 ; i <= m ; i ++)
        cout << id[i] << " " ;
    cout << "\n" ;
}
signed main()
{
    std::ios::sync_with_stdio(false) , cin.tie(0) , cout.tie(0) ;
    int t = 1 ;
//    cin >> t ;
    while (t --) solve() ;
    return 0;
}
C. 我得重新集结部队

模拟。

#include <bits/stdc++.h>
#define x first
#define y second
#define int long long
//#define double long double

using namespace std;
typedef unsigned long long ULL ;
typedef pair<int,int> PII ;
typedef pair<double,double> PDD ;
const int N = 200010 , M = N * 2 , mod = 998244353 ;
int n ;
struct node{
    int id , x , y , h , c , r , f ;
}a[2010];

void solve()
{
    cin >> n ;
    for(int i = 1 ; i <= n ; i ++) {
        cin >> a[i].id ;
        if(a[i].id == 1) {
            cin >> a[i].x >> a[i].y >> a[i].h ;
            a[i].f = 1 ;
        }
        else {
            cin >> a[i].x >> a[i].y >> a[i].c >> a[i].r ;
            a[i].f = 1 ;
        }
    }
    for(int i = 1 ; i <= n ; i ++) {
        if(a[i].id == 2) {
            int uid = -1 , dis = 1e18 ;
            for(int j = 1 ; j < i ; j ++)
                if(a[j].id == 1 && a[j].f == 1) {
                    int s = (a[i].x - a[j].x) * (a[i].x - a[j].x) + (a[i].y - a[j].y) * (a[i].y - a[j].y) ;
                    if(s < dis) {
                        dis = s ;
                        uid = j ;
                    }
                }
            if(uid != -1) {
                int fx = a[uid].x , fy = a[uid].y , d = a[i].r * a[i].r , ct = a[i].c * 3 ;
                for(int j = 1 ; j < i ; j ++)
                    if(a[j].id == 1 && a[j].f == 1) {
                        int s = (fx - a[j].x) * (fx - a[j].x) + (fy - a[j].y) * (fy - a[j].y) ;
                        if(s <= d) {
                            if(a[j].h <= ct) {
                                a[j].f = 0 ;
                            }
                            else {
                                a[j].h -= ct ;
                                a[i].f = 0 ;
                            }
                        }
                    }
            }
        }
    }

    for(int i = 1 ; i <= n ; i ++)
        if(a[i].f) cout << "Yes\n" ;
        else cout << "No\n" ;
}
signed main()
{
    std::ios::sync_with_stdio(false) , cin.tie(0) , cout.tie(0) ;
    int t = 1 ;
//    cin >> t ;
    while (t --) solve() ;
    return 0;
}
I. 太阳轰炸

这道题其实就是在问,投影的r+飞弹的r与轰炸范围的r的关系,如果前者大,所有飞弹都落在投影内,反之就需要去求落在投影内的概率,然后排列组合。用到了逆元,但不难。

#include <bits/stdc++.h>
#define x first
#define y second
#define int long long

using namespace std;
typedef unsigned long long ULL;
typedef pair<int, int> PII;
typedef pair<double, double> PDD;
const int N = 5000010, M = N * 2, mod = 1e9 + 7, md = 998244353;
int n, R1, R2, r, a, h;
int fa[N], infa[N], fu[N], fv[N];

int qmi(int a, int k)
{
    int res = 1;
    while (k)
    {
        if (k & 1)
            res = res * a % mod;
        a = a * a % mod;
        k >>= 1;
    }
    return res;
}
int C(int a, int b)
{
    if (b > a)
        return 0;
    return fa[a] * infa[b] % mod * infa[a - b] % mod;
}
void solve()
{
    cin >> n >> R1 >> R2 >> r >> a >> h;
    fa[0] = infa[0] = 1;
    for (int i = 1; i <= n; i++)
    {
        fa[i] = i * fa[i - 1] % mod;
        infa[i] = infa[i - 1] * qmi(i, mod - 2) % mod;
    }
    int u = 1, v = 0;
    if (R2 > R1 + r)
    {
        u = ((R1 + r) * (R1 + r) % mod) * qmi((R2 * R2) % mod, mod - 2) % mod;
        v = (R2 * R2 - (R1 + r) * (R1 + r)) % mod * qmi((R2 * R2) % mod, mod - 2) % mod;
    }
    else
    {
        if (n * a >= h)
            cout << "1\n";
        else
            cout << "0\n";
        return;
    }
    int p = h / a;
    if (h % a)
        p++;

    fu[0] = fv[0] = 1;
    for (int i = 1; i <= n; i++)
        fu[i] = (fu[i - 1] * u) % mod;
    for (int i = 1; i <= n; i++)
        fv[i] = (fv[i - 1] * v) % mod;

    int res = 0;
    for (int i = p; i <= n; i++)
    {
        int s = C(n, i) % mod;
        res = (res + s * fu[i] % mod * fv[n - i] % mod) % mod;
    }

    cout << res << "\n";
}

signed main()
{
    std::ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    int t = 1;
    //    cin >> t ;
    while (t--)
        solve();
    return 0;
}
E. 发通知

异或前缀和,想到了这一点这道题就很明了了,还需要一个离散化就ok了。

#include <bits/stdc++.h>
#define x first
#define y second
#define int long long

using namespace std;
typedef unsigned long long ULL;
typedef pair<int, int> PII;
typedef pair<double, double> PDD;
const int N = 500010, M = N * 2, mod = 1e9 + 7, md = 998244353;
int n, k, cnt;
int a[N], b[N], w[N], sw[N * 3], s[N * 3];

void solve()
{
    cin >> n >> k;
    vector<int> q;
    map<int, int> mp;
    for (int i = 1; i <= n; i++)
    {
        cin >> a[i] >> b[i] >> w[i];
        q.push_back(a[i]), q.push_back(b[i]), q.push_back(b[i] + 1);
    }
    sort(q.begin(), q.end());
    for (int i = 0; i < q.size(); i++)
        if (!mp.count(q[i]))
            mp[q[i]] = ++cnt;
    for (int i = 1; i <= n; i++)
    {
        int l = mp[a[i]], r = mp[b[i]] + 1;
        s[l]++, s[r]--;
        sw[l] ^= w[i], sw[r] ^= w[i];
    }
    for (int i = 2; i <= cnt; i++)
        s[i] += s[i - 1], sw[i] ^= sw[i - 1];
    int res = -1;
    for (int i = 1; i <= cnt; i++)
        if (s[i] >= k)
            res = max(res, sw[i]);
    cout << res << "\n";
}

signed main()
{
    std::ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    int t = 1;
    //    cin >> t ;
    while (t--)
        solve();
    return 0;
}
B. 广告投放

首先要知道 x / a / b = x / ( a × b ) x/a/b=x/(a \times b) x/a/b=x/(a×b)
这样我们就可以预处理出m所以取值,只有 m \sqrt m m 种可能。
这样就可以用dp来解决了, f [ i ] [ j ] f[i][j] f[i][j]表示在第 i i i j j j个人观看的最大收益。
转移方程: f [ i + 1 ] [ j / d [ i ] ] = m a x ( f [ i + 1 ] [ j / d [ i ] ] , f [ i ] [ j ] + c ∗ p [ i ] ) f[i+1][j/d[i]]=max(f[i+1][j/d[i]],f[i][j]+c*p[i]) f[i+1][j/d[i]]=max(f[i+1][j/d[i]],f[i][j]+cp[i])
n ≤ 1 0 5 n \leq 10^5 n105,我们可以优化掉第一维度,因为 j / d [ i ] ≤ j j/d[i] \leq j j/d[i]j,所以第二维度需要从大到小枚举,其实只要我们预处理m的时候,从大到小处理就可以了。

#include <bits/stdc++.h>
#define x first
#define y second
#define int long long

using namespace std;
typedef unsigned long long ULL;
typedef pair<int, int> PII;
typedef pair<double, double> PDD;
const int N = 100010, M = N * 2, mod = 1e9 + 7, md = 998244353;
int n, m, cnt;
int p[N], d[N], f[N], a[N];

void solve()
{
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
        cin >> p[i];
    for (int i = 1; i <= n; i++)
        cin >> d[i];
    a[++cnt] = 0;
    set<int> st;
    for (int i = m; i >= 1; i--)
    {
        if (!st[m / i])
        {
            st.insert(m / i);
            a[++cnt] = m / i;
        }
    }
    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= cnt; j++)
            f[a[j] / d[i]] = max(f[a[j]] + a[j] * p[i], f[a[j] / d[i]]);
    }
    int res = 0;
    for (int i = 0; i <= m; i++)
        res = max(res, f[i]);
    cout << res << "\n";
}

signed main()
{
    std::ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    int t = 1;
    //    cin >> t ;
    while (t--)
        solve();
    return 0;
}
J. 二进制与、平方和

在线段树上维护区间或和区间平方和即可。
如果某一段的区间或&x没有变化,则说明这一段区间不需要修改。

#include <bits/stdc++.h>
#define x first
#define y second
#define int long long

using namespace std;
typedef unsigned long long ULL;
typedef pair<int, int> PII;
typedef pair<double, double> PDD;
const int N = 300010, M = N * 2, mod = 998244353;
int n, q;
int a[N];

struct Node
{
    int s, s2;
} tr[N * 4];

void pushup(int u)
{
    tr[u].s2 = (tr[u << 1].s2 + tr[u << 1 | 1].s2) % mod;
    tr[u].s = tr[u << 1].s | tr[u << 1 | 1].s;
}
void build(int u, int l, int r)
{
    if (l == r)
    {
        tr[u].s = a[l];
        tr[u].s2 = a[l] * a[l] % mod;
        return;
    }
    int mid = l + r >> 1;
    build(u << 1, l, mid), build(u << 1 | 1, mid + 1, r);
    pushup(u);
}
int query(int u, int l, int r, int L, int R)
{
    if (l >= L && r <= R)
        return tr[u].s2;

    int mid = l + r >> 1;
    int v = 0;
    if (L <= mid)
        v = (v + query(u << 1, l, mid, L, R)) % mod;
    if (R > mid)
        v = (v + query(u << 1 | 1, mid + 1, r, L, R)) % mod;
    return v;
}
void modify(int u, int l, int r, int L, int R, int x)
{
    if ((tr[u].s & x) == tr[u].s)
        return;
    if (l == r)
    {
        tr[u].s = tr[u].s & x;
        tr[u].s2 = tr[u].s * tr[u].s % mod;
        return;
    }

    int mid = l + r >> 1;
    if (L <= mid)
        modify(u << 1, l, mid, L, R, x);
    if (R > mid)
        modify(u << 1 | 1, mid + 1, r, L, R, x);
    pushup(u);
}
void solve()
{
    cin >> n;
    for (int i = 1; i <= n; i++)
        cin >> a[i];
    build(1, 1, n);
    cin >> q;
    while (q--)
    {
        int op;
        cin >> op;
        if (op == 1)
        {
            int l, r, x;
            cin >> l >> r >> x;
            modify(1, 1, n, l, r, x);
        }
        else
        {
            int l, r;
            cin >> l >> r;
            cout << query(1, 1, n, l, r) << "\n";
        }
    }
}

signed main()
{
    std::ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    int t = 1;
    //    cin >> t ;
    while (t--)
        solve();
    return 0;
}
K. 子串翻转回文串

哈希,先找到最开始不同的位置l和最后不同的位置r,翻转一定是(l,i)或者(i,r)。
对正串和反串做哈希,枚举翻转位置,用哈希判断是否对称。(需要双哈希…

#include <bits/stdc++.h>
#define x first
#define y second
#define int long long

using namespace std;
typedef unsigned long long ULL;
typedef pair<int, int> PII;
typedef pair<double, double> PDD;
const int N = 500010, M = N * 2, mod = 1e9 + 7, P = 131;
int n;
string s, u;
ULL h1[N], p[N], h2[N];

ULL get1(int l, int r)
{
    return (h1[r] - h1[l - 1] * p[r - l + 1] % mod + mod) % mod;
}
ULL get2(int l, int r)
{
    return (h2[r] - h2[l - 1] * p[r - l + 1] % mod + mod) % mod;
}
void solve()
{
    cin >> s;
    n = s.size();
    u = s;
    reverse(u.begin(), u.end());
    s = " " + s, u = " " + u;
    int l = 1, r = n;
    while (l <= n && s[l] == u[l])
        l++;
    while (r >= 1 && s[r] == u[r])
        r--;
    if (l >= r)
    {
        cout << "Yes\n";
        return;
    }

    p[0] = 1;
    for (int i = 1; i <= n; i++)
    {
        p[i] = p[i - 1] * P % mod;
        h1[i] = (h1[i - 1] * P % mod + s[i]) % mod;
        h2[i] = (h2[i - 1] * P % mod + u[i]) % mod;
    }
    ULL f1 = h1[n], f2 = h2[n];
    for (int i = l; i <= r; i++)
    {
        ULL suma = ((h1[n] - get1(l, i) * p[n - i] % mod + mod) % mod + get2(n - i + 1, n - l + 1) * p[n - i] % mod) % mod, suma1 = ((h2[n] - get2(n - i + 1, n - l + 1) * p[l - 1] % mod + mod) % mod + get1(l, i) * p[l - 1] % mod) % mod;
        ULL sumb = ((h1[n] - get1(i, r) * p[n - r] % mod + mod) % mod + get2(n - r + 1, n - i + 1) * p[n - r] % mod) % mod, sumb1 = ((h2[n] - get2(n - r + 1, n - i + 1) * p[i - 1] % mod + mod) % mod + get1(i, r) * p[i - 1] % mod) % mod;
        if (suma == suma1 || sumb == sumb1)
        {
            cout << "Yes\n";
            return;
        }
    }
    cout << "No\n";
}

signed main()
{
    std::ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    int t = 1;
    cin >> t;
    while (t--)
        solve();
    return 0;
}
F. 旅游胜地

二分距离+2-set。

#include <bits/stdc++.h>
#define x first
#define y second
#define int long long

using namespace std;
typedef unsigned long long ULL;
typedef pair<int, int> PII;
typedef pair<double, double> PDD;
const int N = 1000010, M = N * 2, mod = 1e9 + 7, P = 131;
int n, m;
int a[N], b[N], u[N], v[N];
int h[N], e[M], ne[M], idx;
int dfn[N], low[N], tmp, stk[N], top, in_stk[N], id[N], s_cnt;

void add(int a, int b)
{
    e[idx] = b, ne[idx] = h[a], h[a] = idx++;
}
void tarjan(int u)
{
    low[u] = dfn[u] = ++tmp;
    stk[++top] = u;
    in_stk[u] = 1;

    for (int i = h[u]; ~i; i = ne[i])
    {
        int j = e[i];
        if (!dfn[j])
        {
            tarjan(j);
            low[u] = min(low[u], low[j]);
        }
        else if (in_stk[j])
            low[u] = min(low[u], dfn[j]);
    }

    if (dfn[u] == low[u])
    {
        ++s_cnt;
        int y;
        do
        {
            y = stk[top--];
            in_stk[y] = 0;
            id[y] = s_cnt;
        } while (y != u);
    }
}
bool check(int mid)
{
    for (int i = 0; i <= n * 2; i++)
        h[i] = -1, dfn[i] = low[i] = stk[i] = in_stk[i] = id[i] = 0;
    idx = top = s_cnt = tmp = 0;

    for (int i = 0; i < m; i++)
    {
        int fu = u[i], fv = v[i];
        if (abs(a[fu] - a[fv]) > mid)
        {
            add(fu, fv + n), add(fv, fu + n);
        }
        if (abs(a[fu] - b[fv]) > mid)
        {
            add(fu, fv), add(fv + n, fu + n);
        }
        if (abs(b[fu] - a[fv]) > mid)
        {
            add(fu + n, fv + n), add(fv, fu);
        }
        if (abs(b[fu] - b[fv]) > mid)
        {
            add(fu + n, fv), add(fv + n, fu);
        }
    }
    for (int i = 1; i <= n * 2; i++)
    {
        if (!dfn[i])
            tarjan(i);
    }
    for (int i = 1; i <= n; i++)
        if (id[i] == id[i + n])
            return false;
    return true;
}
void solve()
{
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
        cin >> a[i];
    for (int i = 1; i <= n; i++)
        cin >> b[i];
    for (int i = 0; i < m; i++)
    {
        cin >> u[i] >> v[i];
    }

    int l = 0, r = 1e10;
    while (l < r)
    {
        int mid = (l + r) / 2;
        if (check(mid))
            r = mid;
        else
            l = mid + 1;
    }
    cout << l << "\n";
}

signed main()
{
    std::ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    int t = 1;
    // cin >> t;
    while (t--)
        solve();
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2378386.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数字万用表与指针万用表使用方法及注意事项

在电子测量领域&#xff0c;万用表是极为常用的工具&#xff0c;数字万用表和指针万用表各具特点。熟练掌握它们的使用方法与注意事项&#xff0c;能确保测量的准确性与安全性。下面为您详细介绍&#xff1a; 一 、数字万用表按钮功能 > 进入及退出手动量程模式 每 按 […

【读代码】端到端多模态语言模型Ultravox深度解析

一、项目基本介绍 Ultravox是由Fixie AI团队开发的开源多模态大语言模型,专注于实现音频-文本的端到端实时交互。项目基于Llama 3、Mistral等开源模型,通过创新的跨模态投影架构,绕过了传统语音识别(ASR)的中间步骤,可直接将音频特征映射到语言模型的高维空间。 核心优…

RabbitMQ工作流程及使用方法

一、什么是RabbitMQ RabbitMQ 是一款基于 ‌AMQP&#xff08;高级&#xff0c;消息队列协议&#xff09;‌ 的开源消息中间件&#xff0c;专为分布式系统设计&#xff0c;用于实现应用程序间的异步通信&#xff0c;其核心功能是通过 ‌消息代理&#xff08;Message Broker&…

算法:分治法

实验内容 在一个2kⅹ2k个方格组成的棋盘中&#xff0c;若恰有一个方格与其他方格不同&#xff0c;则称该方格为特殊方格&#xff0c;且称该棋盘为一特殊棋盘。 显然&#xff0c;特殊方格出现的位置有4k 种情况&#xff0c;即k>0,有4k 种不同的特殊棋盘 棋盘覆盖&#xff1a…

MySQL初阶:sql事务和索引

索引&#xff08;index&#xff09; 可以类似理解为一本书的目录&#xff0c;一个表可以有多个索引。 索引的意义和代价 在MySQL中使用select进行查询时会经过&#xff1a; 1.先遍历表 2.将条件带入每行记录中进行判断&#xff0c;看是否符合 3.不符合就跳过 但当表中的…

docker部署第一个Go项目

1.前期准备 目录结构 main.go package mainimport ("fmt""github.com/gin-gonic/gin""net/http" )func main() {fmt.Println("\n .::::.\n .::::::::.\n :::::::::::\n …

Visual Studio2022跨平台Avalonia开发搭建

由于我已经下载并安装了 VS2022版本&#xff0c;这里就跳过不做阐述。 1.安装 Visual Studio 2022 安装时工作负荷Tab页勾选 ‌“.NET 桌面开发”‌ 和“Visual Studio扩展开发”‌ &#xff0c;这里由于不是用的微软的MAUI&#xff0c;所以不用选择其他的来支持跨平台开发&a…

css iconfont图标样式修改,js 点击后更改样式

背景&#xff1a; 在vue项目中&#xff0c;通过点击/鼠标覆盖&#xff0c;更改选中元素的样式&#xff0c;可以通过js逻辑&#xff0c;也可以根据css样式修改。包括以下内容&#xff1a;iconfont图标的引入以及使用&#xff0c;iconfont图标样式修改【导入文件是纯白&#xff0…

开源项目实战学习之YOLO11:12.4 ultralytics-models-sam-memory_attention.py源码分析

👉 点击关注不迷路 👉 点击关注不迷路 👉 另外,前些天发现了一个巨牛的AI人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。感兴趣的可以点击相关跳转链接。 点击跳转到网站。 ultralytics-models-sam 1.sam-modules-memory_attention.pyblocks.py: 定义模…

【沉浸式求职学习day42】【算法题:滑动窗口】

沉浸式求职学习 长度最小的子数组水果成篮 关于算法题&#xff1a;滑动窗口的几个题目 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 s &#xff0c;找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组&#xff0c;并返回其长度。如果不存在符合条件的子数组…

LIIGO ❤️ RUST 12 YEARS

LIIGO &#x1f496; RUST 12 YEARS 今天是RUST语言1.0发布十周年纪念日。十年前的今天&#xff0c;2015年的今天&#xff0c;Rust 1.0 正式发行。这是值得全球Rust支持者隆重纪念的日子。我借此机会衷心感谢Rust语言创始人Graydon Hoare&#xff0c;Mozilla公司&#xff0c;以…

Linux基础开发工具二(gcc/g++,自动化构建makefile)

3. 编译器gcc/g 3.1 背景知识 1. 预处理&#xff08;进行宏替换/去注释/条件编译/头文件展开等) 2. 编译&#xff08;生成汇编) 3. 汇编&#xff08;生成机器可识别代码&#xff09; 4. 连接&#xff08;生成可执行文件或库文件) 3.2 gcc编译选项 格式 &#xff1a; gcc …

全局异常处理:如何优雅地统一管理业务异常

在软件开发中&#xff0c;异常处理是保证系统健壮性的重要环节。一个良好的异常处理机制不仅能提高代码的可维护性&#xff0c;还能为使用者提供清晰的错误反馈。本文将介绍如何通过全局异常处理和业务异常统一处理来编写更加优雅的代码。 一、传统异常处理的痛点 1.1 典型问…

动态规划-LCR 166.珠宝的最大价值-力扣(LeetCode)

一、题目解析 frame二维矩阵中每个值代表珠宝的价值&#xff0c;现在从左上角开始拿珠宝&#xff0c;只能向右或向下拿珠宝&#xff0c;到达右下角时停止拿珠宝&#xff0c;要求拿的珠宝价值最大。 二、算法解析 1.状态表示 我们想要知道的是到达[i,j]为位置时的最大价值&am…

JDBC实现模糊、动态与分页查询的详解

文章目录 一. 模糊查询1. Mysql的写法2. JDBC的实现 二. 动态条件查询1. 创建生成动态条件查询sql的方法2. 完整的动态条件查询类以及测试类 三. 分页查询1. 什么是分页查询&#xff1f;2. 分页查询的分类3. MySQL的实现4. JDBC实现4.1. 创建page页4.2. 分页的实现 本章来讲一下…

域环境信息收集技术详解:从基础命令到实战应用

引言 在企业网络环境中&#xff0c;Active Directory (AD)域服务是微软提供的集中式目录服务&#xff0c;用于管理网络中的用户、计算机和其他资源。对于信息安全专业人员来说&#xff0c;熟练掌握域环境信息收集技术至关重要&#xff0c;无论是进行渗透测试、安全评估还是日常…

【C++ Qt】布局管理器

每日激励&#xff1a;“不设限和自我肯定的心态&#xff1a;I can do all things。 — Stephen Curry” &#x1f914;绪论​&#xff1a; 在Qt开发中&#xff0c;界面布局的合理设计是提升用户体验的关键。早期&#xff0c;开发者常采用绝对定位的方式摆放控件&#xff0c;即通…

vscode用python开发maya联动调试设置

如何在VScode里编写Maya Python脚本_哔哩哔哩_bilibili1 包括1&#xff0c;maya的python全面在vscode支持&#xff0c;2&#xff0c;通过mayacode发送到maya&#xff0c;3同步调试 import maya.cmds as cmds 1、让 maya.cmds编译通过 下载Autodesk_Maya_2018_6_Update_DEVK…

SLAM定位常用地图对比示例

序号 地图类型 概述 1 格栅地图 将现实环境栅格化,每一个栅格用 0 和 1 分别表示空闲和占据状态,初始化为未知状态 0.5 2 特征地图 以点、线、面等几何特征来描绘周围环境,将采集的信息进行筛选和提取得到关键几何特征 3 拓扑地图 将重要部分抽象为地图,使用简单的图形表示…

python的漫画网站管理系统

目录 技术栈介绍具体实现截图![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/0ed2084038144499a162b3fb731a5f37.png)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a76a091066f74a80bf7ac1be489ae8a8.png)系统设计研究方法&#xff1a;设计步骤设计流程核…