Codeforces Round 494 (Div. 3)

目录

A. Polycarp's Pockets

B. Binary String Constructing

C. Intense Heat

D. Coins and Queries

E. Tree Constructing

F. Abbreviation


A. Polycarp's Pockets

记录数量可以直接开一个桶即可然后求最大值

void solve(){cin>>n;vector<int> ton(105);int ans=0;while(n--){int x; cin>>x;ton[x]++;ans=max(ans,ton[x]);}cout<<ans<<endl;return ;
}

B. Binary String Constructing

先按照01010这样的方式把题目要求构造出来然后往中间插入01即可这样答案不会变化

void solve(){int a,b,n; cin>>a>>b>>n;vector<int> s(n+5);if(b>a) s[1]=1,b--;else a--;for(int i=2;i<=n+1;i++){s[i]=s[i-1]^1;if(s[i]) b--;else a--;}for(int i=1;i<=n+1;i++){cout<<s[i];if(s[i]) while(b) cout<<1,b--; else while(a) cout<<0,a--;}return ;
}

C. Intense Heat

暴力前缀和统计最大平均值即可

void solve(){cin>>n>>m;vector<int> a(n+5);for(int i=1;i<=n;i++) cin>>a[i],a[i]+=a[i-1];double res=0;for(int i=1;i<=n;i++)for(int j=i+m-1;j<=n;j++)res=max(res,1.0*(a[j]-a[i-1])/(j-i+1));cout<<LF(7)<<res<<endl;return ;
}

D. Coins and Queries

类似二进制从大到小取满整个数即可

void solve(){cin>>n>>m;vector<int> cnt(33);for(int i=1;i<=n;i++){int x; cin>>x;cnt[log2(x)]++;}while(m--){int x; cin>>x;int ans=0;for(int i=31;i>=0;i--){int t=min(x/(1<<i),cnt[i]);ans+=t;x-=(1<<i)*t;}if(x) ans=-1;cout<<ans<<endl;}return ;
}

E. Tree Constructing

构造一棵树我们可以发现如果是又满足的一定是一条直径是d的我们不妨直接把直径构造出来,然后在其中的点加入限制条件之后直接构造,注意题目的意思是构造出来的树直径就是d所以按照题目要求然后对其中的点扩充即可

vector<PII> ans;
void dfs(int u,int now,int d){if(now==d) return ;for(int i=1;i<=k-1-(now==0)&&cnt<n;i++){//初始进来的时候是中间节点表示以及少了两个度了cnt++;ans.push_back({u,cnt});dfs(cnt,now+1,d);}
}
void solve()
{cin>>n>>d>>k;if(n-1<d){// 表示建立不了这枚长cout<<"NO"<<endl;return ;}// n个点建立 n-1 为最长的直径if(k==1){// 特殊情况特殊判断if(n==2&&d==1){cout<<"YES"<<endl;cout<<1<<' '<<2<<endl;}else cout<<"NO"<<endl;return ;}for(int i=1;i<=d;i++){ans.push_back({i,i+1});}cnt=d+1;for(int i=1;i<=d+1;i++)dfs(i,0,min(i-1,d-i+1));// 表示当前的还可以构造的深度if(cnt<n){cout<<"NO"<<endl;}else{cout<<"YES"<<endl;for(auto&[a,b]:ans) cout<<a<<' '<<b<<endl;}return ;
}

F. Abbreviation

整个题目注意题目意思,以及数据范围(300-500)一般都是n^3的时间复杂度来解决,接着我们要的是找到一段相同的然后把整个里面相同的进行缩写处理,不妨先把整个用vector<string> 存储起来,接着我们要考虑的就是相同的长度是多少,接着考虑从什么位置开始,我们 由此可以设置状态

dp[i][j]表示 状态表示 以第i个结尾的 和以第j个结尾的最长相同后缀长度是多少这样就满足了什么位置开始长度是多少,接着枚举位置和长度来求解即可


vector<string> a;
void solve(){a.push_back(" ");cin>>n;int tol=0;   for(int i=1;i<=n;i++){string s; cin>>s;a.push_back(s);tol+=s.size();}tol+=n-1;// 求出总空间需求int ans=tol;// 状态表示 以第i个结尾的 和以第j个结尾的最长相同后缀长度是多少for(int i=1;i<=n;i++)for(int j=i+1;j<=n;j++)if(a[i]==a[j]) dp[i][j]=dp[i-1][j-1]+1;for(int i=n;i>=1;i--){// 以i为结尾int sum=0;// 长度for(int d=1;i-d>=0;d++){sum+=a[i-d+1].size();int cnt=0;for(int j=i-d;j>=1;)// j开始if(dp[j][i]>=d){j-=d;cnt++;}else j--;if(cnt){cnt++;int now=tol-sum*cnt+cnt;//对于整个缩写减少的是字母占据的位置,同时由于空格等于字母-1所以后面还要加一个1// cnt 个所以要加上cnt个1ans=min(ans,now);}}}cout<<ans<<endl;return ;
}

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

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

相关文章

微服务篇之分布式事务

一、Seata架构 Seata事务管理中有三个重要的角色&#xff1a; TC (Transaction Coordinator) - 事务协调者&#xff1a;维护全局和分支事务的状态&#xff0c;协调全局事务提交或回滚。 TM (Transaction Manager) - 事务管理器&#xff1a;定义全局事务的范围、开始全局事务、…

Vulnhub-OSCP

信息收集 # nmap -sn 192.168.1.0/24 -oN live.nmap Starting Nmap 7.94 ( https://nmap.org ) at 2024-02-07 17:49 CST Nmap scan report for 192.168.1.1 Host is up (0.00052s latency). MAC Address: 00:50:56:C0:00:08 (VMware) Nmap scan report for 192.168.1.…

JSON与GET请求参数互转工具

JSON与GET请求参数互转工具 - BTool在线工具软件&#xff0c;为开发者提供方便。 本工具能让你轻松地在JSON和GET请求参数之间互转。无论是将JSON数据转换为URL查询参数&#xff0c;还是将URL查询参数解析为JSON对象&#xff0c;它都能帮你快速完成。告别手动拼接和解析URL参数…

详解编译和链接!

目录 1. 翻译环境和运行环境 2. 翻译环境 2.1 预处理 2.2 编译 2.3 汇编 2.4 链接 3. 运行环境 4.完结散花 悟已往之不谏&#xff0c;知来者犹可追 创作不易&#xff0c;宝子们&#xff01;如果这篇文章对你们…

Django学习笔记-forms使用

1.创建forms.py文件,导入包 from django import forms from django.forms import fields from django.forms import widgets2. 创建EmployeeForm,继承forms.Form 3.创建testform.html文件 4.urls.py添加路由 5.views中导入forms 创建testform,编写代码 1).如果请求方式为GET,…

thinkphp5.1 phpexcel 批量导入导出

1.批量导入 public function importExcel(){$authority $this->getUserAuthority(order_input, batch_import);if ($authority[code] ! 0) {return json($authority);}$file request()->file(files);if(empty($file)){return printMsg(-1, "请上传文件");}/…

OpenHarmony 串口服务访问

项目介绍 本文档是在eTS项目hap包中实现串口访问的使用说明&#xff0c;通过JS接口开放给上层应用使用。 一、开发环境准备 安装OpenHarmony SDK 1. 在DevEco Studio菜单栏选择Tools->SDK Manager 2. OpenHarmony SDK选项中选择配备API版本进行安装 二、创建eTS项目 创…

【论文阅读笔记】Revisiting RCAN: Improved Training for Image Super-Resolution

论文地址&#xff1a;https://arxiv.org/abs/2201.11279 代码地址&#xff1a;https://github.com/zudi-lin/rcan-it 论文小结 本文的工作&#xff0c;就是重新审视之前的RCAN&#xff0c;然后做实验来规范化SR任务的训练流程。 此外&#xff0c;作者得出一个结论&#xff1a;…

恒创科技:香港服务器和香港云服务器哪个好啊?

"香港服务器"和"香港云服务器"&#xff0c;是两种不同的香港区域的服务器&#xff0c;免备案&#xff0c;都有各自的优势和适用场景&#xff0c;取决于您的需求和预算。以下是它们的一些区别和特点&#xff1a; 香港服务器&#xff1a; 物理服务器&#xf…

【算法与数据结构】回溯算法、贪心算法、动态规划、图论(笔记三)

文章目录 七、回溯算法八、贪心算法九、动态规划9.1 背包问题9.2 01背包9.3 完全背包9.4 多重背包 十、图论10.1 深度优先搜索10.2 广度优先搜索10.3 并查集 最近博主学习了算法与数据结构的一些视频&#xff0c;在这个文章做一些笔记和心得&#xff0c;本篇文章就写了一些基础…

微服务学习

一、服务注册发现 服务注册就是维护一个登记簿&#xff0c;它管理系统内所有的服务地址。当新的服务启动后&#xff0c;它会向登记簿交待自己的地址信息。服务的依赖方直接向登记簿要Service Provider地址就行了。当下用于服务注册的工具非常多ZooKeeper&#xff0c;Consul&am…

【打包 Qt软件给客户使用操作】

文章目录 前言一、使用步骤1.调整为release 版本2.运行&#xff0c;在release 中找到执行文件3. 拷贝.exe文件到某个新建文件夹的目录4.找到自带编译器版本5.点击进入目录6. 执行 执行 windeployqt xxx.exe7.打包完成8.绿色版9.保存打包记录 总结 前言 提示&#xff1a;这里可…