第三届“传智杯”全国大学生IT技能大赛(初赛A组)题解

留念

第三届“传智杯”全国大学生IT技能大赛(初赛A组)题解

C – 志愿者

排序。。按照题目规则说的排就可以。wa了两发我太菜了qwq

#include
using namespace std;
const int MAXN = 1e6 + 10;
inline int read() {
    char c = getchar(); int x = 0, f = 1;
    while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}
    while(c >= '0' && c  b.t * b.k) return 1;
        else if(t * k < b.t * b.k) return 0;

        if(t > b.t) return 1;
        else if(t < b.t) return 0;

        return id < b.id;
    }
}a[MAXN];
int main() {
    int N = read();
    for(int i = 1; i

D – 终端

模拟一下就行了吧。。

#include
using namespace std;
const int MAXN = 1e6 + 10;
inline int read() {
    char c = getchar(); int x = 0, f = 1;
    while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}
    while(c >= '0' && c  mp;
string opt;
int main() {
#ifndef ONLINE_JUDGE
    freopen("a.in", "r", stdin);
#endif
    int N = read();
    for(int i = 1; i > opt;
        if(opt == "touch") {
            string fn;
            cin >> fn;
            if(mp.find(fn) != mp.end()) continue;
            mp[fn] = i;
        } else if(opt == "rm") {
            string fn;
            cin >> fn;
            if(mp.find(fn) == mp.end()) continue;
            mp.erase(fn);
        } else if(opt == "ls") {
            vector> tmp;
            for(auto &x: mp) {
                tmp.push_back(make_pair(x.second, x.first));
            }
            sort(tmp.begin(), tmp.end());
            for(auto x: tmp)
                cout << x.second << '\n';
        } else if(opt == "rename") {
            string s1, s2;
            cin >> s1 >> s2;
            if(mp.find(s1) == mp.end()) continue;
            int tmp = mp[s1];
            mp.erase(s1);
            mp[s2] = tmp;
        }
    }
    return 0;
}

E – 运气

显然每个位置只能是1-6,因此所有状态数是(6^{10})不会很大,dfs一下

#include
using namespace std;
const int MAXN = 1e6 + 10;
const int mod = 1e9 + 7;
#define LL long long
inline int read() {
    char c = getchar(); int x = 0, f = 1;
    while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}
    while(c >= '0' && c

F – 游戏

首先题目有个bug,没有描述序列中有相同数的情况

那就假设所有数都不相同

可以分两种情况考虑,(c1 < c2)和(c1 > c2),相等的话直接输出((N – 1) * c1)就行。

这两种是类似的,这里只说第一种。

显然,数组中的每一对数都有两种情况:1.异或之后二进制位仅有1位为1,2.有多位唯一。

接下来我是转化成了图论问题去考虑,不然感觉有点复杂。

我们把所有异或之后二进制位仅有1个1的点之间连边。

考虑得到的这张图的性质:

对于任意一个联通块,我们一定能通过使用c1代价来每次消掉一个元素,并能保证最后只剩下一个元素。

emmm,,至于为什么,,可以从联通块中抽出一个树来,显然每次从叶子节点删,一定满足条件。

这样的话,只需要dfs出所有联通块,并求出其大小就好。

然后加加减减把答案算出来,具体看代码

复杂度(O(n^2))(实际上还可以优化为(O(nlogn)),这里不再赘述)

#include
using namespace std;
const int MAXN = 1e6 + 10;
const int mod = 1e9 + 7;
#define LL long long
inline int read() {
    char c = getchar(); int x = 0, f = 1;
    while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}
    while(c >= '0' && c  v[MAXN];
void dfs(int x) {
    cnt++;
    vis[x] = 1;
    for(auto &to: v[x]) {
        if(!vis[to])
            dfs(to);
    }
}
void dfs2(int i) {
    cnt++;
    vis[i] = 1;
    for(int j = 1; j

G – 森林

(好久没打比赛,开场还以为是个LCT,后来又想操作子树的好像是ETT,不过还好及时终止了自己的危险想法)

感觉这题思维上比上一题简单不少,

对于第一个删边比较难操作

可以倒序考虑转化成加边。

然后并查集维护连通性就ok了

具体看代码

#include
using namespace std;
const int MAXN = 1e6 + 10;
const int mod = 1e9 + 7;
#define LL long long
inline int read() {
    char c = getchar(); int x = 0, f = 1;
    while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}
    while(c >= '0' && c  ans;
int main() {
#ifndef ONLINE_JUDGE
    freopen("a.in", "r", stdin);
#endif
    N = read(); M = read();
    for(int i = 1; i = 1; i--) {
        if(op[i].opt == 1) {
            int id = op[i].a;
            unionn(E[id].u, E[id].v);
        } else if(op[i].opt == 2) {
            int id = op[i].a, pre = val[id];
            int fx = find(id);
            sum[fx] -= pre;
            sum[fx] += op[i].b;
            val[id] = op[i].b;
        } else {
            ans.push_back(query(op[i].a));
        }
    }

    reverse(ans.begin(), ans.end());
    for(auto &x: ans) cout << x << '\n';
    return 0;
}
/*

*/

Original: https://www.cnblogs.com/zwfymqz/p/14165004.html
Author: 自为风月马前卒
Title: 第三届“传智杯”全国大学生IT技能大赛(初赛A组)题解

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/541746/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • SpringBoot:SpringBoot和SpringCloud版本匹配问题导致Bean冲突问题

    报错信息 Error starting ApplicationContext. To display the conditions report re-run your appli…

    Java 2023年5月30日
    089
  • fastposter发布1.4.2 跨语言的海报生成器

    fastposter发布1.4.2 跨语言的海报生成器 fastposter发布1.4.2 跨语言的海报生成器,一分钟完成海报开发 future: 完善docker镜像 引入异步a…

    Java 2023年6月5日
    098
  • SpringMVC笔记

    SpringMVC 一、SpringMVC介绍 1.什么是MVC 是一种软件架构的思想,将软件按照模型、视图、控制器来划分 M:Model,模型层,指工程中的JavaBean,作用…

    Java 2023年6月16日
    092
  • 性能优化必备——火焰图

    引言 本文主要介绍火焰图及使用技巧,学习如何使用火焰图快速定位软件的性能卡点。结合最佳实践实战案例,帮助读者加深刻的理解火焰图构造及原理,理解 CPU 耗时,定位性能瓶颈。 背景 …

    Java 2023年6月15日
    074
  • DOM

    DOM 所谓DOM是给文档中的每一个标签都对应的创建一个对象。 在JS中默认就会为页面的所有的标签创建一个对应的对象模型。我们可以通过对应的API获取这些对象模型,通过这些对象模型…

    Java 2023年6月7日
    092
  • 强大多云混合多K8S集群管理平台Rancher入门实战

    @ 概述 定义 为何使用 其他产品 安装 简述 规划 基础环境 Docker安装 Rancher安装 创建用户 创建集群 添加Node节点 配置kubectl 创建项目和名称空间 …

    Java 2023年6月5日
    097
  • Spring定时任务的实现

    出处:http://cnblogs.com/daishuguang Original: https://www.cnblogs.com/daishuguang/p/5210159….

    Java 2023年5月30日
    078
  • 总结一下今天所学的知识9.18

    一种是将client和controller层实现一个共同的接口 — 这种方式的话耦合度非常高,而且形参中的注解不会被继承,所以controller中仍然需要注明形参列表…

    Java 2023年6月15日
    062
  • Java高并发28-ThreadPoolExecutor原理剖析(2)

    线程池转换状态如下: Running->Shutdown 显示调用shutdown()或隐式调用finalize()中的shutdown() Running或者Shutdow…

    Java 2023年6月13日
    062
  • Spring配置 bean

    在 xml 文件中通过 bean 节点来配置 beanid:Bean 的名称。在 IOC 容器中必须是唯一的若 id 没有指定,Spring 自动将权限定性类名作为 Bean 的名…

    Java 2023年5月30日
    092
  • 金三银四跳槽季,教你这几招提高面试成功率

    一、面试前准备 参加面试除了携带必要的证书、文凭、照片等常规的用品以外,还应事先做些”功课”,归纳起来大概有一下几个方面的准备工作。 1.1 背熟自己的求职…

    Java 2023年6月7日
    083
  • C# 线程手册 第三章 使用线程 系列

    在之前章节,我们已经讨论过线程在开发多用户应用程序时扮演的重要角色。我们已经使用线程来解决一些重要的问题,比如让多个用户或者客户端在同一时间访问同一个资源。然而,在学习过程中我们忽…

    Java 2023年5月29日
    071
  • IDEA分析JAVA内存溢出和内存泄漏

    参考资料: 1、JProfiler分析dump文件 https://blog.csdn.net/axin1240101543/article/details/105142141 2…

    Java 2023年5月29日
    0111
  • 浅尝Spring注解开发_Bean生命周期及执行过程

    Spring注解开发_Bean生命周期及执行过程 浅尝Spring注解开发,基于Spring 4.3.12包含Bean生命周期、自定义初始化方法、Debug BeanPostPro…

    Java 2023年6月5日
    092
  • 集合 实现双色球案例

    import java.util.*; /** * @author Mxhlin * @Email fuhua277@163.com * @Date 2022/09/20/15:0…

    Java 2023年6月7日
    074
  • 日程功能模块【从建模到代码实现】UML + JavaFX

    结合 uml 所学和 Javafx 从建模到实现一个子功能模块 —— 日程管理。新手上路,类图到代码实现的过程还是很曲折但所幸收获颇丰,记录一下学习心得。 日程功能模块 最后成果 …

    Java 2023年6月5日
    096
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球