牛客周赛 Round 31(A~F)

文章目录

  • A
  • B
  • C
  • D
  • E
  • F

A

#include <bits/stdc++.h> 
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define pll pair<long long, long long>
#define ll long long
#define ull unsigned long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_backusing namespace std;
const int N=2e5+10;void solve()
{string s;cin>>s;if(s=="kou")	s="yukari";cout<<s<<endl;return;
}
signed main()
{ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
//  	freopen("1.in", "r", stdin);int _;
//	cin>>_;
//	while(_--)solve();return 0;
}

B

#include <bits/stdc++.h> 
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define pll pair<long long, long long>
#define ll long long
#define ull unsigned long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_backusing namespace std;
const int N=2e5+10;void solve()
{int n;cin>>n;auto check=[&](int tar){if(tar==1)	return false;rep(i,2,tar/i)	if(tar%i==0)	return false;		return true;};int ans=0;for(int i=1;i<=n/i;++i){if(n%i==0){if(check(i))	ans++;if(i==n/i)	continue;if(check(n/i))	ans++;}}cout<<ans<<endl;return;
}
signed main()
{ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
//  	freopen("1.in", "r", stdin);int _;
//	cin>>_;
//	while(_--)solve();return 0;
}

C


c题比较有用的应该还是得有贡献法这种思想。


#include <bits/stdc++.h> 
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define pll pair<long long, long long>
#define ll long long
#define ull unsigned long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_backusing namespace std;
const int N=2e5+10;void solve()
{int n;cin>>n;char c;cin>>c;string s;cin>>s;int ans=0;rep(i,0,s.size()-1){if(s[i]==c)	ans+=min(i+1,n-i);	}cout<<ans<<endl;return;
}
signed main()
{ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
//  	freopen("1.in", "r", stdin);int _;
//	cin>>_;
//	while(_--)solve();return 0;
}

D


链表的模板。
需要注意的是这题的数据范围 x 、 y 给到了 1 e 9 x、y给到了1e9 xy给到了1e9不能用数组去模拟,直接用map去模拟


#include <bits/stdc++.h> 
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define pll pair<long long, long long>
#define ll long long
#define ull unsigned long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_backusing namespace std;
const int N=2e5+10;map<int,int> l,r;void solve()
{int q;cin>>q;r[0]=1e9+1;l[1e9+1]=0;auto add=[&](int now,int tar){l[now]=tar;r[now]=r[tar];l[r[tar]]=now; r[tar]=now;};auto remov=[&](int tar){r[l[tar]]=r[tar];l[r[tar]]=l[tar];	};while(q--){int op;cin>>op;if(op==1){int x,y;cin>>x>>y;add(x,y);	}else{int x;cin>>x;remov(x);}}int cnt=0;for(int i=r[0];i!=1e9+1;i=r[i])	cnt++;cout<<cnt<<endl;for(int i=r[0];i!=1e9+1;i=r[i])	cout<<i<<' ';return;
}
signed main()
{ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
//  	freopen("1.in", "r", stdin);int _;
//	cin>>_;
//	while(_--)solve();return 0;
}

E


这道题目也是一道比较经典的dp。
没看出来.
d p [ i ] [ j ] : 表示对前 i 个数进行操作,总和为 j 的最小操作次数 dp[i][j]:表示对前i个数进行操作,总和为j的最小操作次数 dp[i][j]:表示对前i个数进行操作,总和为j的最小操作次数
转移: d p [ i ] [ j ] = m i n ( d p [ i ] [ j + a [ i ] ] , d p [ i ] [ j − a [ i ] ] + 1 ) 转移:dp[i][j]=min(dp[i][j+a[i]],dp[i][j-a[i]]+1) 转移:dp[i][j]=min(dp[i][j+a[i]],dp[i][ja[i]]+1)
初始化 : d p [ 0 ] [ 40000 ] = 0 , 其余均是无穷大 初始化:dp[0][40000]=0,其余均是无穷大 初始化:dp[0][40000]=0,其余均是无穷大
注意这道题目有负数,可以将dp数组开成mp,但是最好不要这么去做,因为mp有个 l o g log log
一般的做法是加上一个偏移量使每个数都变成正数。


#include <bits/stdc++.h> 
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define pll pair<long long, long long>
#define ll long long
#define ull unsigned long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_backusing namespace std;
const int N=80010;int dp[210][N];void solve()
{int n;cin>>n;memset(dp,0x3f,sizeof(dp));dp[0][40000]=0;rep(i,1,n)	{int xx;cin>>xx;rep(j,0,80000){if(j+xx>=0&&j+xx<=80000)	dp[i][j]=min(dp[i][j],dp[i-1][j+xx]);if(j-xx>=0&&j-xx<=80000)	dp[i][j]=min(dp[i][j],dp[i-1][j-xx]+1);}}if(dp[n][40000]>=n)	cout<<-1;else cout<<dp[n][40000]<<endl;	return;
}
signed main()
{ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
//    	freopen("1.in", "r", stdin);int _;
//	cin>>_;
//	while(_--)solve();return 0;
}

F


今天下午在补寒假营的题,里面有道用道第二类斯特林数的知识点还没补完,刚好这道题也是组合数学的就补一下,尽快把组合数学的知识点给补一下吧。
思路:
对于连续段的个数的枚举是少不了的因为这是答案
然后考虑对于i个连续段的情况。
我们的目标串可能是什么样的。
a a a b b b b . . . a a . . b b a . . . aaabbbb...aa..bba... aaabbbb...aa..bba...
b b b a a a b . . . . a a . . b b . . . bbbaaab....aa..bb... bbbaaab....aa..bb...
要么是a开头要么是b开头。然后连续若干个b连续若干个a
如果是a开头,分成i段那么a的段可能会比b多一点,因为a先出现,奇数的话就是a多,否则两者段一样多,那么a的段数用 c a 表示 c a = i / 2 + i ca表示ca=i/2+i%2,cb=i-ca ca表示ca=i/2+i
考虑如何将x个a分成ca份,并且每份都不空:显然可以用隔板法
关于隔板法:隔板法
y分成cb份并且每份都不空。两者应用乘法原理相乘
b开头情况是一样的。
a、b开头是两种不同的情况,用加法原理就是段数为i的情况。

代码参考兰子哥的。


#include <bits/stdc++.h> 
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define pll pair<long long, long long>
#define ll long long
#define ull unsigned long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_backusing namespace std;
const int N=2010;int jc[N],mod=1e9+7;void solve()
{auto qmi=[&](int a,int b,int p){int res=1;while(b){if(b&1)	res=res*a%p;b>>=1;a=(a*a)%p;}return res;	};jc[0]=1;rep(i,1,2000)	jc[i]=jc[i-1]*i%mod;	auto C=[&](int n,int m){if(m<0||n-m<0||n<0)	return 1ll*0;return 	jc[n]*qmi(jc[m],mod-2,mod)%mod*qmi(jc[n-m],mod-2,mod)%mod;};int x,y;cin>>x>>y;rep(i,1,x+y){int ca=i/2;int cb=i-ca;ll ans=0;ans=(ans+(C(x-1,ca-1)*C(y-1,cb-1))%mod)%mod;swap(ca,cb);ans=(ans+(C(x-1,ca-1)*C(y-1,cb-1))%mod)%mod;cout<<ans<<endl;}return;
}
signed main()
{ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
//   	freopen("1.in", "r", stdin);int _;
//	cin>>_;
//	while(_--)solve();return 0;
}

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

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

相关文章

华为自动驾驶干不过特斯拉?

文 | AUTO芯球 作者 | 李诞 什么&#xff1f; 华为的智能驾驶方案干不过蔚小理&#xff1f; 特斯拉的智能驾驶[FSD]要甩中国车企几条街&#xff1f; 这华为问界阿维塔刚刚推送“全国都能开”的城区“无图 NCA” 就有黑子来喷了 这是跪久了站不起来了吧 作为玩车14年&…

Pytorch: nn.dropout

Dropout 是一种用于深度学习模型的正则化技术&#xff0c;旨在减少模型对特定训练样本的过度拟合。其主要作用包括&#xff1a; 减少过拟合&#xff1a; Dropout 阻止神经网络对某些特定输入值过度依赖&#xff0c;从而提高模型的泛化能力。通过随机地失活神经元&#xff08;将…

flutter开发实战-可扩展popup弹窗template模版样式

flutter开发实战-可扩展popup弹窗template模版样式 最近在看到一个flutter_beautiful_popup&#xff0c;可以美化弹窗窗口样式。该插件通过一个template模版的类BeautifulPopupTemplate作为抽象的base类。 一、基类BeautifulPopupTemplate 在BeautifulPopupTemplate中&…

1-1 动手学深度学习v2-线性回归-笔记

简化核心模型 假设1: 影响房价的关键因素是卧室个数&#xff0c;卫生间个数和居住面积&#xff0c;记为 x 1 x_{1} x1​&#xff0c; x 2 x_{2} x2​&#xff0c; x 3 x_{3} x3​假设2: 成交价是关键因素的加权和 y w 1 x 1 w 2 x 2 w 3 x 3 b yw_{1}x_{1}w_{2}x_{2}w_{3…

RabbitMQ——基于 KeepAlived + HAProxy 搭建 RabbitMQ 高可用负载均衡集群

一、集群简介 1.1 集 群架构 当单台 RabbitMQ 服务器的处理消息的能力达到瓶颈时&#xff0c;此时可以通过 RabbitMQ 集群来进行扩展&#xff0c;从而达到提升吞吐量的目的。 RabbitMQ 集群是一个或多个节点的逻辑分组&#xff0c;集群中的每个节点都是对等的&#xff0c;每…

目标检测及相关算法介绍

文章目录 目标检测介绍目标检测算法分类目标检测算法模型组成经典目标检测论文 目标检测介绍 目标检测是计算机视觉领域中的一项重要任务&#xff0c;旨在识别图像或视频中的特定对象的位置并将其与不同类别中的对象进行分类。与图像分类任务不同&#xff0c;目标检测不仅需要…

OfficeWeb365 Readfile 任意文件读取漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

主品牌竞争方向之洞察竞争环境变化

随着市场环境加速变化&#xff0c;如果只停留在过去&#xff0c;未能及时进化的主品牌可能会逐渐老化&#xff0c;失去市场竞争力&#xff0c;甚至被新兴竞争对手所取代。因此&#xff0c;企业需要不断洞察竞争环境变化&#xff0c;避免企业走向衰退&#xff0c;让主品牌进化&a…

TrinityCore安装记录

TrinityCore模拟魔兽世界&#xff08;World of Warcraft&#xff09;的开源项目&#xff0c;并且该项目代码广泛的优化、改善和清理代码。 前期按照官方手册按部就班的安装即可。 注意几点&#xff1a; 1 需要配置Ubuntu22.04版本的服务器或者Debian11 服务器。2 需要使用gi…

网易和腾讯面试题精选---缓存面试问题和答案

介绍 在当今快节奏的数字环境中,数据和资源的高效管理对于确保最佳应用程序性能、可扩展性和响应能力变得至关重要。缓存是一种用于将频繁访问的数据存储在更接近使用点的技术,在提高系统效率、减少延迟和改善各种计算环境中的用户体验方面发挥着关键作用。本文深入探讨了缓存…

Office恢复旧UI|Office UI问题|Word UI|小喇叭找不到

Office恢复旧UI&#xff5c;Office UI问题&#xff5c;Word UI&#xff5c;小喇叭找不到 问题描述&#xff1a;Office新版本默认新UI&#xff0c;主界面没有小喇叭可以切换到旧UI. 解决方案&#xff1a; 以下述内容新建.txt&#xff0c;保存并改后缀为.reg&#xff0c;双击打开…

Flink生产环境常见问题及解决方法

在Flink生产环境中&#xff0c;可能会遇到一些常见的问题。下面简单的介绍几个常见问题&#xff0c;并且提供一些解决方法&#xff0c;来帮助你更好地应对这些问题。 故障转移和高可用性 Flink提供了故障转移和高可用性机制&#xff0c;但在配置和使用时可能会遇到问题。如果…

154基于matlab的二维元胞自动机模拟森林火灾(生命游戏 )和模拟收费站交通流

基于matlab的二维元胞自动机模拟森林火灾&#xff08;生命游戏 &#xff09;和模拟收费站交通流。全国大学生美国建模竞赛&#xff0c;程序已调通&#xff0c;可直接运行。 154 元细胞自动机 森林起火 收费站交通 (xiaohongshu.com)

unity 如何将字典显示在Inspector面板上

主要通过ISerializationCallbackReceiver接口来实现, 将所有的Value值存入List显示即可. 这里在value里存了一个Key 也可以将Key和value分别保存 public interface RecordValue<T>{public T Key { get; }}[Serializable]public class RecordDictionary<TKey, TValue&g…

Linux的库文件

概述&#xff1a; 库文件一般就是编译好的二进制文件&#xff0c;用于在链接阶段同目标代码一块生成可执行文件&#xff0c;或者运行可执行文件的时候被加载&#xff0c;以遍调用库文件中的某段代码。 动态链接都是索引的.so文件&#xff0c;静态链接都是压缩打包的.a文件。 …

rust原生语言对比 <在rust内> 执行javascirpt与lua解释型语言的性能

对于javascript我使用的是js-sandbox库。我测试当前js-sandbox的release版本是0.1.6不知道为什么无法在mac下正常运行,只能以path的方式指向js-sandbox的源码了。 对于lua我使用的是rlua库,版本号为0.19.8。 我有两个系统都做了测试,ubuntu和mac。 先看代码 use js_sandb…

Python新春烟花盛宴

写在前面 哈喽小伙伴们&#xff0c;博主在这里提前祝大家新春快乐呀&#xff01;我用Python绽放了一场新春烟花盛宴&#xff0c;一起来看看吧&#xff01; 环境需求 python3.11.4及以上PyCharm Community Edition 2023.2.5pyinstaller6.2.0&#xff08;可选&#xff0c;这个库…

深度学习的进展:人工智能时代的里程碑

深度学习的进展&#xff1a;人工智能时代的里程碑 摘要 深度学习作为机器学习领域的重要分支&#xff0c;近年来取得了巨大的进展。本文将回顾深度学习的发展历程&#xff0c;探讨其在图像识别、自然语言处理和语音识别等领域的重要应用&#xff0c;并展望深度学习在人工智能…

报错:string sub-command REGEX, mode MATCH needs at least 5 arguments

编译的时候碰到这个报错string sub-command REGEX, mode MATCH needs at least 5 arguments搜索到这个issue&#xff1a;Error with cmake build "string sub-command REGEX, mode MATCH needs at least 5 arguments" Issue #12959 zephyrproject-rtos/zephyr Git…

React实例之完善布局菜单(三)

接着上篇的内容继续。规划界面布局。界面分为三个部分&#xff0c;左边为菜单部分&#xff0c;右边上部有个 80 px 高度左右的功能区&#xff0c;下面是主内容区。 依据这个设计&#xff0c;我们进行下面的步骤&#xff1a; 在 SMenu项目中创建一个目录&#xff1a; SLayout, …