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

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

相关文章

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

每日一题|牛客竞赛|四舍五入|字符串+贪心+模拟

每日一题|四舍五入 四舍五入 心有猛虎,细嗅蔷薇。你好朋友,这里是锅巴的C\C++学习笔记,常言道,不积跬步无以至千里,希望有朝一日我们积累的滴水可以击穿顽石。 四舍五入 题目: 牛牛发明了一种新的四舍五入应用于整数,对个位四舍五入,规则如下 12345->12350 12399->12400 输入描述: 输入一个整数n(0<=n<=109 ) 输出描述: 输出一个整数

C语言程序设计(数据类型、运算符与表达式)

一、C的数据类型 C语言提供的数据类型: 二、常量和变量 2.1常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。 常量区分为不同的类型: 程序中用#define(预处理器指令)命令行定义变量将代表常量,用一个标识符代表一个常量,称为符合常量。 2.2变量 变量代表内存中具有特定属性的一个存储单元,用来存放数据,在程序运行期间,这些值是可以 改变的。 变

C语言程序设计(选择结构程序设计)

一、关系运算符和关系表达式 1.1关系运算符及其优先次序 ①<(小于) ②<=(小于或等于) ③>(大于) ④>=(大于或等于 ) ⑤==(等于) ⑥!=(不等于) 说明: 前4个优先级相同,后2个优先级相同,关系运算符的优先级低于算术运算符,关系运算符的优先级高于赋值运算符 1.2关系表达式 用关系运算符将两个表达式(可以是算术表达式或关系表达式,逻辑表达式,赋值表达式,字符

MySQL主从同步延迟原理及解决方案

概述 MySQL的主从同步是一个很成熟的架构,优点为: ①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力; ②在从主服务器进行备份,避免备份期间影响主服务器服务; ③当主服务器出现问题时,可以切换到从服务器。 相信大家对于这些好处已经非常了解了,在项目的部署中也采用这种方案。但是MySQL的主从同步一直有从库延迟的问题,那么为什么会有这种问题。这种问题如何解决呢? MyS

2024年AMC10美国数学竞赛倒计时两个月:吃透1250道真题和知识点(持续)

根据通知,2024年AMC10美国数学竞赛的报名还有两周,正式比赛还有两个月就要开始了。计划参赛的孩子们要记好时间,认真备考,最后冲刺再提高成绩。 那么如何备考2024年AMC10美国数学竞赛呢?做真题,吃透真题和背后的知识点是备考AMC8、AMC10有效的方法之一。通过做真题,可以帮助孩子找到真实竞赛的感觉,而且更加贴近比赛的内容,可以通过真题查漏补缺,更有针对性的补齐知识的短板。

使用条件变量实现线程同步:C++实战指南

使用条件变量实现线程同步:C++实战指南 在多线程编程中,线程同步是确保程序正确性和稳定性的关键。条件变量(condition variable)是一种强大的同步原语,用于在线程之间进行协调,避免数据竞争和死锁。本文将详细介绍如何在C++中使用条件变量实现线程同步,并提供完整的代码示例和详细的解释。 什么是条件变量? 条件变量是一种同步机制,允许线程在某个条件满足之前进入等待状态,并在条件满

mysql创建新表,同步数据

import os import argparse import glob import cv2 import numpy as np import onnxruntime import tqdm import pymysql import time import json from datetime import datetime os.environ[“CUDA_VISIBLE_DEVICE