牛客周赛 Round 30(A~E)

A
A题签到题直接输出0和2即可

#include <bits/stdc++.h> 
#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 ls p<<1
#define rs p<<1|1
#define PII pair<int, int>
#define ll long long
#define ull unsigned long long
#define db double
#define endl '\n'
#define debug(a) cout<<#a<<"="<<a<<endl;
#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define INF 0x3f3f3f3f 
#define x first
#define y second
using namespace std;const int N=1e6+10;
int p[N],cnt[N],m;
vector<int>a;
int ans;
int x,n;void solve()
{string s;cin>>s;rep(i,0,s.size()-1)if(i!=1)	cout<<s[i];	
}int main()
{IOS	
//  	freopen("1.in", "r", stdin);int t;
//	cin>>t;
//	while(t--)solve();return 0;
}

B
贪心,排序。第一位数不能为0后面按从小到大的顺序输出。

#include <bits/stdc++.h> 
#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 ls p<<1
#define rs p<<1|1
#define PII pair<int, int>
#define ll long long
#define ull unsigned long long
#define db double
#define endl '\n'
#define debug(a) cout<<#a<<"="<<a<<endl;
#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define INF 0x3f3f3f3f 
#define x first
#define y second
using namespace std;const int N=1e6+10;
int p[N],cnt[N],m;
vector<int>a;void solve()
{int x;cin>>x;map<int,int>cnt;while(x){cnt[x%10]++;x/=10;}for(auto it:cnt){if(it.x==0)    continue;cout<<it.x;cnt[it.x]--;break;}for(auto it:cnt){while(cnt[it.x]){cout<<it.x;cnt[it.x]--;}}
}int main()
{IOS	
//  	freopen("1.in", "r", stdin);int t;
//	cin>>t;
//	while(t--)solve();return 0;
}

C
回文串对称,考虑无解的情况,无解的话一侧全部是相同的,否则我们就将一侧的1和1不同的交换,另一侧也做同样的交换.代码有点丑,可以不用分奇偶,我这写麻烦了。

#include <bits/stdc++.h> 
#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 ls p<<1
#define rs p<<1|1
#define PII pair<int, int>
#define ll long long
#define ull unsigned long long
#define db double
#define endl '\n'
#define debug(a) cout<<#a<<"="<<a<<endl;
#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define INF 0x3f3f3f3f 
#define x first
#define y second
using namespace std;const int N=1e6+10;char s[N];
void solve()
{cin>>s;int n=strlen(s);if(n&1){map<char,int>cnt;rep(i,0,n/2-1)	cnt[s[i]]++;if(cnt.size()<=1){cout<<-1<<endl;return;}else{rep(i,1,n/2-1){if(s[i]!=s[0])	{swap(s[n-1],s[n-1-i]);swap(s[0],s[i]);break;}	}}	}else{map<char,int>cnt;rep(i,0,n/2)	cnt[s[i]]++;if(cnt.size()<=1){cout<<-1<<endl;return;}else{rep(i,1,n/2){if(s[i]!=s[0])	{swap(s[n-1],s[n-1-i]);swap(s[0],s[i]);break;}		}}	}cout<<s;}int main()
{IOS	
//   	freopen("1.in", "r", stdin);int t;
//	cin>>t;
//	while(t--)solve();return 0;
}

D
没做出来呜呜
数学,思维。最近总是卡到数学题,昨晚的cf也是。
首先要想到,可以先把能除的除干净,可以发现除法可逆,也就是说除完之后,后面可以乘回来。
除以最大公约数之后会得到两个互质的数。
然后考虑计算答案,合法的乘数一定是一些连续的数。
只用找到上下边界就好了。
对于下边界取决于l和x
上边界取决于r和y
上边界是l/x上取整
下边界是r/y下取整
这里上取整有一些技巧

(l+x-1)/x
l/x+(l%x!=0)
#include <bits/stdc++.h> 
#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 ls p<<1
#define rs p<<1|1
#define PII pair<int, int>
#define ll long long
#define ull unsigned long long
#define db double
#define endl '\n'
#define debug(a) cout<<#a<<"="<<a<<endl;
#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define INF 0x3f3f3f3f 
#define x first
#define y second
using namespace std;const int N=1e6+10,mod=1e9+7;void solve()
{int x,y,l,r;cin>>x>>y>>l>>r;int k=__gcd(x,y);if(x>y)    swap(x,y);x/=k;y/=k;int minn=l/x+(l%x!=0);int maxx=r/y;cout<<max(0,maxx-minn+1);
}int main()
{IOS	
//  	freopen("1.in", "r", stdin);int t;
//	cin>>t;
//	while(t--)solve();return 0;
}

E
e是一道比较经典的树形dp
f [ i ] [ 0 ] : 表示以 i 为根的子树, i 是白色的所有合法方案 f[i][0]:表示以i为根的子树,i是白色的所有合法方案 f[i][0]:表示以i为根的子树,i是白色的所有合法方案
f [ i ] [ 1 ] : 表示以 i 为根的子树, i 是红色的所有合法方案 f[i][1]:表示以i为根的子树,i是红色的所有合法方案 f[i][1]:表示以i为根的子树,i是红色的所有合法方案
考虑如何转移
当i为白色时,只能由其子树是红色的转移而来,那么就有
f [ i ] [ 0 ] = f [ i ] [ 0 ] ∗ f [ y ] [ 1 ] f[i][0]=f[i][0] * f[y][1] f[i][0]=f[i][0]f[y][1]
当i为红色时,既能由其子树是红色的转移而来,也能由其子树是白色的转移而来,那么就有
f [ i ] [ 0 ] = f [ i ] [ 0 ] ∗ ( f [ y ] [ 0 ] + f [ y ] [ 1 ] ) f[i][0]=f[i][0] * (f[y][0]+f[y][1]) f[i][0]=f[i][0]f[y][0]+f[y][1])

#include <bits/stdc++.h> 
#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 ls p<<1
#define rs p<<1|1
#define PII pair<int, int>
#define ll long long
#define ull unsigned long long
#define db double
#define endl '\n'
#define debug(a) cout<<#a<<"="<<a<<endl;
#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define INF 0x3f3f3f3f 
#define x first
#define y second
using namespace std;const int N=1e6+10,mod=1e9+7;ll f[100010][2],mod=1e9+7;
vector<int>e[100010];
int n;
void dfs(int x,int fa)
{f[x][0]=f[x][1]=1;int boy=0;for(auto y:e[x]){if(y==fa)continue;dfs(y,x);f[x][0]=f[x][0]*f[y][1]%mod;f[x][1]=f[x][1]*(f[y][0]+f[y][1])%mod;}
}
int main()
{cin>>n;for(int i=1;i<n;i++){cin>>x>>y;e[x].push_back(y);e[y].push_back(x);}dfs(1,0);cout<<(f[1][0]+f[1][1])%mod;
}	

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

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

相关文章

写静态页面——前端总结

0、怎么写一个前端页面: HTML是超文本标记语言,它用来写前端的内容和框架,CSS是层叠样式表,它用来给前端写样式,让内容变漂亮。1、要写前端页面需要用VScode代码编辑器: VScode当中可以下载汉化插件、快捷键插件(eclipse)浏览器用于解析html/css/js代码,浏览器是从上往…

数据分析入门指南:用 Python 开启数据之旅

文章目录 前言发现宝藏为什么选择 Python 进行数据分析&#xff1f;准备工作数据分析基础1. 数据加载2. 数据探索3. 数据清洗4. 数据可视化 探索更多可能性好书推荐总结 前言 为了巩固所学的知识&#xff0c;作者尝试着开始发布一些学习笔记类的博客&#xff0c;方便日后回顾。…

成都直播产业园核心优势全面解读,入驻天府锋巢直播产业基地都有哪些好处?

一文讲清&#xff01;成都直播产业园核心优势全面解读 企业入驻天府锋巢直播产业基地能获得哪些好处&#xff1f; 锋巢资讯&#xff5e;又来了&#xff5e;&#xff5e;&#xff5e; 今天&#xff0c;将为您全面解读成都产业园重点特色产业服务&#xff08;上&#xff09; 什…

Android 13以上版本读写SD卡权限适配

如题&#xff0c;最近工作上处理的问题&#xff0c;把解决方案简单逻列出来&#xff0c;供有需要的朋友参考之 解决方案&#xff1a; 1、配置权限 <uses-permission android:name"android.permission.READ_MEDIA_IMAGES" /><uses-permission android:name&q…

C++从零开始的打怪升级之路(day25)

这是关于一个普通双非本科大一学生的C的学习记录贴 在此前&#xff0c;我学了一点点C语言还有简单的数据结构&#xff0c;如果有小伙伴想和我一起学习的&#xff0c;可以私信我交流分享学习资料 那么开启正题 今天分享的是关于vector的题目 1.两数之和 1. 两数之和 给定一…

(自用)learnOpenGL学习总结-高级OpenGL-立方体贴图

ok终于来到了立方体贴图了&#xff0c;在这里面我们可以加入好看的天空包围盒&#xff0c;这样的画我们的背景就不再是黑色的了&#xff01; 首先&#xff0c;立方体贴图和前面的sampler2D贴图一样&#xff0c;不过是6个2D组成的立方体而已。 那么为什么要把6个组合在一起呢&…

树莓派部署Nginx服务结合内网穿透实现远程访问本地站点

文章目录 1. Nginx安装2. 安装cpolar3.配置域名访问Nginx4. 固定域名访问5. 配置静态站点 安装 Nginx&#xff08;发音为“engine-x”&#xff09;可以将您的树莓派变成一个强大的 Web 服务器&#xff0c;可以用于托管网站或 Web 应用程序。相比其他 Web 服务器&#xff0c;Ngi…

怎样用流程自定义表单提升办公效率?

如果想要提升办公协作效率&#xff0c;可以试试低代码技术平台及流程自定义表单工具。不可否认的是&#xff0c;随着社会的进步和发展&#xff0c;传统的表单制作工具已经没有办法再满足业务量不断上涨的办公需求了&#xff0c;但是&#xff0c;借助专业的流程自定义表单工具就…

AES 加解密python实现

1. 要求 编程实现AES-128的加解密算法&#xff0c;满足给定明文和密钥加密得到密文&#xff0c;给定密文和密钥解密得到明文&#xff0c;最终用界面化的形式呈现。 2. 算法流程 程序主要分为加密与解密两个大模块。在加密模块中包括四个小模块&#xff0c;分别为轮密钥加、字…

Android 系统启动流程

依旧是带着问题再去学习 首先&#xff0c;Android是怎么启动的&#xff1f; Android服务是怎么启动的&#xff1f; Android线程是怎么切换的&#xff1f; Android ApplicationThread是怎么创建的&#xff1f; 那么接下来开始分析Android的启动流程 还是一步一图 先画一张流…

vp9协议梳理-header头文件

vp9协议梳理-header头文件 本文是对vp9视频码流中header中包含的语法元素的一个分类整理&#xff0c;及其对具体的解码过程的影响的分析。 这里写目录标题 vp9协议梳理-header头文件1. Vp9码流中的header头文件2. profile3. show_existing_frame, frame_to_show_map_idx4. fr…

What is Rust? Why Rust?

why Rust&#xff1f; 目前&#xff0c;Rust 变得越来越流行。然而&#xff0c;仍然有很多人&#xff08;和公司&#xff01;&#xff09;误解了 Rust 的主张价值是什么&#xff0c;甚至误解了它是什么。在本文中&#xff0c;我们将讨论 Rust 是什么以及为什么它是一种可以增强…

面试 CSS 框架八股文十问十答第一期

面试 CSS 框架八股文十问十答第一期 作者&#xff1a;程序员小白条&#xff0c;个人博客 相信看了本文后&#xff0c;对你的面试是有一定帮助的&#xff01;关注专栏后就能收到持续更新&#xff01; ⭐点赞⭐收藏⭐不迷路&#xff01;⭐ 1&#xff09;CSS选择器及其优先级 C…

两个五层决策树和一个十层决策树的区别

随机森林的弹性: 随机森林中的多个决策树是相互独立构建的&#xff0c;因此两个五层决策树和一个十层决策树之间的区别可能在于它们对训练数据的不同学习。这种弹性有助于模型更好地适应不同的数据模式。 过拟合风险: 十层决策树可能更容易过拟合训练数据&#xff0c;尤其是在数…

vivado 配置内存IP

配置内存IP UltraScale体系结构内存IP支持DDR3和DDR4 SDRAM的配置&#xff0c;QDRIIPLUS SRAM和RLDRAM3型接口。截至2015.3&#xff0c;内存IP已被拆分基于内存接口标准和工具流&#xff0c;将其划分为不同的IP。“自定义IP”对话框框包含基本和高级配置选项&#xff0c;其中包…

【C/C++ 05】快速排序

快速排序是Hoare于1962年提出的一种二叉树结构的交换排序算法&#xff0c;其基本思想是&#xff1a;任取待排序序列中的某元素作为基准值&#xff0c;按照该基准值将待排序集合分割成两个子序列&#xff0c;左子序列中所有元素均小于基准值&#xff0c;右子序列中所有元素均大于…

数据在网络传输中为什么要加密?

在信息化浪潮席卷全球的今天&#xff0c;数据如同流淌在信息高速公路的生命血液&#xff0c;其安全传输的重要性不言而喻。随着网络空间中各种威胁与挑战日益凸显&#xff0c;加密技术已成为保护数据安全、维护用户隐私、确保业务连续性的关键手段。它就如同一道无形的防护盾&a…

Nestjs 全局拦截器

一、拦截器 拦截器作用&#xff1a; 在函数执行之前、之后绑定额外的逻辑转换函数的返回结果转换从函数抛出的异常扩展基本函数的行为根据所选条件重写函数 期望接口返回一个标准的json格式&#xff0c;利用拦截器对数据做全局的格式化 {code: "200",data: [],mess…

【文本到上下文 #7】探索 NLP 中的 Seq2Seq、编码器-解码器和注意力机制

一、说明 今天&#xff0c;我们将探讨序列到序列 &#xff08;seq2seq&#xff09; 模型的复杂工作原理&#xff0c;特别关注编码器-解码器架构和注意力机制。这些概念是各种 NLP 应用的基础&#xff0c;从机器翻译到问答系统。 这是可以期待的&#xff1a; Seq2Seq模型中的编码…

基于stm32的伸缩晒衣架的设计

标题&#xff1a;基于STM32F103单片机的智能伸缩晒衣架控制系统设计与实现 摘要&#xff1a; 本论文探讨了一种基于STM32F103微控制器设计的智能伸缩晒衣架系统&#xff0c;该系统集成了环境感知、智能控制和无线通信等功能&#xff0c;以适应现代生活对便捷化、智能化家居产品…