2023年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛(同步赛) A — E

本文主要是介绍2023年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛(同步赛) A — E,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2023年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛(同步赛)

文章目录

        • A -- A Xor B Problem
          • 题目分析
          • code
        • B -- 吃苹果
          • 题目分析
          • code
        • C -- n皇后问题
          • 题目分析
          • code
        • D -- 分苹果
          • 题目分析
          • code
        • E -- 完型填空
          • 题目分析
          • code

A – A Xor B Problem
题目分析

只有相同数字异或结果才为零,统计一下相同数字出现的次数,排列组合即可。

根据样例来看,自身与自身是可以成为一对数字的。

code
#include<bits/stdc++.h>
#define int long longusing namespace std;const int N = 1010;int n, m, k, t;
int a[N];
map<int, int>q;signed main()
{cin >> n;for(int i = 1; i <= n; i ++){cin >> a[i];q[a[i]] ++;}int ans = 0;for(auto &[k, v] : q){if(v >= 2) ans += v * v;else ans ++;}cout << ans << "\n";;return 0;
}
B – 吃苹果
题目分析

可以通过按照早上和晚上吃苹果愉悦值得差值来排序,差值越大得越优先被处理贡献值越大。

code
#include<bits/stdc++.h>
#define int long longusing namespace std;const int N = 1e5 + 10;int n, m, k, t;
bool st[N];struct node
{int l, r;
}q[N];bool cmp(node a, node b)
{return abs(a.l - a.r) > abs(b.l - b.r);
}signed main()
{cin >> n >> k;for(int i = 1; i <= n; i ++){int u, v;cin >> u >> v;q[i] = {u, v};}sort(q + 1, q + n + 1, cmp);int ans = 0;int r1 = n - k, r2 = k;for(int i = 1; i <= n; i ++){if(q[i].l > q[i].r){if(r1){ans += q[i].l;r1 --;}else ans += q[i].r, r2 --;}else{if(r2){ans += q[i].r;r2 --;}else ans += q[i].l, r1 --;}}cout << ans << "\n";return 0;
}
C – n皇后问题
题目分析

每输入一个点判断其八个方向上是否已经被放过即可,不过判断时暴力手法得判断会超时,我们可以通过判断是否在一条直线上的方式来判断会不会冲突。

横向和纵向的比较简单,问题是处理两个对角线。两个对角线为y=x+ay=-x+b,可以通过xy来看常数是否相同从而判断是否在一条直线上。

code
#include<bits/stdc++.h>
using namespace std;const int N = 1e7 + 10;int n, m, k, t;bool row[N], col[N], dg[N], udg[N];bool get(int x, int y)
{if(!row[x] && !col[y] && !dg[x + y] && !udg[n - x  + y]){row[x] = col[y] = dg[x + y] = udg[n - x + y] = true;return true;}return false;
}signed main()
{scanf("%d%d", &n, &t);while(t --){int x, y;scanf("%d%d", &x, &y);if (get(x, y)) puts("Yes");else puts("No");}return 0;
}
D – 分苹果
题目分析

可以看作两个木棒把一个桌面分成了四个部分,带入点坐标根据数值得结果可以判断在哪个部分。
在这里插入图片描述

code
#include <bits/stdc++.h>
#define int long longusing namespace std;int a[5];
int n, m, k, t;
int Ae, Be, Ce;
int Ar, Br, Cr;signed main()
{cin >> n;cin >> Ae >> Be >> Ce;cin >> Ar >> Br >> Cr;for(int i = 1; i <= n; i ++){int x, y;cin >> x >> y;int ans1 = Ae * x + Be * y + Ce;int ans2 = Ar * x + Br * y + Cr;if(ans1 > 0 && ans2 > 0) a[1]++;else if(ans1 > 0 && ans2 < 0) a[2]++;else if(ans1 < 0 && ans2 > 0) a[3] ++;else if(ans1 < 0 && ans2 < 0) a[4] ++;}sort(a + 1, a + 5);for(int i = 1; i <= 4; i ++) cout << a[i] << " " ;
}
E – 完型填空
题目分析

本体数据范围较小并且分成的情况很多,可以采用动态规划的方法。

集合f[i][j][k][r]表示:A选项选了i个,B选项选了j个,C选项选了k个,D选项选了f个,所得期望的值的集合

根据思考前一个得方法,可以很容易得到状态转移方程。

code
#include<bits/stdc++.h>
#define int long longusing namespace std;const int N = 110;int n, m, k, t;
int a[N], w[N][5];
int f[N][N][N][N];signed main()
{cin >> n;for(int i = 1; i <= n; i ++)for(int j = 1; j <= 4; j ++)cin >> w[i][j];n /= 4;for(int i = 0; i <= n; i ++)for(int j = 0; j <= n; j ++)for(int k = 0; k <= n; k ++)for(int r = 0; r <= n; r ++){if(i > 0)f[i][j][k][r] = max(f[i][j][k][r], f[i - 1][j][k][r] + w[i + j + k + r][1]);if(j > 0)f[i][j][k][r] = max(f[i][j][k][r], f[i][j - 1][k][r] + w[i + j + k + r][2]);if(k > 0)f[i][j][k][r] = max(f[i][j][k][r], f[i][j][k - 1][r] + w[i + j + k + r][3]);if(r > 0)f[i][j][k][r] = max(f[i][j][k][r], f[i][j][k][r - 1] + w[i + j + k + r][4]);}cout << f[n][n][n][n] << "\n";return 0;
}

这篇关于2023年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛(同步赛) A — E的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/158894

相关文章

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

Mac备忘录怎么导出/备份和云同步? Mac备忘录使用技巧

《Mac备忘录怎么导出/备份和云同步?Mac备忘录使用技巧》备忘录作为iOS里简单而又不可或缺的一个系统应用,上手容易,可以满足我们日常生活中各种记录的需求,今天我们就来看看Mac备忘录的导出、... 「备忘录」是 MAC 上的一款常用应用,它可以帮助我们捕捉灵感、记录待办事项或保存重要信息。为了便于在不同

查看MySql主从同步的偏移量方式

《查看MySql主从同步的偏移量方式》:本文主要介绍查看MySql主从同步的偏移量方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 1.mysql的主从同步方案mysqlphp为了在实现读写分离,主库写,从库读mysql的同步方案主要是通过从库读取主库的binl

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

MySQL主从同步延迟问题的全面解决方案

《MySQL主从同步延迟问题的全面解决方案》MySQL主从同步延迟是分布式数据库系统中的常见问题,会导致从库读取到过期数据,影响业务一致性,下面我将深入分析延迟原因并提供多层次的解决方案,需要的朋友可... 目录一、同步延迟原因深度分析1.1 主从复制原理回顾1.2 延迟产生的关键环节二、实时监控与诊断方案

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Linux搭建Mysql主从同步的教程

《Linux搭建Mysql主从同步的教程》:本文主要介绍Linux搭建Mysql主从同步的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux搭建mysql主从同步1.启动mysql服务2.修改Mysql主库配置文件/etc/my.cnf3.重启主库my