信息工程大学第五届超越杯程序设计竞赛(同步赛)

2024-04-03 01:12

本文主要是介绍信息工程大学第五届超越杯程序设计竞赛(同步赛),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

赛后补题!!!

M-Monika's game

题意

将数字n进行拆分,求每次拆分之后乘积之和的最大值。

思路

每次都将数字x拆分为1x-1,则1+2+3+......+n-1=n*(n-1)/2。

代码

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false); cin.tie(0), cout.tie(0);
using namespace std;
const int N=1e5+9;
int main()
{int t;scanf("%d",&t);long long x;for(int i=1;i<=t;i++) {scanf("%lld",&x);printf("%lld\n",x*(x-1)/2);}return 0;
}

F-不规则的轮回

题意

给定n个数对,每个数对中若 x > y , x = x -y ;若 x < y , y = y - x;求所询问的数对出现的次数。

思路

在进行操作的同时记录每对数对出现的次数。

代码

#include<bits/stdc++.h>
using namespace std;
map<pair<int,int>,int> mp;
int main()
{int t;cin>>t;int x,y;for(int i=1;i<=t;i++){cin>>x>>y;while(x!=y){mp[{x,y}]++;if(x>y)x-=y;elsey-=x;}mp[{x,y}]++;} int q;cin>>q;while(q--){cin>>x>>y;cout<<mp[{x,y}]<<endl;}return 0;
}

D-实验室有多少人

题意

给出n个人到达和离开实验室的时间,统计实验室一天最多有多少人。

思路

将n个人到达的时间和离开的时间都进行标记,到达标记为1,离开标记为2,按升序排列,若遇到1则说明实验室人数+1,否则实验室人数-1。

代码

#include<bits/stdc++.h>
#define PII pair<int,int>
using namespace std;
const int N=1e6+9;
bool cmp(PII x,PII y)
{if(x.first==y.first) return x.second<y.second;return x.first<y.first; 
}
int main()
{int n;cin>>n;int x,y;vector<PII> a;for(int i=1;i<=n;i++){cin>>x>>y;a.push_back({x,1});a.push_back({y,2});}sort(a.begin(),a.end(),cmp);int ans=0,res=0;for(auto i:a){if(i.second==1) res++;else res--;ans=max(ans,res);}cout<<ans<<endl;return 0;
}

C-财政大臣

题意

以1号城市为树的根,城市之间相连接:

操作1:以u为根结点的子树中每个值都增加x

操作2:以u为根结点的子树中每个值都减少x

思路

每个节点最终的值:根节点的变化+自身的变化+自身的初始值

将每次以u为根结点的变化都记录下来,最终直接相加即可。

代码

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+9;
vector<int>a[N];
int b[N],c[N];
void check(int u,int fa)
{c[u]+=c[fa];int x;for(int i=0;i<a[u].size();i++){x=a[u][i];if(x==fa) continue;check(x,u);}
}
int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n,q;cin>>n>>q;int x,y;for(int i=1;i<n;i++){cin>>x>>y;a[x].push_back(y);a[y].push_back(x);}for(int i=1;i<=n;i++){cin>>b[i];}int op,u,v;for(int i=1;i<=q;i++){cin>>op>>u>>v;if(op==1){c[u]+=v;}elsec[u]-=v;}check(1,0);for(int i=1;i<=n;i++){cout<<b[i]+c[i]<<" ";}cout<<endl;return 0;	
} 

E-在雾中寻宁静

题意

给定每个子结点的根结点,每次都将以u为根的子树染成v颜色。

思路

记录染色的先后顺序,子节点的颜色为最终其父结点或自身的颜色变化。

代码

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+9;
vector<int> a[N];
int b[N];
pair<int,int> c[N];
void check(int x)
{for(int i=0;i<a[x].size();i++){int j=a[x][i];if(c[j].first<c[x].first){c[j]=c[x];	}check(j);}
}
int main()
{int n;scanf("%d",&n);int x;for(int i=1;i<n;i++){scanf("%d",&x);a[x].push_back(i+1);}int q,u,v;scanf("%d",&q);for(int i=1;i<=q;i++){scanf("%d%d",&u,&v);c[u].first=i;c[u].second=v;}check(1);for(int i=1;i<=n;i++)printf("%d ",c[i].second);printf("\n");return 0;
}

G-完美数字

题意

末尾至少有k个0的数为完美数,若子区间内数字的乘积是完美数,则该区间为完美区间,统计完美区间的个数。

思路

末尾有0的数必定含有2和5,统计2和5的个数,若最小个数>=k,则为完美数,完美数所在的区间都为完美区间。

代码

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=1e6+9;
int a[N],b[N],c[N];
int check(int n,int x)
{int res=0;while(n%x==0){n/=x;res++;}return res;
}
int main()
{int n,k;cin>>n>>k;for(int i=1;i<=n;i++){cin>>a[i];b[i]=check(a[i],2);c[i]=check(a[i],5);}for(int i=1;i<=n;i++){b[i]+=b[i-1];c[i]+=c[i-1];}LL ans=0;for(int l=0;l<=n;l++){for(int r=l+1;r<=n;r++){int t2=b[r]-b[l];int t5=c[r]-c[l];int temp=min(t2,t5);if(temp>=k){ans+=n-r+1;break;}}}cout<<ans<<endl;return 0;
}

这篇关于信息工程大学第五届超越杯程序设计竞赛(同步赛)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/871547

相关文章

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

Mac备忘录怎么导出/备份和云同步? Mac备忘录使用技巧

《Mac备忘录怎么导出/备份和云同步?Mac备忘录使用技巧》备忘录作为iOS里简单而又不可或缺的一个系统应用,上手容易,可以满足我们日常生活中各种记录的需求,今天我们就来看看Mac备忘录的导出、... 「备忘录」是 MAC 上的一款常用应用,它可以帮助我们捕捉灵感、记录待办事项或保存重要信息。为了便于在不同

查看MySql主从同步的偏移量方式

《查看MySql主从同步的偏移量方式》:本文主要介绍查看MySql主从同步的偏移量方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 1.mysql的主从同步方案mysqlphp为了在实现读写分离,主库写,从库读mysql的同步方案主要是通过从库读取主库的binl

MySQL主从同步延迟问题的全面解决方案

《MySQL主从同步延迟问题的全面解决方案》MySQL主从同步延迟是分布式数据库系统中的常见问题,会导致从库读取到过期数据,影响业务一致性,下面我将深入分析延迟原因并提供多层次的解决方案,需要的朋友可... 目录一、同步延迟原因深度分析1.1 主从复制原理回顾1.2 延迟产生的关键环节二、实时监控与诊断方案

Java注解之超越Javadoc的元数据利器详解

《Java注解之超越Javadoc的元数据利器详解》本文将深入探讨Java注解的定义、类型、内置注解、自定义注解、保留策略、实际应用场景及最佳实践,无论是初学者还是资深开发者,都能通过本文了解如何利用... 目录什么是注解?注解的类型内置注编程解自定义注解注解的保留策略实际用例最佳实践总结在 Java 编程

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Linux搭建Mysql主从同步的教程

《Linux搭建Mysql主从同步的教程》:本文主要介绍Linux搭建Mysql主从同步的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux搭建mysql主从同步1.启动mysql服务2.修改Mysql主库配置文件/etc/my.cnf3.重启主库my

Java中将异步调用转为同步的五种实现方法

《Java中将异步调用转为同步的五种实现方法》本文介绍了将异步调用转为同步阻塞模式的五种方法:wait/notify、ReentrantLock+Condition、Future、CountDownL... 目录异步与同步的核心区别方法一:使用wait/notify + synchronized代码示例关键