Ftt2333's Nest
给你一个字符串 ,有 次询问。
每次询问给出四个数 ,,,。
求 。
先二分答案,令长度为 ,接下来就是要判断是否存在 使 。
也就是说 。
给你一个字符串 ,每个位置都有一个权值 。
定义 和 两个位置 相似表示 。
对于所有的 求:
考虑倒着建 ,发现 是 相似的等价于存在一个 等价类包含 和 ,并且 。
有了这个我们就可以计算每一个 等价类对答案的贡献。
貌似没啥好说的
title: Welcome to Ftt2333's Blog
menu:
- name: Archives
link: /archives/
- name: Categories
link: /categories/
- name: Tags
link: /tags/
twikoo:
enable: false
envId:
valine:
enable: false
serverURL:
appID:
appKey:
waline:
enable: false
serverURL:
cusdis:
enable: false
appId:
输入一个 位数,他会输出一个 位数。
/*
* @Author: ftt2333
* @Email: ftt2333@126.com
* @Last Modified time: 2022-10-11 16:54:18
*/
#include<bits/stdc++.h>
using namespace std;
#define qin cin
#define qout cout
#define rep(i, a, b) for(auto i = (a); i <= (b); i++)
#define per(i, a, b) for(auto i = (a); i >= (b); i--)
char s[20];
int a[20], b[20];
int main() {
scanf("%s", s + 1);
rep(i, 1, 6) a[i] = s[i] - 48;
rep(i, 1, 6) b[i * 2 - 1] = a[i], b[i * 2] = 10 - a[i];
rep(i, 1, 4) qout << b[i];
qout << (b[5] - b[6] + 10) % 10;
qout << (b[7] + b[8] + b[9]) % 10;
qout << (b[10] + b[11] + b[12] + 1) % 10;
}
输入114514
有惊喜
#include <bits/stdc++.h>
using namespace std;
#ifndef LOCAL
void debug(...) {}
#endif
#define rep(i, n) for (int i = 0; i < (n); ++i)
#define per(i, n) for (int i = (n) - 1; ~i; --i)
#define all(v) (v).begin(), (v).end()
using ll = long long;
int main() {
#ifndef LOCAL
cin.tie(nullptr)->sync_with_stdio(false);
#endif
}
#ifndef MINE_DEBUG
#define MINE_DEBUG
#include <bits/stdc++.h>
using namespace std;
namespace debug_helper {
ostream& operator<<(ostream& os, __int128 x) {
if (x >= 0) {
if (x > 9) os << x / 10;
os << char(x % 10 + 48);
} else {
os << '-';
if (x < -9) os << -x / 10;
os << char(48 - x % 10);
}
return os;
}
ostream& operator<<(ostream& os, unsigned __int128 x) {
if (x > 9) os << x / 10;
os << char(x % 10 + 48);
return os;
}
template <class T1, class T2>
ostream& operator<<(ostream& os, pair<T1, T2> p) {
return os << '{' << p.first << ", " << p.second << '}';
}
template <size_t P, enable_if_t<P == 1>*, class... Args>
void tuple_helper(ostream& os, tuple<Args...> tp);
template <size_t P, enable_if_t<P != 1>*, class... Args>
void tuple_helper(ostream& os, tuple<Args...> tp);
template <class... Args>
ostream& operator<<(ostream& os, tuple<Args...> x) {
os << '{';
tuple_helper<tuple_size<tuple<Args...>>::value,
nullptr, Args...>(os, x);
return os << '}';
}
template <class T> void list_helper(ostream& os, T v);
template <class T>
ostream& operator<<(ostream& os, vector<T> v) {
list_helper(os, v); return os;
}
template <class T>
ostream& operator<<(ostream& os, list<T> v) {
list_helper(os, v); return os;
}
template <class T>
ostream& operator<<(ostream& os, set<T> v) {
list_helper(os, v); return os;
}
template <class T>
ostream& operator<<(ostream& os, multiset<T> v) {
list_helper(os, v); return os;
}
template <class T>
ostream& operator<<(ostream& os, unordered_set<T> v) {
list_helper(os, v); return os;
}
template <class T>
ostream& operator<<(ostream& os, unordered_multiset<T> v) {
list_helper(os, v); return os;
}
template <class T> void map_helper(ostream& os, T v);
template <class T1, class T2>
ostream& operator<<(ostream& os, map<T1, T2> v) {
map_helper(os, v); return os;
}
template <class T1, class T2>
ostream& operator<<(ostream& os, unordered_map<T1, T2> v) {
map_helper(os, v); return os;
}
template <class T1, class T2>
ostream& operator<<(ostream& os, multimap<T1, T2> v) {
map_helper(os, v); return os;
}
template <class T1, class T2>
ostream& operator<<(ostream& os, unordered_multimap<T1, T2> v) {
map_helper(os, v); return os;
}
template <class T>
void list_helper(ostream& os, T v) {
os << '{';
bool flag = true;
for (auto x : v) {
if (flag) flag = false;
else os << ", ";
os << x;
}
os << '}';
}
template <class T>
void map_helper(ostream& os, T v) {
os << '{';
bool flag = true;
for (auto x : v) {
if (flag) flag = false;
else os << ", ";
os << x.first << ": " << x.second;
}
os << '}';
}
template <size_t P, enable_if_t<P == 1>*, class... Args>
void tuple_helper(ostream& os, tuple<Args...> tp) {
os << get<0>(tp);
}
template <size_t P, enable_if_t<P != 1>*, class... Args>
void tuple_helper(ostream& os, tuple<Args...> tp) {
tuple_helper<P - 1, nullptr, Args...>(os, tp);
os << ", " << get<P - 1>(tp);
}
template <class T> void debug(T x) { cerr << x; }
template <class T, class... Args>
void debug(T x, Args... args) {
cerr << x << ", ";
debug(args...);
}
}
#define debug(...) \
cerr << #__VA_ARGS__ " = ", \
debug_helper::debug(__VA_ARGS__), \
cerr << '\n'
#endif