首页 > 编程语言 >2024 CCPC第五届辽宁省程序设计竞赛 集训1

2024 CCPC第五届辽宁省程序设计竞赛 集训1

时间:2024-10-20 21:22:53浏览次数:1  
标签:int CCPC long cin 2024 ans using 集训 define

A. 左移

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int T;
    cin >> T;
    while(T--)
    {
        string s;
        cin >> s;
        int ans = -1;
        if(s.front() == s.back()) ans = 0;
        else
        {
            for(int i = 0; i < s.size() - 1; i ++)
                if(s[i] == s[i + 1])
                {
                    ans = i + 1;
                    break;
                }
        }
        cout << ans << '\n';
    }
}

B. 矩阵

#include <bits/stdc++.h>
using namespace std;
#define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
// #define int long long
#define endl '\n'
#define all(_x) _x.begin(), _x.end()
#define range(_x, _st, _ed) (_x.begin() + _st), (_x.begin() + _ed)
#define rep(_x, _y, _z) for (int _x = _y; _x <= _z; _x++)
#define matrix(_x, _y, _z) vector<vector<int>>(_x, vector<int>(_y, _z))
#define debug(_x) cout << #_x << '=' << _x << endl
using i64 = long long;
using i128 = __int128;
using pii = pair<int, int>;
using mat = vector<vector<int>>;
using u64 = unsigned long long;
constexpr int N = 2e5 + 10;
// dont use umap!!!

signed main()
{
    IOS;
    int n;
    cin >> n;
    auto ans = matrix(n, n, 0);
    int idx = 1;
    for(int i = 0; i < n - 2; i ++)
    {
        for(int j = 0; j < n; j ++)
        {
            ans[i][j] = idx;
        }
        idx++;
    }
    for(int i = 0; i < n - 2; i ++)
    {
        ans[n - 2][i] = idx;
        ans[n - 1][i] = idx++;
    }
    ans[n-2][n-2] = idx++, ans[n-2][n-1] = idx++;
    ans[n-1][n-2] = idx++, ans[n-1][n-1] = idx++;
    cout << "Yes\n";
    for(auto i : ans)
    {
        for(auto j : i) cout << j << ' ';
        cout << '\n';
    }
    return 0;
}

C. 打印机

#include <bits/stdc++.h>
using namespace std;
#define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
// #define int long long
#define endl '\n'
#define all(_x) _x.begin(), _x.end()
#define range(_x, _st, _ed) (_x.begin() + _st), (_x.begin() + _ed)
#define rep(_x, _y, _z) for (int _x = _y; _x <= _z; _x++)
#define matrix(_x, _y, _z) vector<vector<int>>(_x, vector<int>(_y, _z))
#define debug(_x) cout << #_x << '=' << _x << endl
using i64 = long long;
using i128 = __int128;
using pii = pair<int, int>;
using mat = vector<vector<int>>;
using u64 = unsigned long long;
constexpr int N = 2e5 + 10;
// dont use umap!!!

void solve()
{
    int n;
    i64 k;
    cin >> n >> k;
    vector<array<i64, 3>> a(n);
    for(auto &[t,l,w] : a)
    {
        cin >> t >> l >> w;
    }
    auto check = [&](i64 mid)
    {
        i128 sum = 0;
        for(auto [t, l, w] : a)
        {
            sum += mid / (t * l + w) * l + min(mid % (t * l + w) / t, l);
        }
        return sum >= k;
    };
    i64 l = 0, r = 2e18;
    while(l < r)
    {
        i64 mid = l + r >> 1ll;
        if(check(mid)) r = mid;
        else l = mid + 1;
    }
    cout << r << '\n';
}

signed main()
{
    IOS;
    int _ = 1;
    cin >> _;

    while (_--) solve();

    return 0;
}

D. 多彩的线段II

#include<bits/stdc++.h>
using namespace std;

using i64 = long long;
const int mod = 998244353;

void solve()
{
    int n, k;
    cin >> n >> k;
    vector<array<int, 2>> a(n);
    for(auto &[l,r] : a)
    {
        cin >> l >> r;
    }
    sort(a.begin(), a.end());
    priority_queue<int, vector<int>, greater<int>> heap;
    i64 ans = 1;
    for(auto [l, r] : a)
    {
        while(heap.size() and heap.top() < l) heap.pop();
        ans = ans * (k - heap.size()) % mod;
        heap.push(r);
    }
    cout << ans << '\n';
}

int main()
{
    cin.tie(0) -> sync_with_stdio(0);
    int T;
    cin >> T;
    while(T--) solve();
}

E. 分割序列

#include <bits/stdc++.h>
using namespace std;
#define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
// #define int long long
#define endl '\n'
#define all(_x) _x.begin(), _x.end()
#define range(_x, _st, _ed) (_x.begin() + _st), (_x.begin() + _ed)
#define rep(_x, _y, _z) for (int _x = _y; _x <= _z; _x++)
#define matrix(_x, _y, _z) vector<vector<int>>(_x, vector<int>(_y, _z))
#define debug(_x) cout << #_x << '=' << _x << endl
using i64 = long long;
using i128 = __int128;
using pii = pair<int, int>;
using mat = vector<vector<int>>;
using u64 = unsigned long long;
constexpr int N = 2e5 + 10;
// dont use umap!!!

void solve()
{
    int n;
    cin >> n;
    vector<i64> suf(n);
    for(int i = 0; i < n; i ++) cin >> suf[i];
    for(int i = n - 2; i >= 0; i --)
    {
        suf[i] += suf[i + 1];
    }
    sort(suf.begin() + 1, suf.end(), greater<int>());
    i64 ans = suf[0];
    cout << ans << ' ';
    for(int i = 1; i < n; i ++)
    {
        ans += suf[i];
        cout << ans << ' ';
    }
    cout << '\n';
}

signed main()
{
    IOS;
    int _ = 1;
    cin >> _;

    while (_--) solve();

    return 0;
}

F. 多彩的生成树

#include <bits/stdc++.h>
using namespace std;

int n;
int c[1010], f[1010];
int a[1010][1010];

int find(int x)
{
    return x == f[x] ? x : f[x] = find(f[x]);
}

void solve()
{
    cin >> n;
    iota(f, f + n + 1, 0);
    for (int i = 1; i <= n; i++)
        cin >> c[i];
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= n; j++)
            cin >> a[i][j];
    vector<array<int, 3>> edges;
    for (int i = 1; i <= n; i++)
        for (int j = i; j <= n; j++)
        {
            edges.push_back({i, j, a[i][j]});
        }
    sort(edges.begin(), edges.end(), [&](array<int, 3> p1, array<int, 3> p2)
         { return p1[2] < p2[2]; });
    long long ans = 0;
    for (auto [u, v, w] : edges)
    {
        if (u == v)
        {
            ans += (long long)(c[u] - 1) * w;
            c[u] = 1;
        }
        else
        {
            int fu = find(u), fv = find(v);
            if (fu != fv)
            {
                ans += (long long)(c[u] + c[v] - 1) * w;
                c[u] = c[v] = 1;
                f[fu] = fv;
            }
        }
    }
    cout << ans << '\n';
}

int main()
{
    cin.tie(0)->sync_with_stdio(0);
    int T;
    cin >> T;
    while (T--)
        solve();
}

G. 王国英雄

#include <bits/stdc++.h>
using namespace std;
#define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
// #define int long long
#define endl '\n'
#define all(_x) _x.begin(), _x.end()
#define range(_x, _st, _ed) (_x.begin() + _st), (_x.begin() + _ed)
#define rep(_x, _y, _z) for (int _x = _y; _x <= _z; _x++)
#define matrix(_x, _y, _z) vector<vector<int>>(_x, vector<int>(_y, _z))
#define debug(_x) cout << #_x << '=' << _x << endl
using i64 = long long;
using i128 = __int128;
using pii = pair<int, int>;
using mat = vector<vector<int>>;
using u64 = unsigned long long;
constexpr int N = 2e5 + 10;
// dont use umap!!!

void solve()
{
    i64 p, a, b;
    cin >> p >> a >> b;
    i64 q, c, d;
    cin >> q >> c >> d;
    i64 m, t;
    cin >> m >> t;
    while(t > b + d)
    {
        i64 x = m / p;
        if(x == 0) break;
        i64 L = (p * (x + 1) - m + (q - p) * x - 1) / ((q - p) * x);
        L = min(L, t / ((a + c) * x + b + d));
        if(L == 0)
        {
            L = 1;
            x = (t - b - d) / (a + c);
        }
        if(x == 0) break;
        m += L * (q - p) * x;
        t -= L * ((a + c) * x + b + d);
    }
    cout << m << '\n';
}

signed main()
{
    IOS;
    int _ = 1;
    cin >> _;

    while (_--) solve();

    return 0;
}

标签:int,CCPC,long,cin,2024,ans,using,集训,define
From: https://www.cnblogs.com/orangecodelog/p/18487926

相关文章

  • 2024 CCPC区域赛哈尔滨 游记
    Day.0热身赛0.东北林业大学环境还是挺不错的,去看了森林博物馆,还转了转,不愧是林业大学吗这么多树。饭票可以用在食堂各个窗口不错,甚至连蜜雪冰城都可以用。A.签到题。用一用抽屉原理,得知最多填20个格子,对角线空出来即可。第一发不小心以为是填满4*4的16个格子,当时觉得极其的对......
  • [20241024] T3 题解
    细节挺多的。题意有一个长度为\(n\)的数组\(a\)和一个长度为\(m\)的队列\(q\),初始时\(q\)中的元素和为\(0\)。对\(x=1,2,\cdots,n\)进行如下操作:如果队首元素\(q_1<a_x\),则\(q\)弹出队首,将\(a_x\)插入队尾。在操作结束后,定义数组\(a\)的权值为\(q\)......
  • #2024-2025-1学号20241309《计算机基础与程序设计》第四周学习总结
    作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计这个作业要求在哪里2024-2025-1计算机基础与程序设计第四周作业这个作业的目标|作业正文|2024-2025-1学号20241309《计算机基础与程序设计》第四周学习总结教材学习内容总结《计算机科学概论》......
  • 2024-2025-1 20241312 《计算机基础与程序设计》第4周学习总结
    作业信息|这个作业属于哪个课程|<班级的链接>(如2024-2025-1-计算机基础与程序设计)||这个作业要求在哪里|<作业要求的链接>(如2024-2025-1计算机基础与程序设计第四周作业||这个作业的目标|门电路组合电路,逻辑电路冯诺依曼结构CPU,内存,IO管理嵌入式系统,并行结构物理安全||作业......
  • 多校A层冲刺NOIP2024模拟赛09
    多校A层冲刺NOIP2024模拟赛09考试唐完了,T2、T4都挂了100分,人麻了。排列最小生成树给定一个\(1,2,\dots,n\)的排列\(p_1,p_2,\dots,p_n\)。构造一个\(n\)个点的完全无向图,节点编号分别是\(1,2,\dots,n\)。节点i和节点j之间的边边权为\(|pi−pj|×|i......
  • 2024 ICPC Asia Taiwan Online Programming Contest题解记录
    比赛链接:https://codeforces.com/gym/105383/problemA.AnimalFarm找个最大pig,然后所有比他小的其他种类生物一直加就好了#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constllmod=1e9+7;llksm(llx,lly){ llans=1; while(y) { if(y&1)......
  • 2024-2025-1 20241308 《计算机基础与程序设计》第四周学习总结
    作业信息这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK04这个作业的目标 <门电路组合电路,逻辑电路冯诺依曼结构CPU,内存,IO管理嵌入式系统,并行结构物理安全>作业正......
  • 0xGame2024-week2-crypto
    CryptoLFSR-babyfromrandomimportgetrandbitsfromsecretimportflag,seedfromhashlibimportmd5defMD5(m):returnmd5(str(m).encode()).hexdigest()classLFSR: def__init__(self,seed,Length): self.Length=Length assertseed.bit_length()<......
  • 2024-2025-1 20241417 《计算机基础与程序设计》第四周学习总结
    2024-2025-120241300《计算机基础与程序设计》第四周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第四周作业)这个作业的目标门电路,组合电路,逻......
  • 2024-2025-1 20241423 《计算机基础与程序设计》第四周学习总结
    作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计)这个作业要求在哪里2024-2025-1计算机基础与程序设计第四周作业)这个作业的目标计算机科学概论(第七版)第4章,第5章,《C语言程序设计》第3章并完成云班课测试作业正文...本博客链接教材学习内......