【牛客训练记录】牛客周赛 Round 77

news/2025/1/19 21:32:24/文章来源:https://www.cnblogs.com/longxingx/p/18680180

训练情况

赛后反思

打一半吃饭去了,C题看到 ax+by=k 的问题,简单的扩欧exgcd没反应过来,简单数论还是不熟悉TAT,D题DSU计算联通块大小时 \(i\) 打成 \(a_i\) 疯狂 RE 被硬控了十几分钟

A题

输出题目所述的第几个字符串即可

#include <bits/stdc++.h>
// #define int long long
#define endl '\n'using namespace std;void solve(){string s[7] = {"","20250121","20250123","20250126","20250206","20250208","20250211"};int x; cin>>x;cout<<s[x]<<endl;
}signed main(){// int T; cin>>T; while(T--)solve();return 0;
}

B题

记录 \(1 \sim 9\) 的出现次数,如果出现次数最大值与最小值的差超过 \(2\) 就必定无法成为数独,因为会多两个相同的数字

#include <bits/stdc++.h>
// #define int long long
#define endl '\n'using namespace std;void solve(){int n; cin>>n;vector<int> a(n + 1);vector<int> cnt(10);for(int i = 1;i<=n;i++) cin>>a[i],cnt[a[i]]++;bool flag = true;int ma = 0,mi = INT_MAX;for(int i = 1;i<=9;i++){ma = max(ma,cnt[i]);mi = min(mi,cnt[i]);}if(ma-mi<=1) cout<<"YES"<<endl;else cout<<"NO"<<endl;
}signed main(){// int T; cin>>T; while(T--)solve();return 0;
}

C题

我们将 x,y 轴分开考虑

向右d向左c可以等价看成两种操作 +d 和 +(d-c),这两种操作是否存在 \((x,y)\) 使得 ax + by = 终点横坐标

向上a向下b可以等价看成两种操作 +a 和 +(a-b),这两种操作是否存在 \((x,y)\) 使得 ax + by = 终点纵坐标

我们使用扩展欧几里得 exgcd 判断是否存在合法解即可

#include <bits/stdc++.h>
// #define int long long
#define endl '\n'using namespace std;int x,y;int exgcd(int a,int b){if(b==0){x=1;y=0;return a;}int d=exgcd(b,a%b);int t=x;x=y;y=t-a/b*y;return d;
}void solve(){int x,y,a,b,c,d;cin>>x>>y>>a>>b>>c>>d;int e = exgcd(d-c,d);int f = exgcd(a-b,a);if(x%e||y%f) cout<<"NO"<<endl;else cout<<"YES"<<endl;
}signed main(){int T; cin>>T; while(T--)solve();return 0;
}

D题

二进制+并查集,我们只要维护每一位 \(1\) 上面的元素个数即可,所以我这边采用 n + 1 + j 表示二进制第 j 位为 1,对于每个 \(a_i\) 转为二进制使用并查集维护即可,最后统计最大的联通块即可

#include <bits/stdc++.h>
#define int long long
#define endl '\n'using namespace std;const int N = 2e5;int a[N],cnt[N],fa[N];int Find(int x){if(fa[x] == x) return x;return fa[x] = Find(fa[x]);
}void Union(int x,int y){x = Find(x); y = Find(y);if(x == y) return;fa[y] = x;
}void solve(){int n; cin>>n;for(int i = 1;i<=n+100;i++) fa[i] = i,cnt[i] = 0;for(int i = 1;i<=n;i++) cin>>a[i];for(int i = 1;i<=n;i++){for(int j = 63;~j;j--){if((1ll<<j)&a[i]) Union(i,n+j+1);}}for(int i = 1;i<=n;i++) cnt[Find(i)]++;int ans = 0;for(int i = 1;i<=n;i++) ans = max(ans,cnt[i]);cout<<ans<<endl;
}signed main(){int T; cin>>T; while(T--)solve();return 0;
}

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

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

相关文章

LIS于LCS

LIS与LCS是动态规划中最常见的两种情况,LIS也就是最长上升子序列,而LCS是最长公共子序列。 在解决这个问题之前,先要明白为什么是序列,举个例子来说明,在数组 [1,2,3,4,5,6]中,[2,3,5]就是其子序列,也就是说,子序列其实就是数组中存在先后顺序,但不强调连续的子数组。…

层次分析法:数学建模

今天学习了层次分析法和数学建模,这里就简单写一下自己的学习新的,参考的资料是B站上的免费网课,老师讲的不错,可以去围观,学习,希望可以拿个奖。https://www.bilibili.com/video/BV1p14y1U7Nr/?spm_id_from=333.337.search-card.all.click 上面这里是链接。本文的大部分…

那些年我在 HL 集训做的题【某人别催了!】

某人别催了!!!Day 0 1.16 下午到 HL,居然还写了一道题? P8855 [POI2002] 商务旅行 LCA 板子。不理解当时为啥要写这个东东,可能是为了热热身吧。 Day 1 讲整体二分,但是没听懂。貌似是魔改版 CDQ...不管它。但是我似乎发现了一片新天地,一切的一切都从下面的一道题说起…

Mac 刷题环境配置

方便Mac 刷题,记录一些环境配置Mac 刷题环境配置 这篇博文主要记录自己为了更方便的在 Mac 上写算法题,主要是基于 Clion做的一些环境配置;有些操作其实在 Windows ,Linux 下也是通用的,如果看到的小伙伴也可以结合自己的情况参考。 Clion 插件 推荐一下这个插件 C/C++ Si…

excel对列数据去重(数据核对)

第一步,选中A列数据,单击功能区——数据选项卡——高级第二步,在弹出的对话框中,选中“将筛选结果复制到其他位置”,"列表区域"填写A列的地址:$A$1:$A$17,“复制到”填写:B1,把“选择不重复记录”勾上,确定即可。结果如下图

前端开发day1

day1 目的:开发一个平台(网站)- 前端开发:HTML、CSS、JavaScript- Web框架:接收请求并处理- MySQL数据库:存储数据地方快速上手:基于Flask Web框架让你快速搭建一个网站出来。深入学习:基于Django框架(主要)1,快速开发网站 pip install flaskfrom flask import Flask…

Centos7.9安装phpldapadmin

Centos7.9安装phpldapadmin@目录一、背景二、正文2.1 安装phpldapadmin2.4 登录phpldapadmin界面三、安装途中可能碰到的报错错误场景1:执行步骤“安装phpldapadmin”执行命令:yum install -y phpldapadmin时报错错误场景2:安装phpldapadmin完成后,apache启动报错,执行启动…

数据库密码安全修改:保护织梦网站账户安全的黄金法则

严格权限控制:仅授予最小化权限给真正需要访问数据库的人,避免不必要的暴露风险。定期清理过期账号,防止非法入侵。 日志记录完善:开启详细的日志记录功能,记录下每一次登录、退出、增删改查等关键事件。一旦发现问题可以迅速定位原因并采取相应措施。步骤 描述备份数据优…

为什么网站后台连接不了并报错?

当您发现网站后台无法连接并报错时,可能是由多种原因引起的。为了有效解决问题,我们需要从多个角度进行排查和优化。以下是详细的解决方案: 一、检查数据库连接数据库配置:确认数据库配置文件(如config.php)中的连接参数是否正确。 包括数据库主机名、端口、用户名、密码…

为什么设置了自定义错误页面后无法登录网站后台

设置自定义错误页面后无法登录网站后台是一个常见的问题,通常由配置不当或冲突引起。要解决这个问题,我们需要仔细检查相关配置文件,并确保各个组件之间的兼容性。以下是详细的排查和解决方法: 一、检查自定义错误页面配置配置文件位置:根据服务器类型,自定义错误页面的配…

如何迁移服务器数据并确保新旧服务器上的数据一致?

在业务扩展或更换服务器时,迁移服务器数据是一项关键任务,确保新旧服务器上的数据一致至关重要。以下是详细的迁移步骤和注意事项: 一、准备阶段备份现有数据:在迁移之前,务必对现有服务器上的所有重要数据进行完整备份。这包括数据库、网站文件、配置文件等。 使用压缩工…

云主机升级后网站访问速度变慢的原因及解决方案

当您完成云主机的升级后,如果发现网站的访问速度明显变慢,可能由多种因素引起。首先需要明确的是,升级本身并不会直接导致访问速度下降;然而,某些配置不当或其他外部因素确实会影响最终的表现。以下是几个常见的原因及其对应的解决方法: 1. 页面资源加载问题现象:某些第…