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

秋招实习刷题网站推荐: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;
}

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

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

相关文章

Datawhale Django后端开发入门Task01 Vscode配置环境

首先呢放一张运行成功的截图纪念一下&#xff0c;感谢众多小伙伴的帮助呀&#xff0c;之前没有配置这方面的经验 &#xff0c;但还是一步一步配置成功了&#xff0c;所以在此以一个纯小白的经验分享如何配置成功。 1.选择要建立项目的文件夹&#xff0c;打开文件找到目标文件夹…

csapp archlab PartC满分解答

任务 修改ncopy.ys和pipe-full.hcl以尽可能的提高ncopy.ys的运行速度 思路 pipe-full.hcl&#xff1a; 实现iaddq指令&#xff08;家庭作业4.54&#xff09;实现加载转发&#xff08;家庭作业4.57&#xff09; ncopy.ys&#xff1a; 使用循环展开&#xff08;第5.8节&…

openai多模态大模型:clip详解及使用

引言 CLIP全称Constrastive Language-Image Pre-training&#xff0c;是OpenAI推出的采用对比学习的文本-图像预训练模型。CLIP惊艳之处在于架构非常简洁且效果好到难以置信&#xff0c;在zero-shot文本-图像检索&#xff0c;zero-shot图像分类&#xff0c;文本→图像生成任务…

windows服务器下java程序健康检测及假死崩溃后自动重启应用、开机自动启动

前两天由于项目需要&#xff0c;一个windows上的批处理任务&#xff08;kitchen.bat&#xff09;&#xff0c;需要接到mq的消息通知后执行&#xff0c;为了快速实现这里我们通过springboot写了一个jar程序&#xff0c;用于接收mq的消息&#xff0c;并调用bat文件。 本程序需要实…

缺少或找不到vcruntime140_1.dll的解决方法

某天&#xff0c;当我准备打开电脑上的一个应用程序时&#xff0c;突然收到一个错误提示&#xff0c;显示缺少了vcruntime140_1.dll文件。这个文件是一个重要的系统组件&#xff0c;它的丢失导致了我无法正常运行该应用程序。于是&#xff0c;我开始了一场寻找和修复旅程。然而…

这是我的纪念日

我的1460天 写这篇文章&#xff0c;是为了纪念自己这一千多个日日夜夜&#xff0c;我的热爱总算有了回报。 每次看到有小伙伴点赞&#xff0c;评论的时候&#xff0c;我都很开心&#xff0c;我知道自己的选择是正确的&#xff0c;我喜欢分享自己的所见所学&#xff0c;我也很…

python3.7 安装pywin32报错,完美解决方法

本机环境 python&#xff1a;3.7 遇到2种报错 第一种 ImportError: DLL load failed: The specified module could not be found.第二种&#xff1a; import win32gui ModuleNotFoundError: No module named ‘win32gui‘解决方法 我安装pywin32时候&#xff0c;是直接pi…

stm32红绿灯源代码示例(附带Proteus电路图)

本代码不能直接用于红路灯&#xff0c;只是提供一个思路 #include "main.h" #include "gpio.h" void SystemClock_Config(void); void MX_GPIO_Init(void) {GPIO_InitTypeDef GPIO_InitStruct {0};/* GPIO Ports Clock Enable */__HAL_RCC_GPIOB_CLK_ENAB…

Jenkins-CICD-python/Java包升级与回退

Jenkins- CICD流水线 python/Java代码升级与回退 1、执行思路 1.1、代码升级 jenkins上点击 upgrade和 代码版本号 --${tag} jenkins 推送 代码 和 执行脚本 到目标服务器/opt目录下 执行命令 sh run.sh 代码名称 版本号 upgrade 版本号 来自jenkins的 构建参数中的 标签…

Gitlab-第四天-CD到k8s集群的坑

一、.gitlab-ci.yml #CD到k8s集群的 stages: - deploy-test build-image-deploy-test: stage: deploy-test image: bitnami/kubectl:latest # 使用一个包含 kubectl 工具的镜像 tags: - k8s script: - ls -al - kubectl apply -f deployment.yaml # 根据实际情况替换…

LlamaGPT -基于Llama 2的自托管类chatgpt聊天机器人

LlamaGPT一个自托管、离线、类似 ChatGPT 的聊天机器人&#xff0c;由 Llama 2 提供支持。100% 私密&#xff0c;不会有任何数据离开你的设备。 推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 1、如何安装LlamaGPT LlamaGPT可以安装在任何x86或arm64系统上。 首先确保…

PHP8的字符串操作3-PHP8知识详解

今天继续分享字符串的操作&#xff0c;前面说到了字符串的去除空格和特殊字符&#xff0c;获取字符串的长度&#xff0c;截取字符串、检索字符串。 今天继续分享字符串的其他操作。如&#xff1a;替换字符串、分割和合成字符串。 5、替换字符串 替换字符串就是对指定字符串中…

vue浏览器插件安装-各种问题

方法1&#xff1a;vue.js devtolls插件下载 https://blog.csdn.net/qq_55640378/article/details/131553642 下载地址&#xff1a; Tags vuejs/devtools GitHub npm install 或是 cnpm install 遇到的报错 设置淘宝镜像源&#xff08;推荐使用nrm&#xff0c;这一步是为…

使用IText导出复杂pdf

1、问题描述 需要将发票导出成pdf&#xff0c;要求每页都必须包含发票信息和表头行。 2、解决方法 使用IText工具实现PDF导出 IText8文档&#xff1a;Examples (itextpdf.com) 3、我的代码 引入Itext依赖&#xff0c;我这里用的是8.0.1版本 <dependency><groupId>…

uniapp 上传比较大的视频文件就超时

uni.uploadFile&#xff0c;上传超过10兆左右的文件就报错err&#xff1a;uploadFile:fail timeout&#xff0c;超时 解决&#xff1a; 在manifest.json文件中做超时配置 uni.uploadFile({url: this.action,method: "POST",header: {Authorization: uni.getStorage…

Python编程——列表解析与常用操作

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 本文专栏&#xff1a;Python专栏 专栏介绍&#xff1a;本专栏为免费专栏&#xff0c;并且会持续更新python基础知识&#xff0c;欢迎各位订阅关注。 目录 一、列表是什么&#xff1f; 二、列表的特点 1、元素…

pyltp 0.2.1安装

1. LTP及pyltp pyltp是 LTP的 Python封装&#xff0c;它里面提供了包括分词&#xff0c;词性标注&#xff0c;命名实体识别&#xff0c;句法分析等等能力。 比较坑的是我们可能无法直接通过pip install pyltp0.2.1方式来安装&#xff0c;所以本文就简单记录下如何通过源码安装…

商城-学习整理-高级-性能压测缓存问题(十一)

目录 一、基本介绍1、性能指标2、JMeter1、JMeter 安装2、JMeter 压测示例1、添加线程组2、添加 HTTP 请求3、添加监听器4、启动压测&查看分析结果 3、JMeter Address Already in use 错误解决 二、性能监控1、jvm 内存模型2、堆3、jconsole 与 jvisualvm1、jvisualvm 能干…

音视频 FFmpeg音视频处理流程

ffmpeg -i test_1920x1080.mp4 -acodec copy -vcodec libx264 -s 1280x720 test_1280x720.flv推荐一个零声学院项目课&#xff0c;个人觉得老师讲得不错&#xff0c;分享给大家&#xff1a; 零声白金学习卡&#xff08;含基础架构/高性能存储/golang云原生/音视频/Linux内核&am…

【计算机视觉】相机基本知识(还在更新)

1.面阵工业相机与线阵工业相机 1.1 基本概念区别 面阵相机则主要采用的连续的、面状扫描光线来实现产品的检测&#xff1b; 线阵相机即利用单束扫描光来进行物体扫描的工作的。 1.2 优缺点 &#xff08;1&#xff09;面阵CCD工业相机&#xff1a; 优点&#xff1a;应用面…