SMU2025寒假训练周报2

news/2025/2/12 15:24:17/文章来源:https://www.cnblogs.com/violet-hty/p/18706149

这周状态其实不太好,很多时候心急总是卡简单题,中档题也有些难a,希望尽快调整

一.个人训练赛2

1. Linova and Kingdom

题目链接:Problem - C - Codeforces

每加一个点总体贡献就可能发生变化,那我们就处理每个点的贡献,将他的深度减去他孩子的总个数就是贡献,最后排序取最大的k个即可

查看代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
vector<int>v[1000000];
vector<int>z;
int sign[1000000];
int dfs(int x,int y,int deep)
{sign[x]=1;int ans=1;for(int i=0;i<v[x].size();i++){if(v[x][i]!=y){ans+=dfs(v[x][i],x,deep+1);}}z.push_back(deep+1-ans);//if(!bj)z.push_back(deep);return ans;
}
signed main()
{int n,k;cin>>n>>k;for(int i=1;i<n;i++){int x,y;cin>>x>>y;v[x].push_back(y);v[y].push_back(x);}dfs(1,0,0);sort(z.begin(),z.end(),greater());int sum=0;int ans=0;for(int i=0;i<z.size();i++){if(ans==k)break;sum+=z[i];ans++;}cout<<sum;return 0;
}

2. Xenia and Colorful Gems

题目链接:Problem - D - Codeforces

一共就只有六种大小关系,将三种石头排序,从每种情况最小的数组开始遍历查找在另外俩个数组有无跟她相差很小的石头,如果最终结果缩小就更新

查看代码
 void solve(int *x, int *y, int *z, int nx, int ny, int nz)
{int p1 = 0, p2 = 0;for(int i = 1; i <= nx; i++){while(p1 <= ny && y[p1] <= x[i]) p1++;  //找最接近的较小值while(p2 <= nz && z[p2] < x[i]) p2++;  //找最接近的较大值if(p1 - 1 != 0 && p2 != nz + 1)  //较小值和较大值都能找到ans = min(ans, calc(x[i], y[p1 - 1], z[p2]));}return;
}

二.牛客训练营4

1.Tokitsukaze and Balance String (hard)

题目链接:C-Tokitsukaze and Balance String (hard)_2025牛客寒假算法基础集训营4

easy版直接二进制枚举,这个n太大了,这题是有规律的,还是要多看多总结

查看代码
 for (int i = 1; i <= n-2; i++) {if(s[i] == '?')k++;}int k = qpow(2,k);if(s[0] == '0' && s[n-1] == '0'){cout << k*(n-2)%mod << endl;}else if(s[0] == '1' && s[n-1] == '1'){cout << k*(n-2)%mod << endl;}else if(s[0] == '0' && s[n-1] == '1') {cout << k*2%mod << endl;}else if(s[0] == '1' && s[n-1] == '0'){cout << k*2%mod << endl;}else if(s[0] == '?' && s[n-1] != '?') {cout << k*n%mod << endl;}else if(s[0] != '?' && s[n-1] == '?') {cout << k*n%mod << endl;}else if(s[0] == '?' && s[n-1] == '?') {cout << k*n*2%mod << endl;}

2.Tokitsukaze and Concatenate‌ Palindrome

原题链接:D-Tokitsukaze and Concatenate‌ Palindrome_2025牛客寒假算法基础集训营4

用长串的字母去补短串,长串没有的就sum++,有的就该字母个数减一,并计算最后长串字母数量为奇数的个数ans,ans和sum就是需要进行操作的字母,如果sum更多那就让sum去和ans对应,因为sum所在的串短,总操作数为sum;反之就取ans+sum的一半 

查看代码
 #include<bits/stdc++.h>using namespace std;int main(){int T;cin >> T;while(T--){int n, m;cin >> n >> m;string s, t;cin >> s >> t;if(n < m){swap(n, m);swap(s, t);}map<int, int> mp;for(auto &i : s){mp[i]++;}int sum = 0;for(auto &i : t){if(mp[i]) mp[i]--;else sum++;}int ans = 0;for(auto &[x, y] : mp){if(y & 1) ans++;}if(sum >= ans) ans = sum;else{ans=(ans+sum)/2;}cout << ans << endl;}
}

三.牛客训练营3

1.小L的位运算

原题链接:C-小L的位运算_2025牛客寒假算法基础集训营5

统计每种情况,如果都不超过半数那么都可以进行交换,如果有超过的就让超过的那部分自己进行反置操作即可,同时也要注意交换和反置的代价大小。

查看代码
 #include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{int n,x,y;cin>>n>>x>>y;string a,b,c;cin>>a>>b>>c;y=min(y,2*x);int a00=0,a01=0,a10=0,a11=0,ans=0;for (int i = 0; i < n; ++i){if (a[i] == '0' && b[i] == '0' && c[i] == '1') a00++,ans++;if (a[i] == '0' && b[i] == '1' && c[i] == '0') a01++,ans++;if (a[i] == '1' && b[i] == '0' && c[i] == '0') a10++,ans++;if (a[i] == '1' && b[i] == '1' && c[i] == '1') a11++,ans++;}int sum = 0;int ma=max({(int)0,a00,a01,a10,a11});int ban=ans/2;if(ma*2>ans)ban=ans-ma;cout<<ban*y+(ans-ban*2)*x;return 0;
}

2.小L的井字棋

原题链接:E-小L的井字棋_2025牛客寒假算法基础集训营5

首先如果棋盘上没有棋子,那么我们下中间,然后再使用特权随便下两个可以连起来的地方,即可胜利。
如果棋盘上已经各有一颗棋子,那么这颗棋子一定至少有一个方向没有对方的棋子,我可以直接使用特权胜利。
如果棋盘上已经各有四颗棋子,直接填入后判断即可。
如果棋盘上已经各有三颗棋子,那么一定是使用特权更优,三种方式枚举一下,结果或起来即可。
如果棋盘上已经各有两颗棋子,手算枚举一下各个情况,发现无论怎么下都是先手必胜的,直接Yes即可。

3.小L的构造

原题链接:L-小L的构造_2025牛客寒假算法基础集训营5

根据mod6余数分类判断,且有固定组合

查看代码
 #include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{int t;cin>>t;while(t--) {int n;cin >> n;if (n <= 3)cout<<0<<endl;else{cout<<n/3<<endl;if(n<6)cout<<"1 2 4"<<endl;else if(n%6<=2){for(int i=1;i<=n;i+=6){if(i+3<=n) cout<<i<<" "<<i+1<<" "<<i+3<<endl;if(i+5<=n)cout<<i+2<<" "<<i+4<<" "<<i+5<<endl;}}else{cout<<"1 2 4"<<endl;cout<<"3 9 5"<<endl;cout<<"6 8 7"<<endl;for(int i=10;i<=n;i+=6){if(i+4<=n)cout<<i<<" "<<i+1<<" "<<i+4<<endl;if(i+5<=n)cout<<i+2<<" "<<i+3<<" "<<i+5<<endl;}}}}return 0;
}

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

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

相关文章

无需服务器个性化域名重定向到其他网站

1. 准备工作 1. 申请个人域名免费方式:从 ClouDNS.net上创建账号申请即可,右上角可以选择中文。如果实在不会操作,可以参考:教你免费注册一个ClouDNS永久域名(保姆级教程) ,还可以自行搜索或问大模型或留言。 付费方式:从 主流域名注册商注册,国外:namesilo 比较便宜,…

在GitHub上部署个人静态网站

在GitHub上部署个人静态网站 首先将网站设置文件上传到github的一个新建仓库,并公开仓库(会员可不用公开)找到settings(设置)-page(页面)选项并进入 选择分支(root)并save等待一段时间(5分钟左右),重新进入该仓库的pages 已经生成网址点击网址或者Visit site进入网站…

使用nvm管理node版本

1、下载安装 NVM:https://github.com/coreybutler/nvm-windows2、下载完成后,解压缩nvm-setup.zip文件到您想要安装 NVM 的目录,双击nvm-setup.exe进行安装 3、配置环境变量,将安装目录添加到path环境变量PS C:\Users> nvm -v 1.2.24、查看可用的 Node.js 版本: 5、选择…

Cursor从0到1:让每个人都会编程

Cursor 可谓是最近最火的 AI 代码类应用之一。它结合了传统编辑器的功能(如 VS Code 的体验)与 AI 驱动的智能编程能力,旨在提升开发效率和代码质量。一、关于Cursor 1.1 简介 Cursor 是一款基于人工智能(AI)的现代化代码编辑器,专为开发者设计。它结合了传统编辑器的功能…

销售就是推销自己

销售的本质是顾客用钱买满足自己需求的卖方提供的产品。销售员就承担着桥梁的角色。渠道那么多,销售人员那么多,顾客为什么要通过你来买? 优秀的销售人员(商人)有下面几个特点。 1.自信 如果你相信你会成功,成功便会发生;如果你相信你会失败,失败便会找上门。无论如何我…

Snipaste - 截屏软件

qq截屏闪退,故更改软件————下载https://www.snipaste.com/download.html选择对应版本 下载后双击即可(默认F1截屏) 参考: https://blog.csdn.net/m0_64979660/article/details/142353087

红蓝对抗之系统密码提取

mimikatz mimikatz工具从内存中提取明文密码,HASH值,PIN密码和票据,利用zerologon漏洞(通过NetLogon/MS-NRPC协议与AD域控建立安全通道时,可利用该漏洞将AD域控的计算机账号密码设置为空。 mimikatz 需要管理员或 SYSTEM 权限,通常使用 DEBUG 权限执行某些操作,与 LSASS…

wsl启动报错Cannot execute daemonize to start systemd的解决方法

WSL 启动报错 "Cannot execute daemonize to start systemd" 的解决方法 问题背景 在启动 WSL2 时遇到以下错误: Cannot execute daemonize to start systemd解决思路来源:https://github.com/DamionGans/ubuntu-wsl2-systemd-script/issues/37此错误通常是因为 dae…

2.2-2.9做题笔记

2.2 - 2.9 做题笔记 最近一周做的所有题目,包括 cyezoj 上的模拟赛,专题作业和 ABC。 2.4 CYEZ SHOI2025 模拟测试七 CYEZ 404 过桥 题目难度:省选 D1T1 赛时:20pts ;订正:100pts 大意 有 \(n\) 个人要过一座每次最多容 \(c\) 人通过、且仅有一只手电的一座桥。多人同时过…

【烂笔头系列】计算广告笔记16-其他广告相关技术

创意优化 创意需要将向用户推送广告的关键原因明确表达出来 程序化创意地域性创意 搜索重定向创意 个性化重定向创意电机热力图电机热力图是将某一个创意各位置被点击的密度用热力图方式呈现,帮助创意优化者直观的发现和解决其中的问题创意的发展趋势视频化激励视频形式交互化…

【烂笔头系列】推荐系统笔记10-经典深度学习推荐模型

特征组合和特征交叉问题非常常见,特征的种类非常多,特征交叉的复杂程度也要大得多。解决这类问题的关键,就是模型对于特征组合和特征交叉的学习能力,因为它决定了模型对于未知特征组合样本的预测能力,而这对于复杂的推荐问题来说,是决定其推荐效果的关键点之一。 那特征交…

【烂笔头系列】推荐系统笔记09-深度学习推荐模型发展脉络

1. 深度学习模型拟合能力更强 特征交叉方式中,点积等方式过于简单,在样本数据比较复杂的情况下,容易欠拟合。而深度学习可以大大提高模型的拟合能力,比如在 NeuralCF(神经网络协同过滤)模型中,点积层被替换为多层神经网络,理论上多层神经网络具备拟合任意函数的能力,所…