当前位置: 首页 > news >正文

输入输出+暴力模拟入门:魔法之树、染色の树、矩阵、字母加密、玫瑰鸭

秋招实习刷题网站推荐:codefun2000.com,还有题解博客:blog.codefun2000.com/。以下内容都是来自塔子哥的~

输入输出

2023.04.15-春招-第三题-魔法之树

在这里插入图片描述
在这里插入图片描述

//#include<bits/stdc++.h>
#include<vector>
#include<iostream>using namespace std;typedef long long LL;
const int N = 1001;
LL n, l, r;
vector<int> weight(N);
vector<vector<int>> vec(N);//二维数组
// 图的存储:开一个全局的定长数组,其中每个元素都是一个不定长数组vector<int>
// 开1001 是因为节点下标范围为[1,1000] , 所以需要多开一个
// 你所见到的开1005,1006也是这个原因。至少多开辟一位即可
int result = 0;//传入当前节点 当前节点的父节点 累加的值 的值
void dfs(int u, int root, int pre)
{//获取遍历过路径 二进制 对应的十进制//获得当前权重 pre二进制进一位 相当于十进制*2//1--11  1--1*2+1int cur = pre * 2 + weight[u];cout << "pre = " << pre << "\tweight[u] = " << weight[u] << "\tcur = " << cur;//找到符合的路径if (cur > r) return;else if (cur >= l) result++;//遍历当前层for (auto& num : vec[u]){if (num == root) continue;//跳过父节点 一个父节点不能是权重//for(auto& vv : vec[u]) cout << "vv = " << vv << endl;cout << "\tnum = " << num << endl;dfs(num, u, cur);}
}int main1()
{cin >> n >> l >> r;string str;cin >> str;for (int i = 1; i <= n; i++){weight[i] = str[i-1] - '0';}// 由于是树,所以只需要读n - 1 条边// 由于你无法确认x,y之间谁是父亲节点,所以需要存双向边,// 在dfs的过程中防止返祖即可(返祖会引发死递归!)。// PS:在有一些题目里,他会明确规定谁是父亲,这种情况下就不用存双向边,// 且在dfs的过程中也不用担心返祖的问题.for (int i = 0; i < n - 1; i++){int u, v;cin >> u >> v;vec[u].push_back(v);vec[v].push_back(u);}for (int i = 1; i <= n; i++){//从父节点1开始出发 他没有父节点所以是-1 累加的十进制数是0cout << "i = " << i << endl;dfs(i, -1, 0);}cout << result << endl;//string str = "11010";//vector<vector<int>> nums = { {1,2,3}, {2,4,5 }, {1}, {2}, {2} };/*cout << "n = " << n << "\tl = " << l << "\tr = " << r << endl;cout << "str = " << str << endl;for (int i = 0; i < vec.size(); i++){cout << "i = " << i << "\tvec[i] = " << vec[i][0] << endl;for (int j = i; j < vec[i].size(); j++){cout << "\tvec[i][j] = " << vec[i][j] << endl;}}cout << "done" << endl;*/   system("pause");return 0;
}

2023.04.01-第五题-染色の树

在这里插入图片描述

//#include<bits/stdc++.h>
#include <vector>
#include <iostream>
using namespace std;
int n;
vector<vector<int>> edges;
vector<int> color;int dfs(int root) {vector<int> tmp(2);//如果当前层有2个子节点 保存其两个子节点//如果    当前层有0个子节点    该节点的价值为    1//如果    当前层有1个子节点    该节点的价值为    其唯一子节点的价值//如果    当前层有2个子节点    该节点是红色,价值为两个子节点价值和;是绿色,价值为两个子节点价值的异或值if (edges[root].size() == 0) return 1;else if (edges[root].size() == 1) return dfs(edges[root][0]);else {for (int i = 0; i < 2; i++) tmp[i] = dfs(edges[root][i]);//两个子节点的价值 为了计算父节点价值if (color[root - 1] == 1) {return tmp[0] + tmp[1];//父节点是红色}else return tmp[0] ^ tmp[1];//父节点是绿色}
}
int main() {cin >> n;if (n < 1) return 0;if (n == 1) return 1;color.resize(n + 1);edges.resize(n + 1);//4行//cout << edges.size() << endl;//保存     { {}, {2,3}, {}, {} }//过程是   p[i]=1 i从2开始 第2个父节点是1,i++;p[i]=1,i=3,第3个父节点是1int idx = 0;while (idx < n) {int tmp;cin >> tmp;//输入的是父节点edges[tmp].push_back(idx+2);//idx+2才是子节点 注意题目的i是从2开始idx++;}int idx2 = 0;while (idx2 < n) {int tmp;cin >> tmp;color[idx2++] = tmp;}/*for(int i = 0; i < edges[1].size(); i ++)cout << edges[1][i] << " ";*///输入父节点值int res = dfs(1);//cout << res << endl;return 0;
}

取模模板

//#include<bits/stdc++.h>
#include <iostream>
using namespace std;
const int mod = 1e9 + 7;// -----取模操作模板----- 建议使用long long 实例化,最稳
template <typename T>
class Mod {
public:T add(T x, T y, T mod) {x %= mod;y %= mod;T res = (x + y) % mod;return res;}T sub(T x, T y, T mod) {x %= mod;y %= mod;T res = (x - y + mod) % mod;return res;}T mul(T x, T y, T mod) {x %= mod;y %= mod;T res = x * y % mod;return res;}T div(T x, T y, T mod) {x %= mod;y %= mod;T inv = fastPow(y, mod - 2, mod);T res = mul(x, inv, mod);return res;}
private:T fastPow(T a, T b, T mod) {T ans = 1, base = a;while (b) {if (b & 1) ans = mul(ans, base, mod);base = mul(base, base, mod);b >>= 1;}return ans;}
};
// -----取模操作模板 end-----
int main3() {int n;Mod<long long> t;cin >> n;for (int i = 1; i <= n; i++) {int op;long long x, y;cin >> op >> x >> y;if (op == 1) {cout << t.add(x, y, mod) << endl;}else if (op == 2) {cout << t.sub(x, y, mod) << endl;}else if (op == 3) {cout << t.mul(x, y, mod) << endl;}else {cout << t.div(x, y, mod) << endl;}}
}

暴力模拟入门

矩阵

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
int n;
const int mod = 1e9 + 7;
typedef long long LL;template <typename T>
class MOD
{
public:T mul(T a, T b, T mod){a %= mod;b %= mod;T res = (a * b) % mod;return res;}T fastPow(T a, T b, T mod){T res = 1, base = a;while(b){if((b & 1) == 1)mul(base, res, mod);//res *= a;mul(base, base, mod);//a *= a;b >>= 1;}return res;}
};long long fast_pow(int a, int b)
{long long res = 1, temp = a;while(b){if((b & 1) == 1)res *= temp;temp *= temp;b >>= 1;}return res;
}int main()
{cin >> n;LL num = 0, result = 0;//num = n * (n-1) / 2;for(LL i=1; i<=n-1; i++)num += i;//cout << num << endl;//MOD<LL> mymod;//result = mymod.fastPow(2, num, mod);result = fast_pow(2, num);cout << result << endl;return 0;
}

字母加密

在这里插入图片描述
第一次写的时候没有考虑范围超出的时候

#include <bits/stdc++.h>
#include <iostream>
#include <vector>
using namespace std;string instr;
int main()
{cin >> instr;int len = instr.length();vector<int> a(len + 1);a[0] = 1, a[1] = 2, a[2] = 4;for (int i = 3; i < len + 1; i++){a[i] = (a[i - 1] + a[i - 2] + a[i - 3]) % 26;//while (a[i] > 26) a[i] -= 26;//cout << a[i] << "  ";}string result;for (int i = 0; i < len; i++){char temp = (instr[i] - 'a' + a[i]) % 26 + 'a';//cout << instr[i] - 'a' + a[i] << "  " << instr[i] + a[i] << "  ";//cout << (instr[i] - 'a' + a[i]) % 26<< "  " << temp << endl;result += temp;}cout << result << endl;return 0;
}

玫瑰鸭

#include<bits/stdc++.h>
using namespace std;typedef long long LL;
LL a, b, c;int main()
{cin >> a >> b >> c;//LL a = 8;//LL b = 4;//LL c = 2;if (a > b) swap(a, b);//保证a是小的那个LL temp = b - a;//差值if (c - temp >= 0)//c比差值大 c补给a{//用c把差值补给a,让a = ba += temp;c -= temp;//如果c还有剩下 取c的一半,例如4 8 8a += c / 2;}else a += c;return a / 2;
}

相关文章:

输入输出+暴力模拟入门:魔法之树、染色の树、矩阵、字母加密、玫瑰鸭

秋招实习刷题网站推荐&#xff1a;codefun2000.com&#xff0c;还有题解博客&#xff1a;blog.codefun2000.com/。以下内容都是来自塔子哥的~ 输入输出 2023.04.15-春招-第三题-魔法之树 //#include<bits/stdc.h> #include<vector> #include<iostream>usin…...

​Kubernetes的演变:从etcd到分布式SQL的过渡

DevRel领域专家Denis Magda表示&#xff0c;他偶然发现了一篇解释如何用PostgreSQL无缝替换etcd的文章。该文章指出&#xff0c;Kine项目作为外部etcd端点&#xff0c;可以将Kubernetes etcd请求转换为底层关系数据库的SQL查询。 受到这种方法的启发&#xff0c;Magda决定进一步…...

29、简单通过git把项目远程提交到gitee

简单通过git把项目远程提交到gitee 1、在gitee上创建一个仓库 2、在要提交的项目文件夹打开git 输入 git init 初始化git 然后设置下用户名和邮箱 git config --global user.name “username” git config --global user.email “yourEmail” 因为我是要把文件简单提交到…...

元宇宙之应用(04)沉浸式游戏

在数字科技迅猛发展的今天&#xff0c;元宇宙的概念正逐渐从科幻走向现实&#xff0c;重新定义了人们与虚拟世界的交互方式。在这一概念的引领下&#xff0c;"沉浸式游戏" 蓬勃发展&#xff0c;为游戏体验带来了前所未有的深度和广度。那么&#xff0c;为什么沉浸式游…...

浙大数据结构第八周之08-图7 公路村村通

题目详情&#xff1a; 现有村落间道路的统计数据表中&#xff0c;列出了有可能建设成标准公路的若干条道路的成本&#xff0c;求使每个村落都有公路连通所需要的最低成本。 输入格式: 输入数据包括城镇数目正整数N&#xff08;≤1000&#xff09;和候选道路数目M&#xff08…...

SpringBoot 解决跨域问题

同源策略&#xff08;CORS&#xff09;&#xff1a;浏览器在解析发送的请求时&#xff0c;要求浏览器的路径与发送的请求的路径必须满足三个要求&#xff0c;即请求的协议、域名、端口号都相同&#xff0c;满足同源策略&#xff0c;才可以访问服务器&#xff0c;否则&#xff0…...

2023 年牛客多校第十场题解

C Multiplication 题意&#xff1a;定义 k k k-shift 数是满足 k x y ‾ y x ‾ k\overline{xy}\overline{yx} kxy​yx​ 的数字。给定 k k k&#xff0c;求最大不超过 n n n 的 k k k-shift 数。 1 ≤ n ≤ 1 0 100 1 \le n \le 10^{100} 1≤n≤10100&#xff0c; 2 ≤…...

韦东山老师 RTOS 入门课程(一)RTOS 介绍,熟悉裸机的汇编逻辑

韦东山老师 RTOS 入门课程 课程链接&#xff1a;韦东山直播公开课&#xff1a;RTOS实战项目之实现多任务系统 第1节&#xff1a;裸机程序框架和缺陷_哔哩哔哩_bilibili RTOS 介绍 裸机&#xff1a;固定顺序执行。 中断&#xff1a;可以一直专心做循环里的事情&#xff0c;直…...

WebRTC | SDP详解

目录 一、SDP标准规范 1. SDP结构 2. SDP内容及type类型 二、WebRTC中的SDP结构 1. 媒体信息描述 &#xff08;1&#xff09;SDP中媒体信息格式 i. “artpmap”属性 ii. “afmtp”属性 &#xff08;2&#xff09;SSRC与CNAME &#xff08;3&#xff09;举个例子 &…...

Springboot 实践(9)springboot集成Oauth2.0授权包,5个接口文件配置详解

前文讲解实现了spring boot集成Oauth2.0&#xff0c;实现了授权服务器和资源服务器的搭建&#xff0c;并通过浏览器和postman测试&#xff0c;获取到了授权码&#xff0c;用携带授权码的URL能够争取范文到资源。 本文详细讲解spring boot集成Oauth2.0的几个重要文件接口&#…...

最新AI系统ChatGPT程序源码/支持GPT4/自定义训练知识库/GPT联网/支持ai绘画(Midjourney)+Dall-E2绘画/支持MJ以图生图

一、前言 SparkAi系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。 那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧&#xff01…...

【高频面试题】 消息中间件

文章目录 1、RabbitMQ1.1 RabbitMQ-如何保证消息不丢失1.2 RabbitMQ消息的重复消费问题如何解决的1.3 RabbitMQ中死信交换机 ? (RabbitMQ延迟队列有了解过嘛)1.4 RabbitMQ如果有100万消息堆积在MQ , 如何解决(消息堆积怎么解决)1.5 RabbitMQ的高可用机制有了解过嘛 2、Kafka2.…...

物联网智慧安防实训综合实训基地建设方案

一、系统概述 物联网智慧安防实训综合实训基地是一个为学生提供综合实践、培养技能的场所&#xff0c;专注于物联网技术与智慧安防应用的培训和实训。通过物联网智慧安防实训综合实训基地的建设和运营&#xff0c;学生可以在真实的环境中进行实践训练&#xff0c;提高其物联网技…...

openGauss学习笔记-44 openGauss 高级数据管理-存储过程

文章目录 openGauss学习笔记-44 openGauss 高级数据管理-存储过程44.1 语法格式44.2 参数说明44.3 示例 openGauss学习笔记-44 openGauss 高级数据管理-存储过程 存储过程是能够完成特定功能的SQL语句集。用户可以进行反复调用&#xff0c;从而减少SQL语句的重复编写数量&…...

【Linux】进程信号篇Ⅲ:可重入函数、volatile关键字、SIGCHLD信号

信号Ⅲ &#x1f517; 接上篇七、可重入函数八、volatile 关键字九、SIGCHLD 信号 &#x1f517; 接上篇 &#x1f449;&#x1f517;进程信号篇Ⅰ&#xff1a;信号的产生&#xff08;signal、kill、raise、abort、alarm&#xff09;、信号的保存&#xff08;core dump&#x…...

排序算法:冒泡排序

冒泡排序是入门级的算法&#xff0c;但也有一些有趣的玩法。通常来说&#xff0c;冒泡排序有三种写法&#xff1a; 一边比较一边向后两两交换&#xff0c;将最大值 / 最小值冒泡到最后一位&#xff1b;经过优化的写法&#xff1a;使用一个变量记录当前轮次的比较是否发生过交换…...

Spring事件监听源码解析

spring事件监听机制离不开容器IOC特性提供的支持&#xff0c;比如容器会自动创建事件发布器&#xff0c;自动识别用户注册的监听器并进行管理&#xff0c;在特定的事件发布后会找到对应的事件监听器并对其监听方法进行回调。Spring帮助用户屏蔽了关于事件监听机制背后的很多细节…...

Cpp学习——list的模拟实现

目录 一&#xff0c;实现list所需要包含的三个类 二&#xff0c;三个类的实现 1.list_node 2.list类 3.iterator_list类 三&#xff0c;功能实现 1.list类里的push_back() 2.iterator类里的运算符重载 3&#xff0c;list类里面的功能函数 1.insert&#xff08;&#xff…...

工具推荐:Chat2DB一款开源免费的多数据库客户端工具

文章首发地址 Chat2DB是一款开源免费的多数据库客户端工具&#xff0c;适用于Windows和Mac操作系统&#xff0c;可在本地安装使用&#xff0c;也可以部署到服务器端并通过Web页面进行访问。 相较于传统的数据库客户端软件如Navicat、DBeaver&#xff0c;Chat2DB具备了与AIGC…...

C语言刷题指南(二)

&#x1f4d9;作者简介&#xff1a; 清水加冰&#xff0c;目前大二在读&#xff0c;正在学习C/C、Python、操作系统、数据库等。 &#x1f4d8;相关专栏&#xff1a;C语言初阶、C语言进阶、C语言刷题训练营、数据结构刷题训练营、有感兴趣的可以看一看。 欢迎点赞 &#x1f44d…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...