Codeforces Round 486 (Div. 3)

目录

A. Diverse Team

B. Substrings Sort

C. Equal Sums

D. Points and Powers of Two

E. Divisibility by 25

F. Rain and Umbrellas


A. Diverse Team

 找出不重复的同时存下下标即可,依次遍历map判断重复最后判断数量即可

void solve(){cin>>n>>m;map<int,int> mp;vector<int> res;for(int i=1;i<=n;i++){int x; cin>>x;if(!mp.count(x))res.push_back(i);mp[x]++;}if(res.size()<m) cout<<"NO"<<endl;else{cout<<"YES"<<endl;for(int i=0;i<m;i++) cout<<res[i]<<' ';cout<<endl;}return ;
}

B. Substrings Sort

如果前一个是后一个的字串那么后一个的长度一定大于等于前一个,所以我没按照长度排序最后检查是不是满足都是字串即可

bool cmp(string a,string b){return a.size()<b.size();
}
void solve(){cin>>n;vector<string> s(n);for(auto&v:s) cin>>v;sort(s.begin(),s.end(),cmp);bool ok=true;for(int i=0;i<n;i++){for(int j=i+1;j<n;j++){if(s[j].find(s[i])==-1) ok=false;}}if(!ok) cout<<"NO"<<endl;else{cout<<"YES"<<endl;for(auto&v:s) cout<<v<<endl;}return ;
}

C. Equal Sums

我没对删除每一个位置的数的结果记录起来用map记录前面的方案即可,为了防止自己这一排我没使用先遍历自己的答案最后把自己的加入即可

void solve(){cin>>n;bool ok=false;map<LL,PII> mp;for(int i=1;i<=n;i++){cin>>m;vector<int> a(m);LL sum=0;for(int j=0;j<m;j++){cin>>a[j];sum+=a[j];}if(ok) continue;for(int j=0;j<m;j++){if(mp.count(sum-a[j])){ok=true;cout<<"YES"<<endl;auto [pos,id]=mp[sum-a[j]];cout<<pos<<' '<<id<<endl;cout<<i<<' '<<j+1<<endl;break;}}for(int j=0;j<m;j++){mp[sum-a[j]]={i,j+1};}}if(!ok) cout<<"NO"<<endl;return ;
}

D. Points and Powers of Two

我没研究性质可以发现其实最多只有三个不同的数出现因为如果还有更多的数的话一定不会是2的次方我们考虑三个数x-2^d,x,x+2^d,如果再加入一个数明显不成立所以最多三种我们不妨考虑枚举中间位置的数,然后枚举二进制即可

void solve(){cin>>n;map<int,int> mp;for(int i=0;i<n;i++){int x; cin>>x;mp[x]++;}int ans=0,id,pw;for(auto&[v,w]:mp){for(int j=1,cnt=1;cnt<=31;cnt++,j*=2){int now=w;if(mp.count(v-j)) now+=mp[v-j];if(mp.count(v+j)) now+=mp[v+j];if(now>ans){ans=now;id=v,pw=j;}}}cout<<ans<<endl;while(mp.count(id) && mp[id]--) cout<<id<<' ';while(mp.count(id+pw) && mp[id+pw]--) cout<<id+pw<<' ';while(mp.count(id-pw) && mp[id-pw]--) cout<<id-pw<<' ';return ;
}

E. Divisibility by 25

25的倍数一定是25,50,75,00作为结尾,我们考虑依次移动到后面即可,接着发现可能会出现00的情况我们假设最后是00375我们可以把3移动到最前面即可所以加入一个特判即可

int ans=1e9;
void check(char a,char b){string ss(s);reverse(ss.begin(),ss.end());int cnt=0;for(int i=0;i<ss.size();i++){if(ss[i]==b){cnt+=i;for(int j=i;j>0;j--){swap(ss[j],ss[j-1]);}break;}}for(int i=1;i<ss.size();i++){if(ss[i]==a){cnt+=i-1;for(int j=i;j>1;j--){swap(ss[j],ss[j-1]);}break;}}reverse(ss.begin(),ss.end());bool ok=false;for(int i=0;i<ss.size();i++){if(ss[i]!='0'){ok=true;cnt+=i;break;}}if(!ok) cnt=1e9;ans=min(ans,cnt);
}
void solve(){cin>>s;vector<int> cnt(10);for(auto&v:s) cnt[v-'0']++;if(cnt[2]>=1 && cnt[5]>=1) check('2','5');if(cnt[5]>=1 && cnt[0]>=1) check('5','0');if(cnt[7]>=1 && cnt[5]>=1) check('7','5');if(cnt[0]>=2) check('0','0');cout<<(ans==1e9 ? -1 : ans)<<endl;return ;        
}

F. Rain and Umbrellas

我们明显的可以考虑到dp,有些时候我们可以简单的思考问题我的上一个状态是前面的所有状态还是可以简化位就上一个位置的状态这里明显可以这样来思考这个问题,我们必须要从合法的状态转移过来,也就是我在第i个点手上拿着第几个伞,第0个表示没有伞,然后判断我上一个位置有没有伞我这个位置有没有雨来转移

int dp[M][M];// 表示到第i个点时用的是第j个位置的雨伞// 0 表示现在没有伞
int cho[M];
int w[M];
int rain[M];
int S;void solve()
{cin>>S>>n>>m;for(int i=1;i<=n;i++){int l,r; cin>>l>>r;for(int j=l+1;j<=r;j++)rain[j]=1;// 表示这个位置在下雨}	 w[0]=INF;for(int i=1;i<=m;i++){int v; cin>>v>>w[i];if(w[i]<=w[cho[v]]) cho[v]=i;}// 表示记录下来每一个位置的雨伞的权重,以及每一个雨伞在什么位置memset(dp,0x3f,sizeof dp);dp[0][0]=0;for(int i=1;i<=S;i++){for(int j=0;j<=m;j++){if(!rain[i]){// 如果我这个位置没有雨直接扔掉伞dp[i][0]=min(dp[i][0],dp[i-1][j]);}// 表示我接着用上一个位置的伞dp[i][j]=min(dp[i][j],dp[i-1][j]+w[j]);if (cho[i-1]){// 对于这个位置的上一个位置有伞换一手dp[i][cho[i-1]]=min(dp[i][cho[i-1]],dp[i-1][j]+w[cho[i-1]]);}}}int ans=INF;for(int i=0;i<=m;i++) ans=min(ans,dp[S][i]);cout<<(ans==INF ? -1 : ans)<<endl;return ;
}

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

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

相关文章

订餐|网上订餐系统|基于springboot的网上订餐系统设计与实现(源码+数据库+文档)

网上订餐系统目录 目录 基于springboot的网上订餐系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户功能模块的实现 &#xff08;1&#xff09;用户注册界面 &#xff08;2&#xff09;用户登录界面 &#xff08;3&#xff09;菜品详情界面 &#xff08…

【Unity】【VR开发】针对VR项目的优化版Unity Build Settings

【背景】 编辑器中做了功能后,打包后却总会画面不满意,所以到处学习,总结成本篇,希望有用。 【准备】 本篇总结基于Unity 2021 LTS。 模板选择3D(URP) 如果URP不支持所用的部分Assets,那么也可以选择Built-in管线,不过URP肯定画面效果上要胜过Built-in。 HDRP不适用…

12.2K Star,开箱即用后台管理系统

Hi&#xff0c;骚年&#xff0c;我是大 G&#xff0c;公众号「GitHub指北」会推荐 GitHub 上有趣有用的项目&#xff0c;一分钟 get 一个优秀的开源项目&#xff0c;挖掘开源的价值&#xff0c;欢迎关注。 今天推荐一款开源免费且开箱即用的中后台管理系统&#xff0c;完全采用…

YOLO v5项目实战 P5 解决运行detect文件时设置了--view-img但是显示不出来的问题

up主讲的实时显示目标检测后的图片的两种方法&#xff1a; &#xff08;1&#xff09;在下面的Terminal中输入下列命令&#xff1a; python detect.py --view-img &#xff08;2&#xff09;点击进入右上方的detect的Edit Configurations 然后在这个参数这里输入 --view img…

Spring Resource

java.net.URL 类可用于访问带有各种URL前缀的资源&#xff0c;但是对于访问一些资源还是不够方便。比如不能从类路径或者相对于ServletContext来获取资源。而Spring 的Resource接口&#xff0c;则可以通过类路径等方式来访问资源。 1 Resource接口 图 Resource接口及方法 getI…

2024年2月份实时获取地图边界数据方法,省市区县街道多级联动【附实时geoJson数据下载】

首先&#xff0c;来看下效果图 在线体验地址&#xff1a;https://geojson.hxkj.vip&#xff0c;并提供实时geoJson数据文件下载 可下载的数据包含省级geojson行政边界数据、市级geojson行政边界数据、区/县级geojson行政边界数据、省市区县街道行政编码四级联动数据&#xff0…

09:资源利用率监控|存储卷管理

资源利用率监控&#xff5c;存储卷管理 资源利用率监控开启聚合服务安装metrics-server监控容器利用率 存储卷管理临时卷ConfigMap卷 存配置文件emptyDir卷 适合缓存 持久卷hostPath 卷 NFS共享卷持久卷搭建NFS服务器创建PV创建PVC 资源利用率监控 开启聚合服务 kubelet证书 在…

Excel如何把窗口冻结,在下拉滚动条的时候仍然可以看到前几行数据?

** 共分2个情况&#xff1a; ①&#xff1a; 冻结首行&#xff1a; 作用&#xff1a;只冻结第一行的数据窗口。在下拉滚动条时&#xff0c;首行不会动&#xff0c;其他数据行会动步骤如下&#xff1a;1、鼠标放在首行的最左边&#xff0c;然后左键点一下先选中整行2、然后&am…

QtApplets-线程池

QtApplets-线程池 ​ 今天咱们稍微看下Qt的线程池。QThreadPool&#xff0c;浅浅搞一下。 文章目录 QtApplets-线程池QThreadPoolQThreadPool 与 QThread 区别替代方案Qt Concurrent QThreadPool 与 Qt Concurrent 区别Demo运行效果 ☞ 源码 关键字&#xff1a; Qt、QRunnable…

【大厂AI课学习笔记】【2.1 人工智能项目开发规划与目标】(6)特征工程初步

特征工程是一个非常重要的概念&#xff0c;从特征工程可以领会到机器学习的真谛。 特征工程就是从原始数据转换为特征向量的过程。 特征工程的特点&#xff1a; 特征工程是机器学习中很重要的起始步骤&#xff0c;直接影响效果&#xff0c;需要大量的时间。 数据和特征决定了…

究极小白如何自己搭建一个自动发卡网站-独角数卡

本人从来没接触过建站&#xff0c;我之前都是在TB上花90叫别人给我搭建的网站&#xff0c;前几天这个TB店倒闭跑路了&#xff0c;而我的发卡网也打不开了&#xff0c;没办法&#xff0c;逼上梁山&#xff0c;自己捣鼓出来了&#xff01;下面是2023/4/2自己建好的&#xff01; …

【IO流】FileOutputStream 字节输出流

FileOutputStream 字节输出流 1. 概述2. 作用3. 书写步骤4. 构造方法5. 换行写6. 续写7. 注意事项 1. 概述 FileOutputStream 是 Java 中用于向文件写入字节数据的输出流类。它用于创建一个文件输出流&#xff0c;该流用于将数据写入文件。 功能&#xff1a;FileOutputStream …