首页 > 编程语言 >2024 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(省赛)

2024 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(省赛)

时间:2024-07-16 21:21:03浏览次数:9  
标签:CAIP int cin 2024 ++ vector && using 省赛

2024 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(省赛)

RC-u1 热҈热҈热҈

#include<bits/stdc++.h>

using namespace std;

using i64 = long long;

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

    int n,w;
    cin >> n >> w;

    int ans1 = 0, ans2 = 0;
    for(int i = 0;i < n;i ++){
        int x;
        cin >> x;

        if(x >= 35){
            if(w == 4) ans2 ++;
            else ans1 ++;
        }

        w ++;
        if(w > 7) w = 1;
    }

    cout << ans1 << ' ' << ans2 << '\n';

    return 0;
}

RC-u2 谁进线下了?

#include<bits/stdc++.h>

using namespace std;

using i64 = long long;

int level(int x){
    if(x == 1) return 12;
    if(x == 2) return 9;
    if(x == 3) return 7;
    if(x == 4) return 5;
    if(x == 5) return 4;
    if(x <= 7) return 3;
    if(x <= 10) return 2;
    if(x <= 15) return 1;
    return 0;
}

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

    int n;
    cin >> n;

    vector<int> a(20);
    for(int i = 0;i < n;i ++){
        for(int j = 0;j < 20;j ++){
            int c,p;
            cin >> c >> p;
            a[j] += level(c) + p;
        }
    }

    for(int i = 0;i < 20;i ++){
        cout << i + 1 << ' ' << a[i] << '\n';
    }

    return 0;
}

RC-u3 暖炉与水豚

思路

标记暖气周围,当一只水豚周围没有暖气时,说明它周围都有可能是隐藏的暖气,但是要注意判断不在冷水豚的周围。

#include<bits/stdc++.h>

using namespace std;

using i64 = long long;

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

    int n, m;
    cin >> n >> m;

    vector<string> s(n);
    for (auto &i : s)
        cin >> i;

    vector st(n, vector<int>(m));
    const int u[] = {1, 1, 1, -1, -1, -1, 0, 0};
    const int v[] = {1, 0, -1, 1, 0, -1, 1, -1};

    for (int i = 0; i < n; i ++)
        for (int j = 0; j < m; j ++)
            if (s[i][j] == 'm') {
                st[i][j] = 1;
                for (int k = 0; k < 8; k ++) {
                    int x = i + u[k], y = j + v[k];
                    if (x >= 0 && x < n && y >= 0 && y < m)
                        st[x][y] = 1;
                }
            }

    for (int i = 0; i < n; i ++)
        for (int j = 0; j < m; j ++)
            if (s[i][j] == 'c') {
                st[i][j] = 2;
                for (int k = 0; k < 8; k ++) {
                    int x = i + u[k], y = j + v[k];
                    if (x >= 0 && x < n && y >= 0 && y < m)
                        st[x][y] = 2;
                }
            }

    vector<array<int, 2>> ans;
    for (int i = 0; i < n; i ++)
        for (int j = 0; j < m; j ++)
            if (s[i][j] == 'w' && st[i][j] == 0) {
                for (int k = 0; k < 8; k ++) {
                    int x = i + u[k], y = j + v[k];
                    if (x >= 0 && x < n && y >= 0 && y < m && s[x][y] == '.' && st[x][y] != 2)
                        ans.push_back({x + 1, y + 1});
                }
            }
    sort(ans.begin(), ans.end());

    if (ans.empty()) cout << "Too cold!\n";
    else
        for (auto &[x, y] : ans)
            cout << x << ' ' << y << '\n';

    return 0;
}

RC-u4 章鱼图的判断

思路

dfs 判环是否只有一个,用个时间戳记录一下环的个数即可。

#include<bits/stdc++.h>

using namespace std;

using i64 = long long;

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

    int t;
    cin >> t;

    while (t--) {

        int n, m;
        cin >> n >> m;

        vector g(n + 1, vector<int>());
        for (int i = 0; i < m; i ++) {
            int u, v;
            cin >> u >> v;
            g[u].push_back(v);
            g[v].push_back(u);
        }

        int ans = 0, cnt = 0, huan = 0;
        vector<int> vis(n + 1);
        auto dfs = [&](auto & self, int u, int fa, int num)->void{
            vis[u] = num;
            for (auto v : g[u]) {
                if (v == fa) continue;
                if (vis[v]) {
                    cnt ++;
                    ans = max(ans, num - vis[v] + 1);
                } else
                    self(self, v, u, num + 1);
            }
        };

        for (int i = 1; i <= n; i ++) {
            cnt = 0;
            if (!vis[i]) {
                dfs(dfs, i, 0, 1);
                huan += (cnt / 2 == 1);
            }
        }

        if (huan == 1 && n > 2) {
            cout << "Yes" << ' ' << ans << '\n';
        } else {
            cout << "No" << ' ' << huan << '\n';
        }

    }

    return 0;
}

RC-u5 工作安排

思路

按截至日期排个序,然后就是典型的 01 背包。

#include<bits/stdc++.h>

using namespace std;

using i64 = long long;

struct node{
    int t,d,p;
};

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

    int t;
    cin >> t;

    while (t--) {

        int n;
        cin >> n;

        vector<node> a(n);
        for(auto &i : a)
            cin >> i.t >> i.d >> i.p;

        sort(a.begin(),a.end(),[](node x,node y){
            return x.d < y.d;
        });

        const int N = 5000;
        vector<i64> dp(N + 10,INT_MIN);

        dp[0] = 0;
        for(int i = 0;i < n;i ++){
            for(int j = a[i].d;j>=a[i].t;j--)
                dp[j] = max(dp[j],dp[j-a[i].t]+a[i].p);
        }

        i64 ans = 0;
        for(int i = 0;i <= N;i ++)
            ans = max(ans,dp[i]);

        cout << ans << '\n';

    }   

    return 0;
}

标签:CAIP,int,cin,2024,++,vector,&&,using,省赛
From: https://www.cnblogs.com/Kescholar/p/18306136

相关文章

  • 2024牛客暑期多校训练营1
    Preface第一场牛客多校,直接被创飞了开局本来舒畅无比,签了A,C,H后马上上机RushI,然后写了一坨东西后过了编译就交然后就过了此时祁神给出了J题的做法,遂让机然后看榜上过的比较多的B,D两题,徐神开出了字符串G但感觉十分难写然后后面我和徐神花样对着B,D两个题想办法却......
  • P10378 [GESP202403 七级] 交流问题题解
    思路我们把关系想成一张图,每次输入就给两个人连一条边。因为一个人只有两种选择,所以我们在一个联通块内随便找一个点,跑一遍搜索,找出这个联通块内的答案。代码如下。voiddfs(intu,intcolor){cnt2++;//cnt2是这个连通块内的总点数cnt1+=color;//这个是一所学校内......
  • NOI 2024 游记
    \(\color{red}NOI\)2024游记\(\color{green}初出茅庐\)看到标题我相信你已经被诈骗了\(\color{green}怎会忘记初一参加的NOI志愿者活动!\)\(Day\)-1\(\color{green}烈火,渗透着期待\)上午上课,下午考试(死磕T1),考试时了解的志愿者的时间和我的同伴。\(Day\)0\(\col......
  • 2024信友队蓝润暑期集训提高1班②Day6
    知识总结拓扑排序给定一个有向图,找到一个拓扑排序,使得图中所有顶点都在拓扑排序中出现,且任意两个相邻顶点间都有路径相连。算法:找到入度为0的顶点,加入拓扑排序序列。对于剩余的顶点,如果其入度为0,则加入拓扑排序序列;否则,将其所有入边的顶点的入度减1。重复步骤2,直到所......
  • SMU Summer 2024 Contest Round 4
    AMadeUp思路:统计A的个数,O(1)统计cnt[bc]voidsolve(){intn;cin>>n;vector<int>cnt(n+1),b(n+1);for(inti=1;i<=n;++i){intx;cin>>x;cnt[x]++;}for(inti=1;i<=......
  • 练习题1 (2024-7-15)
    1.使⽤ls查看/etc/⽬录下所有的⽂件信息2.使⽤ls查看/etc/⽬录下名包含“a”字⺟的⽂件或者⽬录信息3.使⽤ls查看/etc/⽬录下以".conf"结尾的⽂件信息4.使⽤ls查看/etc/⽬录中以"y"字⺟开头的⽂件信息5.find查找/var/⽬录中以“.log”⽂件6.在opt⽬录下创建tes......
  • 2024大模型十大趋势
    2024大模型十大趋势关键要点一、机器外脑时代的智慧探索二、机器外脑、创意生成和情感陪伴三、大模型驱动的新未来:AI带来创意转化与机遇四、人物-行为-场景一体化:未来人工智能的新范式五、未来数字内容生产的基础设施六、共创、共建、共享智能美好未来七、十万卡集群量变......
  • 2024QBXT暑假j组精英营Day2
    \(一\)\(数据结构\)\(1\)\(链表\)\(1.0\)\(介绍\)链表分为单向链表和双向链表单向链表即当前链表只指向下一个元素双向链表即对于每个元素,记录其前面一个元素,也记录其后面一个元素。链表不建议使用STL的某些元素进行替代,手写链表更为方便。\(1.1\)\(单向链表\)\(1.......
  • 【2024年7月新版教程】python安装
    【2024年7月新版教程】python安装python安装一、下载Windows版python安装包1.访问python官网下载页2.选择python安装版本3.下载python安装程序二、在Windows系统安装python(全自动安装教程)1.启动安装2.python安装进度3.python安装完成4.查看python安装版本......
  • 2024-07-16 使用了.md文件作为路由文件来引用,在开发中能正常显示,打包的时候就报错了:Ca
    我使用了.md文件作为路由文件来引用,在开发中能正常显示,打包的时候就报错了//vite.config.ts import{defineConfig}from'vite'; importvuefrom'@vitejs/plugin-vue'; importmarkdownfrom"vite-plugin-md"; exportdefaultdefineConfig({  plugin......