acwing算法提高之基础算法--位运算、递推与递归

embedded/2024/9/24 21:23:32/

目录

  • 1 介绍
  • 2 训练

1 介绍

本博客用来记录位运算、递推与递归相关的题目。

2 训练

题目1:第90题-64位整数乘法

C++代码如下,

#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;typedef long long LL;LL qadd(LL a, LL b, LL p) {LL res = 0;while (b) {if (b & 1) res = (res + a) % p;a = (a + a) % p;b >>= 1;}return res;
}int main() {LL a, b, p;cin >> a >> b >> p;cout << (LL)qadd(a, b, p) << endl;return 0;
}

题目2:95费解的开关

C++代码如下,

#include <cstdio>
#include <cstring>using namespace std;const int N = 6;char g[N][N], bg[N][N];
int dx[5] = {-1, 0, 1, 0, 0}, dy[5] = {0, 1, 0, -1, 0};void turn(int x, int y) {for (int i = 0; i < 5; ++i) {int a = x + dx[i], b = y + dy[i];if (a < 0 || x >= 5 || b < 0 || b >= 5) continue;g[a][b] ^= 1;}
}int main() {int T;scanf("%d", &T);while (T--) {for (int i = 0; i < 5; ++i) scanf("%s", bg[i]);int res = 10;for (int op = 0; op < 32; op++) {int cnt = 0;memcpy(g, bg, sizeof g);for (int i = 0; i < 5; ++i) {if (op >> i & 1) {turn(0, i);cnt++;}}for (int i = 0; i < 4; ++i) {for (int j = 0; j < 5; ++j) {if (g[i][j] == '0') {turn(i + 1, j);cnt++;}}}bool success = true;for (int i = 0; i < 5; ++i) {if (g[4][i] == '0') {success = false;}}if (success && res > cnt) res = cnt;}if (res > 6) res = -1;printf("%d\n", res);}return 0;
}

题目3:97约数之和

C++代码如下,

#include <cstdio>const int mod = 9901;int qmi(int a, int k) {int res = 1;a %= mod;while (k) {if (k & 1) res = res * a % mod;a = a * a % mod;k >>= 1;}return res;
}int sum(int p, int k) {if (k == 1) return 1;if (k % 2 == 0) return (1 + qmi(p, k / 2)) * sum(p, k / 2) % mod;return (sum(p, k - 1) + qmi(p, k - 1)) % mod;
}int main() {int a, b;scanf("%d%d", &a, &b);int res = 1;for (int i = 2; i * i <= a; ++i) {if (a % i == 0) {int s = 0;while (a % i == 0) {a /= i, s ++;}res = res * sum(i, b * s + 1) % mod;}}if (a > 1) res = res * sum(a, b + 1) % mod;if (a == 0) res = 0;printf("%d\n", res);return 0;
}

题目4:98分形之城

C++代码如下,

#include <cstdio>
#include <cstring>
#include <cmath>typedef long long LL;struct Point {LL x, y;
};Point get(LL n, LL a) {if (n == 0) return {0,0};LL block = 1ll << n * 2 - 2, len = 1ll << n - 1;auto p = get(n - 1, a % block);LL x = p.x, y = p.y;int z = a / block;if (z == 0) return {y, x};else if (z == 1) return {x, y + len};else if (z == 2) return {x + len, y + len};return {len * 2 - 1 - y, len - 1 - x};
}int main() {int T;scanf("%d", &T);while (T--) {LL n, a, b;scanf("%lld%lld%lld", &n, &a, &b);auto pa = get(n, a - 1);auto pb = get(n, b - 1);double dx = pa.x - pb.x, dy = pa.y - pb.y;printf("%.0lf\n", sqrt(dx * dx + dy * dy) * 10);}return 0;
}

http://www.ppmy.cn/embedded/31759.html

相关文章

关于win平台c语言引入开源库的问题与解决

许久不写博客&#xff0c;五一还在加班&#xff0c;就浅浅写一篇吧 最近除了做物联网平台 还对网关二次开发程序做了修改&#xff0c;网关的二次开发去年年底的时候做过&#xff0c;但是当时的逻辑不是十分完善&#xff0c;差不多已经过了半年了&#xff0c;很多细节已经忘记了…

数仓技术选型

数仓技术选型 考虑因素 考虑因素 数据量大小&#xff0c;业务需求&#xff0c;行业内经验&#xff0c;技术成熟度&#xff0c;开发维护成本&#xff0c;学习成本&#xff0c;总成本预算。 数据存储&#xff1a;MySQl&#xff0c;HDFS&#xff0c;HBase&#xff0c;Redis&#…

Golang | Leetcode Golang题解之第56题合并区间

题目&#xff1a; 题解&#xff1a; func merge(intervals [][]int) (ans [][]int) {sort.Slice(intervals, func(i, j int) bool { return intervals[i][0] < intervals[j][0] })ans append(ans, intervals[0])for _, e : range intervals[1:] {if ans[len(ans)-1][1] &l…

AI代理架构的发展:从单一到多代理系统的演进及其影响分析

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

机器学习的两种典型任务

机器学习中的典型任务类型可以分为分类任务&#xff08;Classification&#xff09;和回归任务&#xff08;Regression&#xff09; 分类任务 回归任务 简单的理解&#xff0c;分类任务是对离散值进行预测&#xff0c;根据每个样本的值/特征预测该样本属于类 型A、类型B 还是类…

匠心精神与创新力量:构筑网络安全的新防线

一、匠心精神在网络安全中的重要性 匠心精神代表着对工作的专注和对质量的极致追求。在网络安全领域&#xff0c;这意味着对每一个安全漏洞的深入挖掘&#xff0c;对每一项安全技术的精心打磨。亿林网络李璐昆的提名&#xff0c;正是对其在网络安全领域匠心精神的认可。 二、…

提示词工程入门-使用文心一言4.0-通义千问-GPT4-Claude3通用提示技巧测试

提示词工程基础&#x1f680; 在了解完了大语模型的基本知识&#xff0c;例如API的使用多轮对话&#xff0c;流式输出&#xff0c;微调&#xff0c;知识向量库等知识之后&#xff0c;接下来需要进一步补足的一个大块就是提示词工程&#xff0c;学习和了解提示词工程除了基本的提…

Day27-Java基础之常用类2

第一章 Date类 1.1 Date概述 java.util.Date类 表示特定的瞬间&#xff0c;精确到毫秒。 继续查阅Date类的描述&#xff0c;发现Date拥有多个构造函数&#xff0c;只是部分已经过时&#xff0c;我们重点看以下两个构造函数 public Date()&#xff1a;从运行程序的此时此刻到…