Codeforces Round 970 (Div. 3) (个人题解)(未补完)

前言:

  昨天晚上的比赛,可惜E题太笨了没想到如何解决,不过好在看到F过的多直接跳过去写F了,能过个5个也还不错了,而且一个罚时也没吃。之后的题我还是会再能补的时候补完的噢!

正文:

链接:Dashboard - Codeforces Round 970 (Div. 3) - Codeforces

题目:

A. Sakurako's Exam:

#include<bits/stdc++.h>
using namespace std;
int main(){int t;cin>>t;while(t--){int a,b;cin>>a>>b;if(b==0&&a%2==0&&a!=0){cout<<"YES"<<endl;}else if(a==0&&b%2==0){cout<<"YES"<<endl;}else if(a%2==0&&a!=0){cout<<"YES"<<endl;}else{cout<<"NO"<<endl;}}return 0;
}

简单的数字逻辑题,情况并不多,慢慢讨论就行了。

B. Square or Not:

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
string a;
int main(){int t;cin>>t;while(t--){int n,cnt=0;cin>>n;cin>>a;for(int i=0;i<n;i++){if(cnt==0&&a[i]=='0'){cnt=i+1;}}if(cnt==0)cnt=n;else cnt-=2;int cnt2=n/cnt;if(cnt2!=cnt){if((cnt==1&&n==1)||(cnt==4&&n==4)){cout<<"YES"<<endl;continue;}cout<<"NO"<<endl;continue;}if(n/cnt!=cnt&&n%cnt!=0){cout<<"NO"<<endl;continue;}//cout<<cnt<<endl;int res=0;for(int i=1;i<=n;i++){int j,k,flag=0;j=i/cnt;if(i%cnt)j++;k=i%cnt;if(k==0)k=cnt;//cout<<j<<k<<endl;if(j==1||j==cnt||k==1||k==cnt){flag=1;}if(flag==1){if(a[i-1]=='0'){res=1;break;}}else{if(a[i-1]=='1'){res=1;break;}}//cout<<res<<endl;}if(res==1){cout<<"NO"<<endl;}else{cout<<"YES"<<endl;}}return 0;
}

这题我太笨了,调了很久,并且做法也十分愚笨。题目的思路还是很好理解的,就是直接模拟一个矩阵看是否合理即可(矩阵的行列一定要相等)。

C. Longest Good Array:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[1000005];
void init(){a[1]=1;for(int i=2;i<1000000;i++){a[i]=i-1;}for(int i=1;i<1000000;i++){a[i]+=a[i-1];}
}
int main(){init();int t;cin>>t;while(t--){int l,r,res;cin>>l>>r;res=r-l;int low=1,high=1000000,mid;while(low<high){mid=low+high+1>>1;if(a[mid]-1<=res)low=mid;else high=mid-1;//cout<<low<<" "<<mid<<" "<<high<<endl;}cout<<low<<endl;}return 0;
}

贪心的令相邻数的间隔最小且递增,即 1,2,3,第 1 个数为 l,第 n+1个数为l+n*(n+1)/2,二分答案 n 即可。

D. Sakurako's Hobby:

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
int a[N],ans[N];
string s;
bool book[N];
int n,cnt;
void dfs(int x){book[x]=1;if(s[x-1]=='0')cnt++;if(book[a[x]]==0){dfs(a[x]);}ans[x]=cnt;
}
void init(){memset(book,0,sizeof(book));
}
int main(){int t;cin>>t;while(t--){cin>>n;init();for(int i=1;i<=n;i++){cin>>a[i];}cin>>s;for(int i=1;i<=n;i++){cnt=0;if(book[i]==0)dfs(i);}for(int i=1;i<=n;i++){cout<<ans[i]<<" ";}cout<<endl;}return 0;
} 

这题我用的是dfs递归+数组标记,其实用并查集也行,直接将搜索到的黑块的数量存进根节点,不过这两个做法大差不差,时间复杂度应该差不多。

E. Alternating String:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
int read(){int x = 0; bool f = false; char c = getchar();while(c < '0' || c > '9') f |= (c == '-'), c = getchar();while(c >= '0' && c <= '9') x = (x << 1) + (x << 3) + (c & 15), c = getchar();return f ? -x : x;
}
const int N = 2e5 + 5;
char s[N];
int odd[N][26], even[N][26];
void solve(){int n = read();scanf("%s", s + 1);for(int i = 1; i <= n; ++i){for(int j = 0; j <= 25; ++j) odd[i][j] = even[i][j] = 0;if(i & 1) odd[i][s[i] - 'a'] = 1;else even[i][s[i] - 'a'] = 1;for(int j = 0; j <= 25; ++j) odd[i][j] += odd[i - 1][j], even[i][j] += even[i - 1][j];}int ans = 0x7fffffff;if(n & 1){for(int i = 1; i <= n; ++i){for(int j = 0; j <= 25; ++j)for(int k = 0; k <= 25; ++k){int x = odd[i - 1][j] + even[n][j] - even[i][j];int y = even[i - 1][k] + odd[n][k] - odd[i][k];ans = min(ans, n - 1 - x - y);}}printf("%d\n", ans + 1);}else{for(int i = 0; i <= 25; ++i)for(int j = 0; j <= 25; ++j)ans = min(ans, n - (odd[n][i] + even[n][j]));printf("%d\n", ans);}
}
int main(){int T = read();while(T--) solve();return 0;
}

这是我看别人的博客学来的做法,读题后我们可以很容易知道偶数情况很容易考虑,直接枚举偶数奇数位字母出现的次数即可,但奇数情况是一定要进行删除操作的,删除的话会影响后面奇数偶数位的位置,这时如果直接暴力枚举所有的点,删除后在枚举剩下的点,我们是一定会超时的,不过我们可以用前缀和的思想,记 odd[i][j] 为前  个数,奇数位字符为 j的个数,even[i][j] 为偶数位字符为 j的个数,再枚举删去哪个点,最终序列的奇数位是这个点前面的奇数位和后面的偶数位,再分别枚举奇数位和偶数位的最终字符,这样就能得到正确答案。

F. Sakurako's Box:

#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
int modInverse(int a, int m) {int res = 1, exp = m - 2;while (exp > 0) {if (exp % 2 == 1) {res = (1LL * res * a) % m;}a = (1LL * a * a) % m;exp /= 2;}return res;
}
int main(){int t;cin >> t;while (t--) {int n;cin >> n;vector<int> a(n);map<int, int> freq;long long sum = 0, sumOfSquares = 0;for (int i = 0; i < n; i++) {cin >> a[i];freq[a[i]]++;sum = (sum + a[i]) % MOD;sumOfSquares = (sumOfSquares + 1LL * a[i] * a[i]) % MOD;}long long P = (sum * sum % MOD - sumOfSquares + MOD) % MOD;P = P * modInverse(2, MOD) % MOD;long long Q = 1LL * n * (n - 1) / 2 % MOD;long long Q_inverse = modInverse(Q, MOD);long long result = P * Q_inverse % MOD;cout << result << endl;}return 0;
}

这题太直接了,答案就是\sum_{}^{}ai*aj(i<j)/C_{n}^{2},可能是在考逆元吧。

后记:

  后面两题还不会写就先不放出来了。

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

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

相关文章

Context-Aware Depth and Pose Estimation for Bronchoscopic Navigation翻译

文章目录 摘要1.引言2. 相关工作3. 方法概述3.1. 基于CT数据的虚拟深度生成3.2. 基于视频帧的上下文感知深度估计3.3. 方法概述3.3.1. 从CT数据生成虚拟深度图3.3.2. 基于上下文感知的深度估计从视频帧中3.3.3. 相机姿态估计通过 2D/3D 配准 4. 实验4.1. 数据集和基线4.2. 实现…

【C++ Primer Plus习题】10.8

问题: 解答: main.cpp #include <iostream> #include "List.h" using namespace std;int main() {Item item 0;List list;cout << "请输入item(0结束):";cin >> item;while (item!0){cin.get();list.add(item);cout << "请…

C4单细胞|国产平台解密睾丸肿瘤细胞“朋友圈”

单细胞&#xff08;核&#xff09;转录组学已成为生命科学研究的基础工具&#xff0c;在疾病、免疫、生命演化、器官结构、发育等领域发挥重要作用&#xff0c;但规模化研究往往是制约单细胞层面研究的重要因素。为了突破单细胞研究门槛高、费用高的瓶颈&#xff0c;凌恩生物重…

CentOS 7 上安装 JDK 8 的步骤:

CentOS 7 上安装 JDK 8 的步骤&#xff1a; 一、下载 JDK 1.可以从 Oracle 官网下载 JDK 8&#xff0c;但需要注册账号。也可以从其他可靠的镜像站点下载。 jdk.java.net http://jdk.java.net/ 2.例如&#xff0c;可以从 Oracle 官网下载 Linux 版本的 JDK 8 压缩包&#x…

自建DCI为何超过租赁DCI:优势探索

在现代数据的基础设施发展过程中&#xff0c;数据中心&#xff08;DCI&#xff09; 的自建和租赁选择变得越来越关键。随着对数据传输需求的增加和行业的发展&#xff0c;运行商必须要仔细考虑哪种方法更符合其战略目标和运营要求。相较于租赁式DCI的便捷性和灵活性&#xff0c…

CSS3换装达人原理

引言 换装或者是换皮肤是常见的行为&#xff0c;我们可以先看下效果&#xff1a; 选择不同的颜色&#xff0c;就可以秒变人物服装的颜色&#xff0c;原理其实非常简单 实现步骤 主要分为三步&#xff0c;即素材的提供、布局样式、动态控制 图片提供 提供两张图片&#xf…

[数据集][目标检测]街道乱放广告牌检测数据集VOC+YOLO格式114张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;114 标注数量(xml文件个数)&#xff1a;114 标注数量(txt文件个数)&#xff1a;114 标注类别…

计算机毕业设计选题推荐-高校科研工作管理系统-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

uniapp插槽用法

目录 什么是插槽? 基本概念 默认插槽 命名插槽 作用域插槽 场景一:子插槽向父组件传递一个字符串 场景二:子插槽向父组件传递对象 什么是插槽? 在 UniApp 中&#xff0c;插槽&#xff08;Slot&#xff09;是一种允许父组件向子组件特定位置插入HTML内容的方式。这种方式使得组…

ELK系列之一---探索ELK奇妙世界:初识日志界大名鼎鼎的ES集群!

目录 一、为什么要使用ELK 二、ELK简介 三、Elaticsearch入门 3.1、什么是elaticsearch 3.2、elaticsearch的底层优点 3.2.1、全文检索 3.2.2、倒排索引 3.3、elaticsearch集群原理 一、为什么要使用ELK 一般我们需要进行日志分析场景&#xff1a;直接在日志文件中 gre…

Docker 镜像导出与加载:从入门到精通

在容器化技术的世界中&#xff0c;Docker 镜像的导出与加载是开发与运维人员经常会用到的技能。本文将详细介绍如何导出 Docker 镜像为本地 tar 文件&#xff0c;并如何将其重新加载为 Docker 镜像&#xff0c;并分享一些操作中的小技巧与趣味总结。 一、Docker 镜像导出的秘…

HTTP 二、进阶

四、安全 1、TLS是什么 &#xff08;1&#xff09;为什么要有HTTPS ​ 简单的回答是“因为 HTTP 不安全”。由于 HTTP 天生“明文”的特点&#xff0c;整个传输过程完全透明&#xff0c;任何人都能够在链路中截获、修改或者伪造请求 / 响应报文&#xff0c;数据不具有可…

vue2踩坑记录:el-select如何绑定对象

页面上的下拉框&#xff1a; 选中人员之后&#xff0c;需要使用人员的其它信息做后续操作。所以不能只绑定用户Id&#xff0c;需要绑定整个item(用户对象)&#xff0c;这样每次change事件所获取到的newValue是整个对象&#xff0c;而且v-model中的变量指向的也是整个对象&#…

解决el-table中使用el-input无法聚焦问题

在el-table中点击单元格时使用el-input或其他表单组件编辑单条数据。会出现聚焦不上的问题&#xff0c;需要手动点击才能够聚焦。究其原因是因为点击单元格时页面已自动聚焦到单元格&#xff0c;此时无法自动聚焦到对应的表单&#xff0c;需要手动设置。 <template><e…

进来一起把【数据结构】的【栈与队列】狠狠玩弄,痛快到大汗淋漓

1前言&#xff1a;顾名思义&#xff0c;栈与队列是两个东西&#xff0c;栈和队列&#xff01;对的&#xff0c;栈和队列&#xff01;&#xff01;&#xff0c;没错&#xff0c;在念一遍&#xff0c;【栈】 和 【队列】&#xff01;&#xff01;&#xff01;但是本质都是差…

数字化转型工具有哪些 无锡振宁科技

数字化转型已经成为现代企业不可忽视的趋势。为了帮助企业在这个过程中取得成功&#xff0c;选择合适的工具至关重要。今天&#xff0c;无锡振宁科技想和大家聊聊一些在数字化转型中不可或缺的工具&#xff0c;以及它们具体能带来哪些优势和变化。 1. 云计算平台 云计算是数字…

Yapi部署文档

Yapi是高效、易用、功能强大的API管理平台&#xff0c;旨在为开发、产品、测试人员提供更优雅的接口管理服务 官网地址&#xff1a;Yapi 环境&#xff1a; l Git l NodeJs&#xff08;7.6&#xff09; l Mongodb&#xff08;2.6&#xff09; 1、 NodeJs的安装 获取资源 …

VBA学习(71):Excel VBA 访问带密码保护的Access数据库/用户窗体设置/EXCEL用户+密码登录界面(Access版)

前两天我们分享了一个用户密码登录EXCEL的案例【Excel VBA 用户窗体设置/一步一步代你设计EXCEL用户密码登录界面】&#xff0c;文中提及数据存储在Access中的情况&#xff0c;今天我就来把数据表&#xff08;tb用户&#xff09;移到Access中&#xff0c;修改一下代码&#xff…

cortex-m4系列绝对地址函数跳转问题

一、环境&#xff1a; cortex-m4&#xff0c;IAR&#xff0c;J-LINK。 二、问题&#xff1a; 1&#xff09;、首先&#xff0c; 我将另一个程序中的函数扣出来&#xff0c;通过j-flash-lite下载到MCU的一个固定地址Flash中。 2&#xff09;、然后&#xff0c; 声明一个变量为…

Elastic Stack--ELFK实例与Dashboard界面

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 学习B站博主教程笔记&#xff1a; 最新版适合自学的ElasticStack全套视频&#xff08;Elk零基础入门到精通教程&#xff09;Linux运维必备—Elastic…