【CodeForces训练记录】Codeforces Round 984 (Div. 3)

news/2025/1/8 22:02:38/文章来源:https://www.cnblogs.com/longxingx/p/18522742

训练情况

赛后反思

A题最简单的题愣神了,浪费了几分钟,其他方面正常表现

A题

相邻的两个差绝对值不能出现除了 \(5\)\(7\) 以外的,直接模拟即可。

#include <bits/stdc++.h>
#define int long longusing namespace std;void solve(){int n; cin>>n;vector<int> a(n + 1);for(int i = 1;i<=n;i++) cin>>a[i];bool flag = true;for(int i = 2;i<=n;i++){int x = abs(a[i] - a[i-1]);if(x != 5 && x != 7) flag = false;}if(flag) cout<<"YES"<<endl;else cout<<"NO"<<endl;
}signed main(){int T; cin>>T; while(T--)solve();return 0;
}

B题

\(n\) 个货架,\(k\) 件商品,每个货架只摆同一种品牌的商品,所以我们统计每个品牌商品的价格和,最后取出价格和最大的前 \(n\) 个品牌的商品即可,使用优先队列维护。

#include <bits/stdc++.h>
#define int long longusing namespace std;struct node{int a,b;
};bool cmp(node x,node y){return x.a < y.a;
}void solve(){int n,k; cin>>n>>k;priority_queue<int> q;vector<node> a(k + 1);for(int i = 1;i<=k;i++){cin>>a[i].a>>a[i].b;}sort(a.begin() + 1,a.end(),cmp);int sum = a[1].b;for(int i = 2;i<=k;i++){if(a[i].a == a[i-1].a) sum += a[i].b;else q.push(sum),sum=a[i].b;}q.push(sum);int ans = 0;for(int i = 1;i<=n;i++){if(!q.size()) break;ans += q.top();q.pop();}cout<<ans<<endl;
}signed main(){int T; cin>>T; while(T--)solve();return 0;
}

C题

我们发现修改某一位只会对附近相邻四位产生贡献,只会有下面几种情况

110X
?11X0
??1X00
???X100

所以我们在替换某一位的时候,先把替换位置附近的这几种情况记录的 1100 子串位置和个数先全部去掉,再统计。此时我们只需要维护整个字符串中子串 1100 的个数即可。

#include <bits/stdc++.h>
#define int long longusing namespace std;void solve(){string s; cin>>s;int n = s.size();vector<bool> vis(n); int cnt = 0;for(int i = 0;i<n-3;i++){if(s.substr(i,4) == "1100") vis[i] = 1,cnt++;}int k; cin>>k;while(k--){int pos,v; cin>>pos>>v;s[pos-1] = v+'0';for(int i = max(0ll,pos-4);i<=min(n-1,pos-1);i++){if(vis[i]) vis[i] = 0,cnt--;}for(int i = max(0ll,pos-4);i<=min(n-1,pos-1);i++){if(s.substr(i,4) == "1100") vis[i] = 1,cnt++;}if(cnt) cout<<"YES"<<endl;else cout<<"NO"<<endl;}
}signed main(){int T; cin>>T; while(T--)solve();return 0;
}

D题

主要难点是绕顺时针,而且从外往里,一共会有 \(\lfloor \frac{min(n,m)}{2} \rfloor\) 圈,循环挺难写的,我们分成顺时针四段四条边写即可,注意一下统计出现次数,首位相接也算。

#include <bits/stdc++.h>
#define int long longusing namespace std;int pd(string s){int cnt = 0;int n = s.size();for(int i = 0;i<n-3;i++){if(s.substr(i,4) == "1543") cnt++;}if(s[n-3] == '1' && s[n-2] == '5' && s[n-1] == '4' && s[0] == '3') cnt++;if(s[n-2] == '1' && s[n-1] == '5' && s[0] == '4' && s[1] == '3') cnt++;if(s[n-1] == '1' && s[0] == '5' && s[1] == '4' && s[2] == '3') cnt++;return cnt;
}void solve(){int n,m; cin>>n>>m;vector<string> s(n);vector<vector<bool>> vis(n+1,vector<bool>(m+1));for(int i = 0;i<n;i++) cin>>s[i];string t;int ans = 0;for(int i = 0;i<min(n,m)/2;i++){t = "";for(int j = i;j<=m-1-i;j++) t+=s[i][j];for(int j = i+1;j<=n-1-i;j++) t+=s[j][m-i-1];for(int j = m-1-i-1;j>=i;j--) t+=s[n-i-1][j];for(int j = n-1-i-1;j>=i+1;j--) t+=s[j][i];// cout<<t<<endl;ans += pd(t);}cout<<ans<<endl;
}signed main(){int T; cin>>T; while(T--)solve();return 0;
}

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

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

相关文章

高级语言程序设计第五次作业

没清楚题目的要求改了好几次只是单纯的把原来的程序改了一下,应该是没错,毕竟输出好几个都是对的用了条件选择才写出来,不知道有没有其他的办法打了好久的代码,感觉有点繁琐这题没啥太大问题这题也没啥问题 ![](https://img2024.cnblogs.com/blog/3525374/202411/3525374-2…

Ubuntu插入移动硬盘后提示Wrong fs type,bad option,bad superblock on /dev

没有被成功挂载导致的,打开 工具——磁盘500G是我的移动硬盘,点击设置——编辑挂载选项,关闭[用户会话默认值]后,确定即可。重新拔插移动硬盘即可。

解决zabbix图形化中文乱码问题

1. windows控制中心选择要替换的ttf的字体复制到单独目录。2. dnf install lrzsz #安装rz命令,方便快速上传字体文件 3. cd /usr/share/fonts/dejavu-sans-fonts/ #进入字体文件所在目录 4. rz -E #上传Windows上找到的ttf字体文件5. cp DejaVuSans.ttf DejaVuSans.ttf.back …

原教旨冯诺依曼到存算的距离

冯诺伊曼架构和存算不是对立的概念 从智能角度证明存算架构力度远远不够存算针对的是存储和计算关系,冯诺依曼架构针对的是程序和数据都要存储,二者重心不一样因此不是对立的概念。 如果按原教旨主义理解冯诺依曼架构,就要追溯到 《First Draft of a Report on the EDVAC[1]…

[MRCTF2020]你传你呢

题目链接:https://buuoj.cn/challenges#[MRCTF2020]你传你🐎呢 打开环境后如下所示。可以看到,这是一道文件上传题,直接对可上传的文件类型进行 fuzzing。通过 fuzzing 发现,可以上传 .jpg、.html、.htaccess 文件,PHP 相关的文件均无法上传。 因此,可以选择上传 .htac…

Deswing :图形化Java反序列化利用工具

原创 GSDK安全团队免责声明 工具仅供安全研究与学习之用,若将工具做其他用途,由使用者承担全部法律及连带责任,作者及发布者不承担任何法律及连带责任。信息及工具收集于互联网,真实性及安全性自测!!!项目地址 https://github.com/0ofo/Deswing项目介绍 这是一个Java反序…

【Linux安全】Shellcoding

原创 haidragon 安全狗的自我修养“面向安全专业人员的 Linux Shellcoding” 今天我们将学习 Linux Shellcoding 并学习实践知识。 shell代码 编写 shellcode 是了解有关汇编语言以及程序如何与操作系统交互的更多信息的好方法。 为什么红队成员和渗透测试人员编写 shellcode?…

[极客大挑战 2019]Http

题目链接:https://buuoj.cn/challenges#[极客大挑战 2019]Http。 访问环境如下。该页面的响应包如下。 HTTP/1.1 200 OK Date: Wed, 23 Oct 2024 16:21:45 GMT Server: Apache/2.2.15 (CentOS) X-Powered-By: PHP/5.3.3 Content-Length: 4065 Connection: close Content-Type:…

Matlab 2024下载与安装(包含授权激活)

1、安装包Matlab 2024 B: 链接:https://pan.quark.cn/s/f56eda425e79 提取码:daQZ Matlab 2023B: 链接:https://pan.quark.cn/s/6b597a439f49 提取码:c3XR Matlab R2022 a: 链接:https://pan.quark.cn/s/4a8cf5260d20 提取码:QyKG 2、安装教程 1) 解压压缩包文件…

[极客大挑战 2019]Upload

题目链接:https://buuoj.cn/challenges#[极客大挑战 2019]Upload。 打开环境,如下所示。通过页面源代码可以发现,该网站系 PHP 架构,因此尝试直接上传一句话木马。发现提示 "NOT!php!",因此尝试 fuzzing 一下后缀名。发现网站可以通过了 "phtml" 的后…

[SUCTF 2019]EasySQL

题目链接:https://buuoj.cn/challenges#[SUCTF 2019]EasySQL 打开环境后,如下所示。尝试输入字符:1。尝试输入字符:0 后,发现没有输出结果。尝试输入字符串 "aaa"、"bbb" 等后,发现都跟输入 0 的结果一致,而输入 123、456 等非 0 的内容,都与输入 …

[极客大挑战 2019]LoveSQL

题目链接:https://buuoj.cn/challenges#[极客大挑战 2019]LoveSQL。 打开环境后,如下所示。尝试 SQL 注入(万能密码)。 Payload:admin+or+1%3d1%3b%23。(笔者通过简单粗暴的尝试:①没有使用单引号;②使用单引号;③使用双引号,来确定后端拼接的 SQL 语句中的 password…