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.mzph.cn/news/686842.shtml

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

相关文章

AI专题:5G-A扬帆风正劲,踏AI增长新浪潮

今天分享的是AI系列深度研究报告&#xff1a;《AI专题&#xff1a;5G-A扬帆风正劲&#xff0c;踏AI增长新浪潮》。 &#xff08;报告出品方&#xff1a;开源证券&#xff09; 报告共计&#xff1a;22页 足立连接&#xff0c;拓展算力&#xff0c;双曲线稳步发力 中兴通讯拥…

【论文精读】DALL·E

摘要 本文利用从互联网上收集的2.5亿个图像/文本对数据&#xff0c;训练了一个120亿参数的自回归transformer&#xff0c;进而得到一个可以通过自然语言/图像控制生成的高保真图像生成模型。在大多数数据集上的表现超越以往的方法。 框架 本文的目标为通过训练一个自回归trans…

java+SSM+mysql 开放式实验管理系统78512-计算机毕业设计项目选题推荐(免费领源码)

摘 要 我国高校开放式实验管理普遍存在实验设备使用率较低、管理制度不完善,实验设备共享程度不高等诸多问题。要在更大范围推行开放式实验管理,就必须在开放式实验教学管理流程中,通过引入信息化管理加大信息技术在其中的应用,才能真正发挥这种教学模式的开放性优势。 本系统…

文生视频:Sora模型报告总结

作为世界模拟器的视频生成模型 我们探索视频数据生成模型的大规模训练。具体来说&#xff0c;我们在可变持续时间、分辨率和宽高比的视频和图像上联合训练文本条件扩散模型。我们利用对视频和图像潜在代码的时空补丁进行操作的变压器架构。我们最大的模型 Sora 能够生成一分钟…

小苯的数组切分 ---- 牛客月赛

题目描述 qionghuaqionghuaqionghua 给了小苯一个长度为 n 的数组 a&#xff0c;希望小苯将数组 aaa 分为恰好非空的三段。即&#xff1a;[1,l−1],[l,r],[r1,n]这三段&#xff0c;其中 1< l≤r<n。接着&#xff1a; ∙ 第一段的所有数字做 ⊕&#xff08;按位异或&…

【C语言相关问题】C语言中关于大小写字母转换的问题

大家好&#xff0c;这里是争做图书馆扫地僧的小白。非常感谢各位的支持&#xff0c;也期待着您的关注。 目前博主有着C语言、C、linux以及数据结构的专栏&#xff0c;内容正在逐步的更新。 希望对各位朋友有所帮助同时也期望可以得到各位的支持&#xff0c;有任何问题欢迎私信与…

每日OJ题_算法_递归④力扣24. 两两交换链表中的节点

目录 ④力扣24. 两两交换链表中的节点 解析代码 ④力扣24. 两两交换链表中的节点 24. 两两交换链表中的节点 难度 中等 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即…

【大厂AI课学习笔记】【2.1 人工智能项目开发规划与目标】(2)项目开发周期

我们来学习项目开发的周期。 再次声明&#xff0c;本文来自腾讯AI课的学习笔记&#xff0c;图片和文字&#xff0c;仅用于大家学习&#xff0c;想了解更多知识&#xff0c;请访问腾讯云相关章节。如果争议&#xff0c;请联系作者。 今天&#xff0c;我们来学习AI项目的周期。 主…

17-k8s控制器资源-job控制

job控制器&#xff1a;就是一次性任务的pod控制器&#xff0c;pod完成作业后不会重启&#xff0c;其重启策略是&#xff1a;Never 1&#xff0c;job控制器案例描述 启动一个pod&#xff0c;执行完成一个事件&#xff0c;然后pod关闭&#xff1b; 事件&#xff1a;计算π的值&a…

AI大模型学习笔记之五:监督学习--数据如何驱动决策

监督学习&#xff0c;又称为监督式机器学习&#xff0c;是机器学习和人工智能领域的一个重要分支。 其基本原理是利用带有标签的数据集来训练算法&#xff0c;以实现精确分类数据或预测结果的目标。 在监督学习中&#xff0c;通过将数据输入模型&#xff0c;并不断调整数据权…

软件工程师,为什么不喜欢关电脑

概述 你是否注意到&#xff0c;软件工程师们似乎从不关电脑&#xff0c;也不喜欢关电脑&#xff1f;别以为他们是电脑“上瘾”&#xff0c;或是沉迷于电脑&#xff0c;这一现象背后蕴含着多种实际原因。 1、代码保存与恢复。 在编写代码过程中&#xff0c;遇到问题时可能会暂时…

【JavaScript】面试手写题精讲之数组(下)

引入 这章主要讲的是数组的排序篇&#xff0c;我们知道面试的时候&#xff0c;数组的排序是经常出现的题目。所以这块还是有必要进行一下讲解的。笔者观察了下前端这块的常用算法排序题&#xff0c;大概可以分为如下 冒泡排–> 稳定排序插入排序–> 稳定排序选择排序–…

Swing程序设计(10)列表框,文本框,文本域,密码框

文章目录 前言一、列表框二、文本框&#xff08;域&#xff09; 1.文本框2.文本域三、密码框总结 前言 该篇文章简单介绍了Java中Swing组件里的列表框、文本框、密码框。 一、列表框 列表框&#xff08;JList&#xff09;相比下拉框&#xff0c;自身只是在窗体上占据固定的大小…

【探索Linux】—— 强大的命令行工具 P.22(POSIX信号量)

阅读导航 引言一、POSIX信号量的基本概念二、信号量的相关操作1 . 初始化信号量sem_init ( )&#xff08;1&#xff09;原型&#xff08;2&#xff09;参数&#xff08;3&#xff09;返回值&#xff08;4&#xff09;示例代码 2 . 等待信号量&#xff08;1&#xff09;sem_wait…

高程 | 类与对象(c++)

文章目录 &#x1f4da;面向对象程序设计的基本特点&#x1f407;抽象——概括问题&#xff0c;抽出公共性质并加以描述。&#x1f407;封装——将抽象所得数据和行为相结合&#xff0c;形成一个有机的整体&#xff0c;形成“类”。&#x1f407;继承——在原有类特性的基础上&…

Python爬虫学习

1.1搭建爬虫程序开发环境 爬取未来七天天气预报 from bs4 import BeautifulSoup from bs4 import UnicodeDammit import urllib.request url"http://www.weather.com.cn/weather/101120901.shtml" try:headers{"User-Agent":"Mozilla/5.0 (Windows …

51_蓝桥杯_蜂鸣器与继电器

一 电路 二 蜂鸣器与继电器工作原理 2.1蜂鸣器与继电器 2.2 十六进制与二进制 二进制 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 十六进制 0 1 2 3 4 5 6 7 8 9 A B C D E F 2.3非门 二 代码 …

Java Lambda表达式:简化编程,提高效率

Java Lambda表达式&#xff1a;简化编程&#xff0c;提高效率 1. 使用Lambda表达式进行集合遍历1.1 未使用Lambda表达式&#xff1a;1.2 使用Lambda表达式&#xff1a; 2. 使用Lambda表达式进行排序2.1 未使用Lambda表达式&#xff1a;2.2 使用Lambda表达式&#xff1a; 3. 使用…

精通C语言:打造高效便捷的通讯录管理系统

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C语言项目 贝蒂的主页&#xff1a;Betty‘s blog 引言 在我们大致学习完C语言之后&#xff0c;我们就可以利用目前所学的知识去…

HCIA-HarmonyOS设备开发认证V2.0-内核扩展组件

目录 一、CPU 占用率1.1、CPU 占用率基本概念1.2、CPU 占用率运行机制1.3、CPU 占用率开发流程 二、动态加载2.1、 动态加载基本概念2.2、动态加载运行机制 坚持就有收获 一、CPU 占用率 1.1、CPU 占用率基本概念 CPU&#xff08;中央处理器&#xff0c;Central Processing U…