2023年第三届 “联想杯”全国高校程序设计在线邀请赛暨第五届上海理工大学程序设计竞赛(同步赛)

A-3的倍数

首先求出sum,如果sum为3的倍数,那么直接可以降序

如果sum%3=1,那么优先删除一个对3取模余1的数,如果没有则删除两个对3取模余2的数

如果sum%3=2,那么优先删除一个对3取模余2的数,如果没有则删除两个对3取模余1的数

trick:
1.不是很好写,要想从vector里删除数,挺麻烦的,还要考虑越界,可以先标记要删除的数,比如值标记为-1,然后将不是-1的都放到一个新的容器里,就相当于删除了标记的数

2.对3取模,结果只有3种,情况很少,分别讨论即可

#include<bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N=2e5+10;
int a[N];
int n;
void solve() {cin>>n;map<int,int>mp;int sum=0;vector<int>ans;for(int i=1;i<=n;i++) cin>>a[i],mp[a[i]%3]++,sum+=a[i];sort(a+1,a+1+n);if(sum%3==0){for(int i=1;i<=n;i++) ans.push_back(a[i]);}else if(sum%3==1){if(mp[1]){for(int i=1;i<=n;i++){if(a[i]%3==1){a[i]=-1;break;}}for(int i=1;i<=n;i++){if(a[i]==-1) continue;ans.push_back(a[i]);}}else if(mp[2]>=2){int cnt=2;for(int i=1;i<=n;i++){if(a[i]%3==2&&cnt){a[i]=-1;cnt--;}}for(int i=1;i<=n;i++){if(a[i]==-1) continue;ans.push_back(a[i]);}}}else{if(mp[2]){for(int i=1;i<=n;i++){if(a[i]%3==2){a[i]=-1;break;}}for(int i=1;i<=n;i++){if(a[i]==-1) continue;ans.push_back(a[i]);}}else if(mp[1]>=2){int cnt=2;for(int i=1;i<=n;i++){if(a[i]%3==1&&cnt){a[i]=-1;cnt--;}}for(int i=1;i<=n;i++){if(a[i]==-1) continue;ans.push_back(a[i]);}}}if(ans.size()==0){cout<<-1<<endl;return;}reverse(ans.begin(),ans.end());if(ans[0]==0) cout<<0<<endl;else{for(auto v:ans) cout<<v;cout<<endl;}
}
signed main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t=1;cin>>t;while(t--) {solve();}return 0;
}

B-午餐的品格

很容易得到,答案为 2 n 2^n 2n-1- C n x C_{n}^{x} Cnx-$C_{n}^{y} − - C_{n}^{z} $

2 n 2^n 2n需要用快速幂求解,快速幂的时间复杂度为log(n)

但是,n达1e9,如何求那么大的组合数,所幸x,y,z最多2e5

C n m C_{n}^{m} Cnm=$\frac{(n-m+1) * (n-m+2) * …*n }{1 * 2 *… * m} $

求分子最多枚举2e5次,求分母最多枚举2e5次

最后要注意防止答案为负数的处理方式:

ans=(ans%mod+mod)%mod;
#include<bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N=2e5+10,mod=1e9+7;
int fac[N];
int n,x,y,z;
int qmi(int a,int b){int res=1;while(b){if(b&1) res=res*a%mod;a=a*a%mod;b>>=1;}return res;
}
int C(int n,int m){if(n<m) return 0;int res=1;for(int i=n-m+1;i<=n;i++) res=res*i%mod;return res*qmi(fac[m],mod-2)%mod;
}
void solve() {cin>>n>>x>>y>>z;fac[0]=1;for(int i=1;i<=2e5;i++){fac[i]=fac[i-1]*i%mod;}int ans=qmi(2,n)-1;ans-=C(n,x);ans-=C(n,y);ans-=C(n,z);ans=(ans%mod+mod)%mod;cout<<ans<<endl;
}
signed main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t=1;
//    cin>>t;while(t--) {solve();}return 0;
}

G-fsl 的背包

思维难度挺大的,虽说题目名字是背包,但是不符合经典的背包,所以不是背包问题

容易想到将所有物品按照价值从小到大排序,然后枚举每件物品作为中位数,在它的前面取k/2件体积最小的,在它的后面取k/2件体积最小的,check是否总体积超过m,如果不超过,那么作为预选答案,取最大的答案

问题在于如何快速求出该件物品前面取k/2件最小的体积之和,可以利用大根堆,将前面的物品依次放入大根堆中,然后维护元素个数为k/2

后面的物品同理

while(q.size()>k/2) sum-=q.top(),q.pop();
#include<bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
const int N=1e6+10;
int n,m,k;
struct node{int w,v;bool operator<(const node &W)const{if(v==W.v) return w<W.w;return v<W.v;}
}q[N];
int pre[N],last[N];
void solve() {cin>>n>>m>>k;memset(pre,0,sizeof pre);memset(last,0,sizeof last);for(int i=1;i<=n;i++) cin>>q[i].w;for(int i=1;i<=n;i++) cin>>q[i].v;sort(q+1,q+1+n);k/=2;priority_queue<int>heap1;int sum=0;for(int i=1;i<=n;i++){sum+=q[i].w;heap1.push(q[i].w);while(heap1.size()>k){sum-=heap1.top();heap1.pop();}pre[i]=sum;}priority_queue<int>heap2;sum=0;for(int i=n;i>=1;i--){sum+=q[i].w;heap2.push(q[i].w);while(heap2.size()>k){sum-=heap2.top();heap2.pop();}last[i]=sum;}int ans=-1;for(int i=k+1;i+k<=n;i++){if(pre[i-1]+last[i+1]+q[i].w<=m) ans=max(ans,q[i].v);}cout<<ans<<endl;
}
signed main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t=1;
//    cin>>t;while(t--) {solve();}return 0;
}

K-简单游戏

只有赢和输两种情况,要么赢要么输,没有平局

如果一开始的局面先手会输的话,那么先手就把1删掉,把这一局面抛给后手,所以先手必胜

#include<bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
int n;
void solve() {cin>>n;cout<<"ocharin"<<endl;
}
signed main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t=1;cin>>t;while(t--) {solve()}return 0;
}

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

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

相关文章

【软件工程】详细设计(二)

这里是详细设计文档的第二部分。前一部分点这里 4. 学生端模块详细设计 学生端模块主要由几个组件构成&#xff1a;学生登录界面&#xff0c;成绩查询界面等界面。因为学生端的功能相对来说比较单一&#xff0c;因此这里只给出两个最重要的功能。 图4.1 学生端模块流程图 4.…

软考高级架构师:性能评价方法概念和例题

一、AI 讲解 性能评价是衡量计算机系统或其组件在指定条件下执行预期任务的有效性的一种方式。性能评价的方法主要可以分为几种&#xff0c;每种方法都有其特点和适用场景。 性能评价方法 方法描述时钟频率法通过计算机的时钟频率来评估性能&#xff0c;时钟频率越高&#x…

大话设计模式之状态模式

状态模式是一种行为设计模式&#xff0c;它允许对象在其内部状态发生变化时改变其行为。在状态模式中&#xff0c;对象将其行为委托给当前状态对象&#xff0c;从而在不同的状态下执行不同的行为&#xff0c;而不必在对象自身的代码中包含大量的条件语句。 通常&#xff0c;状…

mysql 相关链接与子查询的练习,以及索引视图的简单概述

4月1日 索引与视图 一 销售查询问题复习链接和子查询 1&#xff09;子查询相关sql语句 -- 结果返回一个值 select 查询字段 from 表 where 字段 [ > < <>] (子查询的内容)-- 单列多行 select 查询字段 from 表 where 字段 in (子查询)-- 多列多行 select 查询字…

06 监听器

文章目录 SessionAttListenerDemo.javaSessionListenerDemo.javaProductController.java SessionAttListenerDemo.java package com.aistart.listener;import javax.servlet.ServletContext; import javax.servlet.annotation.WebListener; import javax.servlet.http.HttpSess…

Tensorboard使用教程

Pytorch(九) —— Tensorboard(当有了tensorboard日志文件怎么可视化它)(同时显示多个模型)(vscode的tensorboard)(TensorboardX)_tensorboard --logdir-CSDN博客文章浏览阅读9.7k次&#xff0c;点赞10次&#xff0c;收藏56次。tensorboard.pyfrom tensorboardX import Summary…

NVIDIA Jetson Xavier NX增加swap分区大小

NVIDIA Jetson Xavier NX增加swap分区大小 1. 输入jtop查看swap空间大小 2. 依次输入命令 #1&#xff09;新增swapfile文件大小自定义 sudo fallocate -l 6G /var/swapfile #2&#xff09;配置该文件的权限 sudo chmod 600 /var/swapfile #3&#xff09;建立交换分区 sudo m…

最大子数组和-动态规划

53. 最大子数组和 问题&#xff1a;最大子数组和&#xff0c;找出数组中具有最大和的连续子数组。 思路&#xff1a; 暴力解法&#xff1a;通过两重循环遍历&#xff0c;得到所有子数组和。时间和空间复杂度都为O(n^2): class Solution {public int maxSubArray(int[] nums…

RuntimeError: Error compiling objects for extension虚拟环境和系统环境——添加、删除、修改环境变量

前言&#xff1a;因为一个报错RuntimeError: Error compiling objects for extension 没有配置cl.exe环境变量&#xff0c;我的应用场景是需要搞定虚拟环境变量配置 RuntimeError: Error compiling objects for extension手把手带你解决&#xff08;超详细&#xff09;-CSDN博…

爬虫 红网时刻 获取当月指定关键词新闻 并存储到CSV文件

目标网站&#xff1a;红网 爬取目的&#xff1a;为了获取某一地区更全面的在红网已发布的宣传新闻稿&#xff0c;同时也让自己的工作更便捷 环境&#xff1a;Pycharm2021&#xff0c;Python3.10&#xff0c; 安装的包&#xff1a;requests&#xff0c;csv&#xff0c;bs4&…

如何在pgAdmin中用替换的值更新jsonb列?(二)

上一篇提到怎么替换jsonb&#xff0c;链接如下&#xff1a; 如何在pgAdmin中用替换的值更新jsonb列&#xff1f;-CSDN博客 那么当jsonb嵌套jsonb应该怎么替换呢&#xff1f;像这样&#xff0c;类型依然是jsonb&#xff0c;只不过嵌套一层&#xff0c;JsonData&#xff1a;&qu…

网络安全 | 什么是DDoS攻击?

关注WX&#xff1a;CodingTechWork DDoS-介绍 DoS&#xff1a;Denial of Service&#xff0c;拒绝服务。DDoS是通过大规模的网络流量使得正常流量不能访问受害者目标&#xff0c;是一种压垮性的网络攻击&#xff0c;而不是一种入侵手段。NTP网络时间协议&#xff0c;设备需要…

Springboot整合Milvus向量库

1. Milvus的Maven依赖&#xff0c; 配置如下 <dependency><groupId>io.milvus</groupId><artifactId>milvus-sdk-java</artifactId><version>2.3.4</version><exclusions><exclusion><artifactId>log4j-slf4j-imp…

百度语音识别

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、建号—获取试用KEY二、测试代码三、运行四、运行结果五、验证五、总结 一、建号—获取试用KEY https://console.bce.baidu.com/ai/#/ai/speech/overview/index…

Tomcat部署及安全加固

一、安装步骤 tomcat版本(8.5.81)&#xff1a; tar -zxvf apache-tomcat-8.5.81.tar.gz -C /app/ cd /app/ mv apache-tomcat-8.5.81/ tomcat/ chown -R webapp:app /app/tomcat二、安全加固 1. 禁止默认页面登录 rm -rf /app/tomcat/webapps mkdir -p /app/tomcat/webapps2…

阿里云python-SDK配置

OSS管理控制台 (aliyun.com) SDK地址 GitHub - aliyun/aliyun-oss-python-sdk: Aliyun OSS SDK for Python 下载文件并运行 python setup.py install oss2包配置完成。 上传、下载开发文档&#xff1a; Python SDK快速入门_对象存储(OSS)-阿里云帮助中心 (aliyun.com)

mybatis-plus-join,一个可以让mybatis-plus实现联表的插件

mybatis-plus-join mybatis-plus-join是mybatis plus的一个多表插件&#xff0c;上手简单&#xff0c;十分钟不到就能学会全部使用方式&#xff0c;只要会用mp就会用这个插件&#xff0c;仅仅依赖了lombok&#xff0c;而且是扩展mp的构造器并非更改原本的构造器&#xff0c;不会…

记一次Cannot deploy POJO class [xxx$$EnhancerBySpringCGLIB$$xxx]的错误

最近项目上需要使用websocket做服务端&#xff0c;那好说啊&#xff0c;直接springboot集成的websocket 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId><versi…

赛氪网在长沙宣布启动“徽文化外宣翻译大赛”

2024年3月30日下午&#xff0c;在美丽的星城长沙&#xff0c;赛氪网作为承办方&#xff0c;在中国翻译协会年会期间成功举办了备受瞩目的“AI科技时代竞赛与就业分论坛”。此次论坛汇聚了众多翻译界、科技界和教育界的专家学者&#xff0c;共同就科技、实践、就业与竞赛人才培养…

一些关于机器学习的练习

为了加深机器学习基础并通过实践学习&#xff0c;收集了以下练习&#xff0c;覆盖了从数据探索、预处理到模型构建和评估的整个流程。这些练习按照机器学习的主要类型分为三部分&#xff1a;监督学习、无监督学习和强化学习。 监督学习练习 房价预测&#xff08;线性回归&…