Codeforces Round #845 (Div. 2) and ByteRace 2023 A-D
Codeforces Round #845 (Div. 2) and ByteRace 2023 A-D
A. Everybody Likes Good Arrays!
题意:对给定数组进行操作:删除相邻两项,替换为两项的乘积,使得该数组奇偶相间。
题解:从前向后遍历模拟
代码:
void solve(){
int n=read(),ans=0;
for(int i=1;i<=n;i++) a[i]=read()%2;
for(int i=1;i<n;i++){
if(a[i]&&a[i+1]) ans++;
else if(!a[i]&&!a[i+1]) ans++;
}
cout<<ans<<endl;
}
B. Emordnilap
题意:对n个数的每个全排列拼接上其逆序排列后的逆序对总数
题解:找规律 对于n个数 有如下性质:
1.有n!个排列
2.每个排列拼接上自己的逆序后 有n*(n-1)个逆序对
由此:逆序对总和即为n!*n*(n-1)个
代码:
void solve(){
int n=read(),ans=1;
for(int i=1;i<=n;i++){
ans*=i;
ans%=mod;
}
ans*=n;
ans%=mod;
ans*=(n-1);
ans%=mod;
}
C. Quiz Master
题意:在给定的数组中 选择其中几个使1~m的每个数是至少是一个选择的数字的因子 若选不出这样的几个数则输出-1 否则输出选择的最大数与最小值的差
题解:朴素的双指针思想 在对给定数组排序后 指向最大数与最小数的指针(分别记为R,L)有如下性质:
1.取上两个指针间所有数对最后答案无影响
2.对于目前不能构成选择区间的L,R指针,若L指针不动,只有R指针向后移动才可能重新构成满足题意的区间
所以采用双指针算法 R向后移动时记录新R的因子 L向后移动时去掉原L的因子 以此维护双指针区间
代码:
int a[N],cnt[N],n,m;
bool check(){
for(int i=1;i<=m;i++){
if(cnt[i]<=0) return false;
}
return true;
}
void solve(){
n=read(),m=read();
for(int i=1;i<=n;i++) a[i]=read();
for(int i=1;i<=m;i++) cnt[i]=0;
sort(a+1,a+n+1);
int ans=inf;
for (int i = 1, j = 1; i <=n; i ++ ){
for(int h=1;h*h<=a[i];h++){
if(a[i]%h==0){
cnt[h]++;
cnt[a[i]/h]++;
}
}
while (j <= i && check()){
ans=min(ans,a[i]-a[j]);
j++;
for(int h=1;h*h<=a[j-1];h++){
if(a[j-1]%h==0){
cnt[h]--;
cnt[a[j-1]/h]--;
}
}
}
}
if(ans<inf)cout<<ans<<endl;
else cout<<-1<<endl;
}
D. Score of a Tree
题意:现有一棵根为1的树,其中初始点权是0或1。每一秒,一个点的点权变为其所有子节点的值的异或值。求在所有时间下,所有01配置的树节点的总值。
题解:对每一结点,有如下性质:
1.每个初始时刻值的期望为1/2
2.每个节点都存在一个时间点 tx ,在 tx 后该节点值始终为0。 且 tx 等于该节点的子树最大深度
3.每个节点在tx之前,其值的期望仍为1/2 (对于性质3,可采用数学归纳法证明这一点)
所以对于整颗树,要求的值即为每个节点的最大子树深度*2^(n-1).
Codeforces Round #845 (Div. 2) and ByteRace 2023 A-D的更多相关文章
- Codeforces Round #366 (Div. 2) ABC
Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...
- Codeforces Round #354 (Div. 2) ABCD
Codeforces Round #354 (Div. 2) Problems # Name A Nicholas and Permutation standard input/out ...
- Codeforces Round #368 (Div. 2)
直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...
- cf之路,1,Codeforces Round #345 (Div. 2)
cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅..... ...
- Codeforces Round #279 (Div. 2) ABCDE
Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems # Name A Team Olympiad standard input/outpu ...
- Codeforces Round #262 (Div. 2) 1003
Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...
- Codeforces Round #262 (Div. 2) 1004
Codeforces Round #262 (Div. 2) 1004 D. Little Victor and Set time limit per test 1 second memory lim ...
- Codeforces Round #371 (Div. 1)
A: 题目大意: 在一个multiset中要求支持3种操作: 1.增加一个数 2.删去一个数 3.给出一个01序列,问multiset中有多少这样的数,把它的十进制表示中的奇数改成1,偶数改成0后和给 ...
- Codeforces Round #268 (Div. 2) ABCD
CF469 Codeforces Round #268 (Div. 2) http://codeforces.com/contest/469 开学了,时间少,水题就不写题解了,不水的题也不写这么详细了 ...
- 贪心+模拟 Codeforces Round #288 (Div. 2) C. Anya and Ghosts
题目传送门 /* 贪心 + 模拟:首先,如果蜡烛的燃烧时间小于最少需要点燃的蜡烛数一定是-1(蜡烛是1秒点一支), num[g[i]]记录每个鬼访问时已点燃的蜡烛数,若不够,tmp为还需要的蜡烛数, ...
随机推荐
- (二)Three光线检测-实现摄像机向鼠标点击位置滑动动画
(二)Three.js光线检测 摘要:使用three.js中的光线检测 Raycaster() ,实现一下效果: 通过点击处的坐标,修改摄像机位置,实现摄像机由远及近的过渡动态效果(由远景到近景) 1 ...
- 一键生成CA证书
create_cert () { cd /etc/openvpn/easy-rsa ./easyrsa gen-req ${NAME} nopass <<EOF EOF cd /etc/o ...
- Python基础部分:12、文件光标移动(补充)
目录 一.文件内光标移动实际案例 二.计算机硬盘修改数据的原理 三.文件内容修改 一.文件内光标移动实际案例 # 1.二进制,只读模式,打a.txt文件 with open(r'a.txt', 'rb ...
- MYSQL ---mysql 数据导入与导出
1.使用SQLyog导出MySQL中的数据库 打开SQLyog → 右击你想要保存的数据库 → 选择"Backup/Export"→ 选择"Backup Database ...
- .Net SemaphoreSlim
看Elsa-core源代码中看到的,Elsa-core中所有保存数据的方法似乎使用同一个Save方法.如下图: 那么为什么要使用这玩意,我还是头一次见这玩意???? 好吧,我承认我自己菜.我自个儿也该 ...
- Go语言核心36讲42-----io包中接口的好处与优势
我们在前几篇文章中,主要讨论了strings.Builder.strings.Reader和bytes.Buffer这三个数据类型. 知识回顾 还记得吗?当时我还问过你"它们都实现了哪些接口 ...
- Java标准类
一个标准的类通常要拥有以下四个组成部分 1.所有的成员变量都要使用private关键字修饰 2.为每一个成员变量编写一对儿Getter/Setter方法 3.编写一个无参数的构造方法 4.编写一个全参 ...
- JUC-学习笔记
传统的多线程开发方式 implements Runnable public class oldThreadDev implements Runnable { @Override public void ...
- 【Oracle】Oracle读取RAW二进制类型并实现与十六进制的相互转换
1.十六进制转二进制 select HEXTORAW('7264B1CD0582734D8E27E0FBDA15B2A5') from dual; 2.二进制转十六进制 select AUUID_0, ...
- 【十次方微服务后台开发】Day02:加密与JWT鉴权、微服务注册中心、配置中心、熔断器、网关、消息总线、部署与持续集成、容器管理与监控Rancher、influxDB、grafana
一.密码加密与微服务鉴权JWT 1.BCrypt密码加密 Spring Security 提供了BCryptPasswordEncoder类,实现Spring的PasswordEncoder接口使用B ...