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

news/发布时间2024/8/25 5:11:16

A. A Xor B Problem(计数)

输入

5
1 1 2 2 3

输出

9

说明

点击查看代码
#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false);cin.tie(0),cout.tie(0)
#define int long longusing namespace std;const int N = 2e5 + 10;unordered_map<int, int> mp;
int ans, s, n, x;void solve()
{cin >> n;while(n --){cin >> x;s += mp[x] * mp[x];mp[x] ++;ans += mp[x] * mp[x];}cout << ans - s << '\n';
}signed main()
{IOS;int _ = 1;
//     cin >> _;while(_ --)solve();return _ ^ _;
}

B. 吃苹果(贪心)

输入

4 3
3 1
4 5
2 3
1 5

输出

16

说明

对于 10% 的数据,1≤n≤10。
对于 40% 的数据,\(1≤n≤10^4\)
对于 100% 的数据,\(1≤k≤n≤10^5,1≤a_i,b_i≤10^4\)

点击查看代码
#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false);cin.tie(0),cout.tie(0)
#define int long longusing namespace std;const int N = 2e5 + 10;int n, m, ans;
int a[N];
struct node
{int x, y, s;
}p[N];bool cmp(node a, node b)
{return a.s > b.s;
}void solve()
{cin >> n >> m;for(int i = 0; i < n; i ++)cin >> p[i].x >> p[i].y, p[i].s = p[i].y - p[i].x;sort(p, p + n, cmp);for(int i = 0; i < n; i ++){if(m) ans += p[i].y, m --;else ans += p[i].x;}cout << ans << '\n';
}signed main()
{IOS;int _ = 1;
//     cin >> _;while(_ --)solve();return _ ^ _;
}

C. n皇后问题(模拟)

输入

2 4
1 1
1 2
2 1
2 2

输出

Yes
No
No
No

说明

点击查看代码
#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false);cin.tie(0),cout.tie(0)
#define int long longusing namespace std;const int N = 1e7 + 10;int n, m;
int l[N], r[N], p[N], up[N];void solve()
{cin >> n >> m;while(m --){int x, y;cin >> x >> y;if(!l[x]&&!r[y]&&!p[x + n + y]&&!up[2 * n + x - y]){cout << "Yes\n";l[x] = 1, r[y] = 1;p[x + y + n] = 1;up[2 * n + x - y] = 1;}else cout << "No\n";}
}signed main()
{IOS;int _ = 1;
//     cin >> _;while(_ --)solve();return _ ^ _;
}

D. 分苹果(模拟)

输入

4
0 1 0
1 0 0
1 1
1 -1
-1 1
-1 -1

输出

1 1 1 1

说明

对于 10% 的数据,\(1≤n≤10,−10 ^2≤Ae,Be,Ce,Ar,Br,Cr≤10^2,−10^3≤x,y≤10 ^3\)
对于 40% 的数据,\(1≤n≤10^4,−10^4≤Ae,Be,Ce,Ar,Br,Cr≤10^4,−10^5≤x,y≤10^5\)
对于 100% 的数据,\(1≤n≤10^5,−10^8≤Ae,Be,Ce,Ar,Br,Cr≤10^8,−10^9≤x,y≤10^9,(Ae∣Be)!=0,(Ar∣Br)!=0\)

点击查看代码
#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false);cin.tie(0),cout.tie(0)
#define int long longusing namespace std;const int N = 2e5 + 10;int a1, a2, b1, b2, c1, c2;
int s[10], n;bool get1(int x, int y)
{return a1 * x + b1 * y + c1 > 0;
}bool get2(int x, int y)
{return a2 * x + b2 * y + c2 > 0;
}void solve()
{cin >> n;cin >> a1 >> b1 >> c1 >> a2 >> b2 >> c2;while(n --){int x, y;cin >> x >> y;if(get1(x, y)&&get2(x, y))s[1] ++;else if(!get1(x, y)&&get2(x, y))s[2] ++;else if(!get1(x, y)&&!get2(x, y))s[3] ++;else s[4] ++;}sort(s + 1, s + 5);for(int i = 1; i < 5; i ++)cout << s[i] << ' ';
}signed main()
{IOS;int _ = 1;
//     cin >> _;while(_ --)solve();return _ ^ _;
}

E. 完形填空(概率dp)

输入

4
10 20 30 40
40 30 20 10
10 40 20 30
30 10 40 20

输出

160

说明

对于30% 的数据,n=4
对于 60% 的数据,1≤n≤20
对于 100% 的数据,1≤n≤100

点击查看代码
#include<iostream>
#include<cstring>using namespace std;const int N = 26, M = 110;int dp[M][N][N][N][N];
int A[M], B[M], C[M], D[M];
int n;int dfs(int n, int a, int b, int c, int d)
{if(n == 0) return 0;if(a < 0||b < 0||c < 0||d < 0) return -1e9;int &ans = dp[n][a][b][c][d];if(ans) return ans;if(a) ans = max(ans, A[n] + dfs(n - 1, a - 1, b, c, d));if(b) ans = max(ans, B[n] + dfs(n - 1, a, b - 1, c, d));if(c) ans = max(ans, C[n] + dfs(n - 1, a, b, c - 1, d));if(d) ans = max(ans, D[n] + dfs(n - 1, a, b, c, d - 1));return ans;
}int main()
{cin >> n;for(int i = 1; i <= n; i ++)cin >> A[i] >> B[i] >> C[i] >> D[i];cout << dfs(n, n / 4, n / 4, n / 4, n / 4) << endl;return 0;
}

G. A Xor B Problem again(计数)

输入

5
1 1 2 2 3

输出

8

说明

点击查看代码
#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false);cin.tie(0),cout.tie(0)
#define int long longusing namespace std;const int N = 2e5 + 10;int sum[N], val[N];
int vis[N];
int n, ans, a[N];
int bin[N];void solve()
{cin >> n;bin[0] = 1;for(int i = 1; i < 19; i ++) bin[i] = bin[i - 1] << 1;for(int i = 1; i <= n; i ++)cin >> a[i], sum[a[i]] ++;for(int i = 1; i <= n; i ++){int v = 0;for(int j = 0; j < 17; j ++)if((a[i] & bin[j]) == 0)v |= bin[j];if(vis[v]) ans += val[v];else{for(int s = v; s; s = v&(s - 1))val[v] += sum[s];val[v] += sum[0];ans += val[v];vis[v] = 1;}}cout << ans << '\n';
}signed main()
{IOS;int _ = 1;
//     cin >> _;while(_ --)solve();return _ ^ _;
}

H. 摘苹果(线段树)

输入

5 5
1 10 100 1000 10000
2 1 5
3 1 5
1 1 5
2 1 5
3 1 5

输出

2
11111
3
7405

说明

对于 100% 的数据,\(1≤n≤10^5 ,1≤m≤10^5 , 1≤a_i ≤10^9 ,1≤op≤3,1≤l≤r≤n\)

点击查看代码
#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false);cin.tie(0),cout.tie(0)
#define int long longusing namespace std;const int N = 1e5 + 10;struct node
{int l, r;int s, e;bool f;
}tr[N << 2];
int n, m;
int a[N];void pushup(int u)
{tr[u].s = tr[u << 1].s + tr[u << 1 | 1].s;tr[u].e = tr[u << 1].e + tr[u << 1 | 1].e;tr[u].f = tr[u << 1].f || tr[u << 1 | 1].f;
}void build(int u, int l, int r)
{if(l == r) tr[u] = {l, r, a[l], a[l] < 100, a[l] > 9};else{tr[u] = {l, r};int mid = l + r >> 1;build(u << 1, l, mid);build(u << 1 | 1, mid + 1, r);pushup(u);}
}void modify(int u, int l, int r)
{if(!tr[u].f) return ;if(tr[u].l == tr[u].r){tr[u].s -= (tr[u].s + 2) / 3;tr[u].e = tr[u].s < 100;tr[u].f = tr[u].s > 9;}else{int mid = tr[u].l + tr[u].r >> 1;if(l <= mid) modify(u << 1, l, r);if(r > mid) modify(u << 1 | 1, l, r);pushup(u);}
}int query(int u, int l, int r, int f)
{if(tr[u].l >= l&&tr[u].r <= r){if(f == 2) return tr[u].e;return tr[u].s;}else{int mid = tr[u].l + tr[u].r >> 1;int s = 0;if(l <= mid) s += query(u << 1, l, r, f);if(r > mid) s += query(u << 1 | 1, l, r, f);return s;}
}void solve()
{cin >> n >> m;for(int i = 1; i <= n; i ++) cin >> a[i];build(1, 1, n);int f, l, r;while(m --){cin >> f >> l >> r;if(f == 1) modify(1, l, r);else cout << query(1, l, r, f) << '\n';}
}signed main()
{IOS;int _ = 1;
//     cin >> _;while(_ --)solve();return _ ^ _;
}

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

如若内容造成侵权/违法违规/事实不符,请联系连锁易网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

CS2打开可以听到声音,但黑屏问题?

1.问题 我这里原先是可以启动CS2的,但是后来在CS2中重新调整了分辨率等等,之后由于某种原因又调整了屏幕分辨率,导致后面一进入CS2登录界面,橙色登陆界面就会缩在左上角一小块,并且之后就会陷入黑屏但有声音的状态 2.解决方法 参考链接:https://appuals.com/black-screen…

高级系统架构师学习(九)数据库系统

一、数据库概述 数据库模式 三级模式:外模式:视图 模式(也称为概念模式):数据库表 内模式:物理文件两层映像:两层映像可以保证数据库中的数据具有较高的逻辑独立性和物理独立性。外模式 - 模式映像 模式 - 内模式映像物理独立性:即数据库的内模式发生改变时,应用程序不…

传递函数变换到状态空间

1. 分子为1的传递函数 例: \[G(s)=\frac{1}{s^3+a_2s^2+a_1s+a_0} \]首先写成输入输出关系: \[(s^3+a_2s^2+a_1s+a_0)Y(s)=U(s) \]对应的微分方程: \[\dddot{y}(t)+a_2\ddot y(t)+a_1\dot y(t)+a_0y(t)=u(t)\\ \dddot{y}(t)=-a_2\ddot y(t)-a_1\dot y(t)-a_0y(t)+u(t)\\ \]令…

-bash: ifconfig: 未找到命令

#abao { background-color: rgba(245, 245, 245, 1); padding: 10px; text-align: center; width: 800px } 命令: yum -y install ifconfig如果返回为:没有可用软件包 ifconfig。错误:无须任何处理则输入:yum search ifconfig返回:==================== 匹配:ifconfig ==…

SOC芯片架构技术分析(三)

SOC芯片架构技术分析(三) 3.1 汽车:汽车平台未来需要高算力 1)汽车半导体涵盖了汽车芯片、功率器件、传感器等重要电子零部件。汽车的计算芯片包括传统的MCU芯片和SoC芯片。 MCU芯片一般包含CPU一个处理器单元;而汽车SoC一般包含多个处理单元。 2)ECU(Electronic Contro…

python文件操作

在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件 open(文件路径,访问模式)f = open(test.txt, w)读文件:f1 = open(test1.txt,r)content = f1.read()print(content)readLines返回一个列表,可以遍历 f1 = open(test1.txt,r)content = f1.readlines(…

MySQL索引的认识

MySQL表的所有记录,是存储在磁盘中的。 当根据非索引字段进行查询时,MySQL 通常需要执行全表扫描,以查找满足查询条件的记录。全表扫描意味着 MySQL 必须逐一检查表中的每一行,以确定哪些行符合查询条件。 全表扫描会导致磁盘 I/O 次数增加,因为 MySQL 需要读取整个表的数…

Java集合框架(部分)

类图List:有序可重复集合 特点 1.元素允许重复 2.元素有序(元素的顺序就是插入时的顺序) 3.元素可以通过索引来访问或者设置 { ArrayLIst:底层为数组,查询速度快,增删慢 LinkedList:底层是链表,查询速度慢,增删快 两者的优缺点,:效率高,线程不安全 } Set:无序不可…

Go每日一库之172:go-prompt

简介 受python提示工具包的启发,在Go中构建强大的交互式提示 一、代码示例 package mainimport ("fmt""github.com/c-bata/go-prompt" )func completer(d prompt.Document) []prompt.Suggest {s := []prompt.Suggest{{Text: "users", Descripti…

SpringCloud

目录Springcloud介绍注册中心(Eureka)背景注册中心案例总结负载均衡(Ribbon)测试使用负载均衡RibbonRibbon负载均衡流程Ribbon的IRule常见负载均衡策略Ribbon的使用方法远程调用(Open Feign)Feign使用连接池注册中心(Nacos)测试配置集群命名空间Nacos非临时实例配置中心(Nacos)…

RedisInsight安装及使用

前言 RedisInsight 是一个直观高效的 Redis GUI 管理工具,它可以对 Redis 的内存、连接数、命中率以及正常运行时间进行监控,并且可以在界面上使用 CLI 和连接的 Redis 进行交互(RedisInsight 内置对 Redis 模块支持)。 RedisInsight 提供的功能:唯一支持 Redis Cluster 的…

函数基础和函数参数

第一部分:函数基础 函数的作用意义:1.为了更好地管理代码,可能对应的代码块需要重复多次使用,所以通过一个函数封装起来,便于下次直接调用2.方法实际上是通过函数实现的 例1:# type() # 内置函数 def lis():li=[1,2,3]li.append(4)li.pop(2) # 指定删除# print(li) # …

06. 系统滴答定时器

一、SysTick定时器简介SysTick,即系统滴答定时器,是属于 CM3 内核中的一个外设,内嵌在 NVIC 中。系统定时器是一个 24bit 的向下递减的计数器,SysTick 的时钟源自 HCLK。当计数值减到 0 时,将从 RELOAD 寄存器中自动重装载定时初值,开始新一轮计数。只要不把它在 SysTick…

【Qt6】列表模型——树形列表

QStandardItemModel 类作为标准模型,主打“类型通用”,前一篇水文中,老周还没提到树形结构的列表,本篇咱们就好好探讨一下这货。 还是老办法,咱们先做示例,然后再聊知识点。下面这个例子,使用 QTreeView 组件来显示数据,使用的列表模型比较简单,只有一列。#include &l…

QT QPixmap QImage内存泄漏

无论是在代码中还是在UI中设置icon都会产生内存泄漏 大概看了下,好像是QPixmap的data_ptr的引用计数,到不了1/0(查看引用计数,释放后,理论上应回到1) 试了下,仅以下两种方式不会产生内存泄漏: 1、从 XPM加载: img = QPixmap(result); //result为 static const cha…

抽象CurrentUser适配Http和Job场景

前言 获取当前请求用户的基础信息是很常见的,诸如当前用户Id,角色,有无访问权限等。通常我们可以直接使用HttpContext.User来拿到当前经过认证后的请求人信息。但是这样对于分层应用不太友好,需要安装AspNetCore.Http.Abstractions的包,这样对于这层(非Web层)来讲也有所侵…

使用 AI 编程助手 CodeWhisperer,开发如有神助

前段时间体验了chatGPT,听说它可以写代码,结果发现更多的只是一个对答写小作文的百度助手,虽然也能写代码,但不是我想要的,可以在 idea 中可以快速生成代码块的。一个偶然的机会,从微信群里了解到,由亚马逊云科技推出的 CodeWishPerer 开发插件,可以在多个开发环境中使…

向日葵安装教程

1、官网下载 2、执行安装1、官网下载 向日葵远程桌面连接,监控,维护,管理,客服支持解决方案-贝锐向日葵远程控制管理软件 (oray.com) 2、执行安装 安装后界面 完美。

读高性能MySQL(第4版)笔记17_复制(下)

复制1. 复制切换 1.1. 复制是高可用性的基础 1.1.1. 总是保留一份持续更新的副本数据,会让灾难恢复更简单 1.2. “切换副本”(promoting a replica)和“故障切换”(failing over)是同义词 1.2.1. 意味着源服务器不再接收写入,并将副本提升为新的源服务器 1.3. 计划内切换…

SOC芯片架构技术分析(二)

SOC芯片架构技术分析(二) 2.1 SoC产业链概况2.2 产业链上游概况:设计工具寡头竞争2.2 产业链上游概况:IP核行业行业集中度高1)行业集中度高,国内厂商市占率较低。 2)全球IP核供应商以国外厂商为主,行业集中度相对 较高:国内集成电路设计企业所需的IP核大多来自 境外供…
推荐文章