Educational Codeforces Round 170 (Rated for Div. 2) A-D

news/2024/10/15 0:22:56

比赛链接
A. Two Screens
简单对前面相同的个数进行判断即可

点击查看代码
#include<bits/stdc++.h>#define int long long
using namespace std;
#define pb push_back
#define pii pair<int,int>
#define all(x) x.begin(),x.end()
void solve() {string a,b;cin>>a>>b;if(a.size()>b.size()){swap(a,b);}int same=0;for(int i=0;i<a.size();i++){if(a[i]==b[i])same++;else break;}if(same==0){cout<<a.size()+b.size()<<'\n';}else {cout<<1+a.size()+b.size()-same<<'\n';}
}
signed main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);int _=1;cin>>_;while(_--)solve();
}

B. Binomial Coefficients, Kind Of
快速打表发现为2的冥次 当且仅当i==j时为1

点击查看代码
#include<bits/stdc++.h>#define int long long
using namespace std;
#define pb push_back
#define pii pair<int,int>
#define all(x) x.begin(),x.end()
const int mod=1e9+7;
int qpw(int a,int b){int ans=1;while(b){if(b&1)ans=ans*a%mod;a=a*a%mod,b>>=1;}return ans;}
void solve() {int n;cin>>n;vector<int>a(n),b(n),c;for(int i=0;i<n;i++)cin>>a[i];for(int i=0;i<n;i++)cin>>b[i];for(int i=0;i<n;i++){if(a[i]==b[i]){c.pb(1);}else {c.pb(qpw(2,b[i]));}}for(auto i:c){cout<<i<<'\n';}
}
signed main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);int _=1;
//    cin>>_;while(_--)solve();
}

C. New Game
用队列维护前连续数对的值
然后通过每组都进行取mx即可

点击查看代码
#include<bits/stdc++.h>#define int long long
using namespace std;
#define pb push_back
#define pii pair<int,int>
#define all(x) x.begin(),x.end()
const int mod=1e9+7;
int qpw(int a,int b){int ans=1;while(b){if(b&1)ans=ans*a%mod;a=a*a%mod,b>>=1;}return ans;}
void solve() {map<int,int>mp;int n,k;cin>>n>>k;queue<int>q;set<int>s;for(int i=0;i<n;i++){int x;cin>>x;mp[x]++;s.insert(x);}int mx=0,sum=0;for(auto &son:s){if(q.size()==k){int qp=q.front();q.pop();mx=max(mx,sum);sum-=mp[qp];}if(q.size()<k&&mp[son-1]){q.push(son);sum+=mp[son];}else {mx=max(mx,sum);while(q.size())q.pop();sum=0;sum+=mp[son];q.push(son);}}mx=max(mx,sum);cout<<mx<<'\n';
}
signed main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);int _=1;cin>>_;while(_--)solve();
}

D. Attribute Checks
发现m很小 但是n很大
于是对m进行维护
对于每个地方的值 其后方能获得的通过数是固定的
于是提前预处理掉 该处的值
其他的就是m^2的转移
唯一需要注意的点就是转移时还需要注意 分别讨论智力增长和力量增长(wa8)

点击查看代码
#include<bits/stdc++.h>//#define int long long
using namespace std;
#define pb push_back
#define pii pair<int,int>
#define all(x) x.begin(),x.end()
const int mod=1e9+7;
int qpw(int a,int b){int ans=1;while(b){if(b&1)ans=ans*a%mod;a=a*a%mod,b>>=1;}return ans;}
void solve() {int n,m;cin>>n>>m;vector<int>a(n+1);vector cnt1(m+1,vector<int>(m+1));vector cnt2(m+1,vector<int>(m+1));vector dp(m+1,vector<int>(m+1));for(int i=1;i<=n;i++)cin>>a[i];int last=0;int ret=0;for(int i=1;i<=n;i++){if(!a[i])last=++ret;else if(a[i]>0){cnt1[last][a[i]]++;}else {cnt2[last][abs(a[i])]++;}}for(int i=1;i<=last;i++){for(int j=1;j<=i;j++){cnt1[i][j]+=cnt1[i][j-1];cnt2[i][j]+=cnt2[i][j-1];}}int mx=0;for(int i=1;i<=last;i++){for(int j=0;j<=i;j++){dp[i][j]=max(dp[i][j],dp[i-1][j]+cnt1[i][j]+cnt2[i][i-j]);if(j>=1){dp[i][j]=max(dp[i][j],dp[i-1][j-1]+cnt1[i][j]+cnt2[i][i-j]);}mx=max(mx,dp[i][j]);}}for(int j=0;j<=last;j++)mx=max(mx,dp[last][j]);cout<<mx<<'\n';
}
signed main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);int _=1;
//    cin>>_;while(_--)solve();
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

rocketmq 单机版安装及可视化

配网ping www.baidu.comnmcli connection delete eth1nmcli connection add con-name eth1 type ethernet ifname eth1nmcli connection up eth1ip route showip route del default via 192.168.88.200 dev eth0下载JDKwget https://download.oracle.com/java/17/latest/jdk-17…

空间大数据的数据变换与价值提炼

在数字化时代,空间大数据正成为推动社会经济发展的关键因素。空间大数据不仅体量巨大,而且具有高速流转、多样类型和真实性等特点,它们在获取、存储、管理、分析方面超出了传统数据库软件工具的能力范围。地理信息系统(GIS)作为处理和分析空间大数据的重要工具,其在数据变…

MySQL 建立了唯一索引的字段允许多个 NULL 值存在吗

原文:MySQL 唯一索引的字段值允许多个 NULL 值存在吗结论:MySQL innoDB 引擎,设置了唯一索引的列,不仅允许 NULL 值存在,而且允许多个 NULL 值存在。 示例:字段 userCardNum 添加了唯一索引。证实是允许存在的多个 NULL 值数据的:解释:因为 NULL 表示未知值。多个 NULL…

如何构建高效数据流通交易体系

在数字化时代,数据已成为关键生产要素,其高效流通和交易是推动数字经济发展的核心。构建一个高效、安全、合规的数据流通交易体系,对于释放数据价值、促进经济社会发展具有重要意义。 一、建立合规高效的数据要素流通和交易制度《数据二十条》提出,要建立合规高效、场内外结…

文献阅读

一:文献管理软件——小绿鲸 1:文献乱码问题 一个很容易遇到的问题是一些期刊下载的论文pdf导入小绿鲸会使得划词翻译时出现乱码于是我想着先通过wps打开,用扫描件识别这个功能再导入后,乱码问题解决

城市交通系统优化策略:透视拥堵之困,探索流畅之道

在快速城市化的今天,交通拥堵已成为众多大中型城市的“城市病”,严重影响居民生活质量、经济运行效率及环境质量。本文旨在深度剖析城市交通拥堵的根源,并提出一系列行之有效的优化策略,旨在构建更加顺畅、高效、绿色的城市交通系统。一、城市交通拥堵的根源分析人口与车辆…

深入理解Java并发读写锁——ReentrantReadWriteLock

ReentrantReadWriteLock使用场景 ReentrantReadWriteLock 是 Java 的一种读写锁,它允许多个读线程同时访问,但只允许一个写线程访问(会阻塞所有的读写线程)。这种锁的设计可以提高性能,特别是在读操作的数量远远超过写操作的情况下。 在并发场景中,为了解决线程安全问题,…

MapReduce分布式计算及其应用

实验名称:MapReduce分布式计算及其应用 实验内容 Hadoop是一个能够对大量数据进行分布式处理的软件框架,已被广泛应用到各个领域,Hadoop框架最核心的设计是分布式文件系统(HDFS)、分布式计算框架(MapReduce)和集群资源管理系统(YARN)。本实验要求实现如下内容。 1.搭建…