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 long

using 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 long

using 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 long

using 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 long

using 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;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

图像缩放对相机内外参矩阵的影响

参考资料&#xff1a;https://zhuanlan.zhihu.com/p/87185139 一、3D空间中点到图像的投影 设3D空间中的点(x,y,z)(x,y,z)(x,y,z)投影到图像上的像素坐标&#xff08;连续值&#xff0c;以左上角像素的左上角为原点的坐标系&#xff0c;注意与整数值的图像像素索引相区别&…

HTTPS的加密原理(工作机制)

现在很多网站使用的都是HTTPS协议,比如CSDN他们为什么要使用HTTPS协议而不是继续使用HTTP协议呢?以及HTTPS都做了些什么?HTTP协议与HTTPS有哪些区别? 下面我来 讲解这些问题?(篇幅可能有些长,请求耐心观看,我以0基础的角度去讲解这些东西, 如果你有一定的基础前面的跳过就好…

docker安装elasticsearch与head教程完整版—.NET Core Web Api与elasticsearch打造全站全文搜索引擎

默认已经有docker环境 下载与安装 elasticsearch &#xff0c;从hub.docker里面可以看到最新版本的镜像&#xff0c;选择你想要的版本 本教程是以 7.17.7 为案例&#xff0c;为啥不适用最新的&#xff0c;首先个人一般需用最新的版本&#xff0c;如果有亢很难填&#xff0c;其次…

三体到底是啥?用Python跑一遍就明白了

文章目录拉格朗日方程推导方程组微分方程算法化求解画图动图绘制温馨提示&#xff0c;只想看图的画直接跳到最后一节拉格朗日方程 此前所做的一切三体和太阳系的动画&#xff0c;都是基于牛顿力学的&#xff0c;而且直接对微分进行差分化&#xff0c;从而精度非常感人&#xf…

如何用Python求解微分方程组

文章目录odeint简介示例odeint简介 scipy文档中将odeint函数和ode, comples_ode这两个类称为旧API&#xff0c;是scipy早期使用的微分方程求解器&#xff0c;但由于是Fortran实现的&#xff0c;尽管使用起来并不方便&#xff0c;但速度没得说&#xff0c;所以有的时候还挺推荐…

Vite4 + Vue3 + vue-router4 动态路由

动态路由&#xff0c;基本上每一个项目都能接触到这个东西&#xff0c;通俗一点就是我们的菜单是根据后端接口返回的数据进行动态生成的。表面上是对菜单的一个展现处理&#xff0c;其实内部就是对router的一个数据处理。这样就可以根据角色权限或者一些业务上的需求&#xff0…

机器学习入门——线性回归

线性回归什么是线性回归&#xff1f;回归分析&#xff1a;线性回归&#xff1a;回归问题求解单因子线性回归简单实例评估模型表现可视化模型展示多因子线性回归什么是线性回归&#xff1f; 回归分析&#xff1a; 根据数据&#xff0c;确定两种或两种以上变量间相互依赖的定量…

自学大数据第六天~HDFS命令(一)

HDFS常用命令 查看hadoop版本 version hadoop version注意,没有 ‘-’ [hadoopmaster ~]$ hadoop version Hadoop 3.3.4 Source code repository https://github.com/apache/hadoop.git -r a585a73c3e02ac62350c136643a5e7f6095a3dbb Compiled by stevel on 2022-07-29T12:3…

【电赛MSP430系列】GPIO、LED、按键、时钟、中断、串口、定时器、PWM、ADC

文章目录MSP430一、GPIO二、点亮LED三、按键控制LED四、更改主时钟五、串口通信六、串口中断七、外部中断八、定时器九、定时器中断十、PWM十一、ADCMSP430 MSP430 是德州仪器&#xff08;TI&#xff09;一款性能卓越的超低功耗 16 位单片机&#xff0c;自问世以来&#xff0c…

程序员的逆向思维

前要&#xff1a; 为什么你读不懂面试官提问的真实意图&#xff0c;导致很难把问题回答到面试官心坎上? 为什么在面试结束时&#xff0c;你只知道问薪资待遇&#xff0c;不知道如何高质量反问? 作为一名程序员&#xff0c;思维和技能是我们职场生涯中最重要的两个方面。有时候…

【微信小程序】-- 网络数据请求(十九)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…

到底什么是跨域,如何解决跨域(常见的几种跨域解决方案)?

文章目录1、什么是跨域2、解决跨域的几种方案2.1、JSONP 方式解决跨域2.2、CORS 方式解决跨域&#xff08;常见&#xff0c;通常仅需服务端修改即可&#xff09;2.3、Nginx 反向代理解决跨域&#xff08;推荐使用&#xff0c;配置简单&#xff09;2.4、WebSocket 解决跨域2.5、…

软测面试了一个00后,绝对能称为是内卷届的天花板

前言 公司前段缺人&#xff0c;也面了不少测试&#xff0c;结果竟然没有一个合适的。一开始瞄准的就是中级的水准&#xff0c;也没指望来大牛&#xff0c;提供的薪资也不低&#xff0c;面试的人很多&#xff0c;但平均水平很让人失望。令我印象最深的是一个00后测试员&#xf…

【JavaScript 逆向】百度旋转验证码逆向分析

声明本文章中所有内容仅供学习交流&#xff0c;相关链接做了脱敏处理&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01;案例目标爱企查百度安全验证百度搜索&#xff1a;aHR0cHM6Ly93YXBwYXNzLmJhaWR1LmNvbS9zdGF0aWMvY2FwdGNoYS8以上均做了脱敏处理&#xff0c;B…

操作系统(2.2)--进程的描述与控制

目录 二、进程的描述 1.进程的定义和特征 1.1进程的定义 1.2进程的特征 2.进程的基本状态及转换 2.1进程的三种基本状态 2.2 三种基本状态的转换 2.3创建状态和中止状态 3.挂起操作和进程状态的转换 3.1 挂起状态的引入 3.2 引入挂起操作后三个进程状态的转换 …

07从零开始学Java之如何正确的编写Java代码?

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者前言在上一篇文章中&#xff0c;壹哥带领大家开始编写了第一个Java案例&#xff0c;在我们的cmd命令窗口中输出了”Hello World“这…

【蓝桥杯-筑基篇】常用API 运用(1)

&#x1f353;系列专栏:蓝桥杯 &#x1f349;个人主页:个人主页 目录 &#x1f34d;1.输入身份证&#xff0c;判断性别&#x1f34d; &#x1f34d;2.输入英语句子&#xff0c;统计单词个数&#x1f34d; &#x1f95d;3.加密解密&#x1f95d; &#x1f30e;4.相邻重复子串…

【6G 新技术】6G数据面介绍

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

订单30分钟未支付自动取消怎么实现?

目录了解需求方案 1&#xff1a;数据库轮询方案 2&#xff1a;JDK 的延迟队列方案 3&#xff1a;时间轮算法方案 4&#xff1a;redis 缓存方案 5&#xff1a;使用消息队列了解需求在开发中&#xff0c;往往会遇到一些关于延时任务的需求。例如生成订单 30 分钟未支付&#xff0…

HashMap的实际开发使用

目 录 前言 一、HashMap是什么&#xff1f; 二、使用步骤 1.解析一下它实现的原理 ​编辑 2.实际开发使用 总结 前言 本章&#xff0c;只是大概记录一下hashMap的简单使用方法&#xff0c;以及理清一下hashMap的put方法的原理&#xff0c;以及get方法的原理。 一、Has…
最新文章