题解:【YACS 2020 年 3 月月赛 丙组】 数字加密

324 字
2 分钟
题解:【YACS 2020 年 3 月月赛 丙组】 数字加密
先找规律,不难发现:
所以,对于最后一位的转换,只需要求出 密文最后一位的值就是明文的值,不需要写那么复杂用一堆 if。
后面的倒推就可以了,无非就是两次交换。注意第一位可能是 0,所以建议用字符串存.
AC Code:
/*Code by Block_Fish*/
#include <bits/stdc++.h>
#define log printf#define EPS 1e-8#define INF 0x3f3f3f3f#define FOR(i, l, r) for (int(i) = (l); (i) <= (r); ++(i))#define IOS \ ios::sync_with_stdio(false); \ cin.tie(nullptr); \ cout.tie(nullptr);
using namespace std;
typedef __int128 i128;typedef long long ll;typedef pair<int, int> PII;
string s, ans;
template <typename T>
inline T read() { T sum = 0, fl = 1; char ch = getchar(); for (; !isdigit(ch); ch = getchar()) if (ch == '-') fl = -1; for (; isdigit(ch); ch = getchar()) sum = sum * 10 + ch - '0'; return sum * fl;}
template <typename T>
inline void write(T x) { if (x < 0) { putchar('-'), write<T>(-x); return; } static T sta[35]; int top = 0; do { sta[top++] = x % 10, x /= 10; } while (x); while (top) putchar(sta[--top] + 48);}
int main() { IOS; cin >> s; FOR(i, 0, 3) ans += '0' + (9 - (s[i] - '0')); swap(ans[0], ans[3]); swap(ans[1], ans[2]); cout << ans; return 0;}支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
题解:【YACS 2020 年 3 月月赛 丙组】 数字加密
https://www.leo2011.eu.org/posts/yacs-15/相关文章智能推荐
1
题解:【YACS 2022年 1 月月赛 丙组】 平衡括号
题解【YACS 2022年 1 月月赛 丙组】 平衡括号植树造林 的题解。
2
题解:【YACS 2021 年 5 月月赛 丙组】植树造林
题解【YACS 2021 年 5 月月赛 丙组】植树造林 的题解。
3
题解:【YACS 2022年 1 月月赛 丙组】 平衡括号
题解洛谷 P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题的题解。
4
题解:P16007 [CCO 2016 Day 1] Field Trip 郊游
题解讲解了如何解决洛谷 P16007。
5
题解:P5691 [NOI2001] 方程的解数
题解洛谷 P5691【NOI 2001】方程的解数一题的题解,使用折半搜索。
随机文章随机推荐













