2024.9.2杂记
洛谷P1990 覆盖墙壁
题目描述
你有一个长为
0 0
0 00
砖头可以旋转,两种砖头可以无限制提供。你的任务是计算用这两种来覆盖
012 002 011 001 011
012 112 022 011 001
注意可以使用两种砖头混合起来覆盖,如
0112
0012
给定
输入格式
一个整数
输出格式
输出覆盖方法的最后
样例 #1
输入样例 #1
13
输出样例 #1
3465
提示
数据保证,
解题思路
解题方法来自 info___tion。
假设
-
当前
列被铺满,铺满前 列方案数为 ,这时只能放置竖立的砖头; -
当前
列被铺满,铺满前 列方案数为 ,这时只能放置横着的砖头;倘若放置竖立的砖头,则和上一个重复; -
假设
表示前 列被铺满的,但目前第 列未被铺满的方案数,则有两种情况,一种是该列上面缺失,另一种是该列下面缺失,则铺满前 列有 ;- 维护
,要么是后面补了一个横着的砖头,要么是补了一个 型砖头,因此 。
- 维护
C++代码
#include <bits/stdc++.h>
using namespace std;
const int N = 1000010, M = 10000;
typedef long long LL;
int n;
int f[N], g[N];
int main() {
cin >> n;
f[0] = 1, g[0] = 0, f[1] = g[1] = 1;
for (int i = 2; i <= n; i++) {
f[i] = ((f[i - 1] + f[i - 2]) % M + 2 * g[i - 2] % M) % M;
g[i] = (g[i - 1] + f[i - 1]) % M;
}
cout << f[n];
return 0;
}
洛谷P3612 [USACO17JAN] Secret Cow Code S
题面翻译
奶牛正在试验秘密代码,并设计了一种方法来创建一个无限长的字符串作为其代码的一部分使用。
给定一个字符串,对字符串进行一次操作(每一次正确的操作,最后一个字符都会成为新的第一个字符),然后把操作后的字符串放到操作前的字符串的后面。也就是说,给定一个初始字符串,之后的每一步都会增加当前字符串的长度。
给定初始字符串和
第一行输入一个字符串。该字符串包含最多
第二行输入 一个整数 long long
)。
请输出从初始字符串生成的无限字符串中的下标为
感谢 @y_z_h 的翻译
题目描述
The cows are experimenting with secret codes, and have devised a method for creating an infinite-length string to be used as part of one of their codes.
Given a string
Given the initial string and an index
输入格式
The input consists of a single line containing a string followed by
Note that
输出格式
Please output the
样例 #1
样例输入 #1
COW 8
样例输出 #1
C
提示
In this example, the initial string COW expands as follows:
COW -> COWWCO -> COWWCOOCOWWC
解题思路
分治。
对于一个长度为
-
如果
位于 ,则相当于求解 处的字符; -
如果
位于 ,则求解 的字符,而 。
C++代码
#include <bits/stdc++.h>
using namespace std;
const int N = 1010, M = 10000;
typedef long long LL;
string S;
LL n, length;
void dfs(LL n) {
if (n <= length) {
cout << S[n - 1];
return;
}
LL i = length;
while ((i << 1) < n) i <<= 1;
n -= (i + 1);
if (n == 0) n = i;
dfs(n);
}
int main() {
cin >> S >> n;
length = S.size();
dfs(n);
return 0;
}
本文来自博客园,作者:Cocoicobird,转载请注明原文链接:https://www.cnblogs.com/Cocoicobird/p/18424317
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架