CSP-S 2023 T1 题解

很简单,我们只需要暴力枚举五位密码,每次判断拨一个齿轮和两个齿轮能达到的状态数,如果等于 \(n\),答案 \(+1\)。时间复杂度 \(O(10^5 \times 5n)\)。

code

#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring> using namespace std; using ll = long long; const int kMaxN = 110, kInf = (((1 << 30) - 1) << 1) + 1, kMod = 1e9 + 7; int n, a[9][6], b[6], ans = 0, sum = 0, cnt = 0, c[4], idx = 0; int main() {
// freopen(".in", "r", stdin);
// freopen(".out", "w", stdout);
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
cin >> n;
for (int i = 1; i <= n; ++ i) {
for (int j = 1; j <= 5; ++ j) {
cin >> a[i][j];
}
}
// 枚举五位密码
for (int i = 0; i <= 9; ++ i) {
for (int j = 0; j <= 9; ++ j) {
for (int k = 0; k <= 9; ++ k) {
for (int l = 0; l <= 9; ++ l) {
for (int x = 0; x <= 9; ++ x) {
b[1] = i, b[2] = j, b[3] = k, b[4] = l, b[5] = x;
sum = 0;
// 拨一个齿轮能达到的状态
for (int I = 1; I <= n; ++ I) {
cnt = 0;
for (int J = 1; J <= 5; ++ J) {
(b[J] == a[I][J]) && (++ cnt);
}
(cnt == 4) && (++ sum);
}
// 拨两个齿轮能达到的状态
for (int I = 1; I <= n; ++ I) {
cnt = 0, idx = 0;
for (int J = 1; J <= 5; ++ J) {
if (b[J] == a[I][J]) { // 如果相等
++ cnt; // 相同个数 +1
} else { // 否则记录
c[(idx == 3? idx : ++ idx)] = J;
}
}
if (cnt == 3) { // 如果有 2 个不同
if (idx == 2 && abs(c[1] - c[2]) == 1) { // 如果相邻
if ((a[I][c[1]] < b[c[1]]? 10 - (b[c[1]] - a[I][c[1]]) : a[I][c[1]] - b[c[1]]) == (a[I][c[2]] < b[c[2]]? 10 - (b[c[2]] - a[I][c[2]]) : a[I][c[2]] - b[c[2]]) && (a[I][c[1]] > b[c[1]]? 10 - (a[I][c[1]] - b[c[1]]) : b[c[1]] - a[I][c[1]]) == (a[I][c[2]] > b[c[2]]? 10 - (a[I][c[2]] - b[c[2]]) : b[c[2]] - a[I][c[2]])) { // 如果能朝同一方向波动且幅度相同
++ sum;
}
}
}
}
if (sum == n) { // 如果能达到的个数 = n
++ ans; // 答案 +1
}
}
}
}
}
}
cout << ans << '\n';
return 0;
}

CSP-S 2023 T1 题解的更多相关文章

  1. WC2019 全国模拟赛第一场 T1 题解

    由于只会T1,没法写游记,只好来写题解了... 题目链接 题目大意 给你一个数列,每次可以任取两个不相交的区间,取一次的贡献是这两个区间里所有数的最小值,求所有取法的贡献和,对 \(10^9+7\) ...

  2. 【洛谷比赛】[LnOI2019]长脖子鹿省选模拟赛 T1 题解

    今天是[LnOI2019]长脖子鹿省选模拟赛的时间,小编表示考的不怎么样,改了半天也只会改第一题,那也先呈上题解吧. T1:P5248 [LnOI2019SP]快速多项式变换(FPT) 一看这题就很手 ...

  3. 洛谷月赛2018.8 T1题解(U28036 Nagisa loves Tomoya)

    [题解] 我们设原来的数组为a1,a2,a3..., 那么一次操作之后的数组变为a1+a2,a2+a3,a3+a4..., 两次操作之后数组变为a1+2a2+a3,a2+2a3+a4,a3+2a4+a ...

  4. csp联考T1

    本题主要难点在于如何处理dist^2的问题 40分算法 n^2暴力就不必多嘴,直接枚举根节点DFS就行了. 70分算法 对于b=0的情况,我们可以考虑用换根法来计算根节点的变化对总权值带来的影响. 换 ...

  5. NOIP2017普及组T1题解

    神奇的链接 上面时题目. 其实不得不说,这一题很水,比2015年的第一题水多了. 直接按题目套公式就行了,当然你也可以像我一样化简一下. 直接看代码: #include<cstdio> # ...

  6. 2019/10/22 test T1 题解

    题目描述 给定n个a[i],b[i],求min(x$\in$R){$\sum\limits_{i=1}^{n}$|a[i]*x+b[i]|} 输入格式 第 1行 1个整数 n第 2行 n个整数,第 i ...

  7. 洛谷八月月赛 II T1 题解

    Content 在大小为 \(n\) 的数字三角形中,第 \(i\) 行包含有 \(i\) 个数字,数字从上到下,从左到右依次排列为 \(1,2,3,\dots\). 设第 \(i\) 行第 \(j\ ...

  8. 信奥题库(OI题库)8月月赛T1题解 幂次数

    0.前置知识 分解质因数 快速幂(不必要) 1.思路 首先,我们知道一个正整数(设它为 \(a\) )一定能分解成这样的形式: \[a= \prod_{i\in N^*} p_i^{c_i} \] 其 ...

  9. bzoj1630/2023 [Usaco2007 Demo]Ant Counting

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1630 http://www.lydsy.com/JudgeOnline/problem.ph ...

  10. 记codevs第一次月赛

    第一次参加这种有奖励的比赛(没错,我就是为猴子而去的 一年没怎么碰代码果然手生,还是用没写多久的C++,差点全跪了 T1数学奇才琪露诺: 首先定义一个函数F(x),F(x)=x的各个数位上的数字和 然 ...

随机推荐

  1. MySQL 中的数据排序是怎么实现的?

    MySQL 中的数据排序实现 在 MySQL 中,数据排序是通过 ORDER BY 子句实现的,主要涉及 文件排序 和 索引排序 两种方式. 1. 排序的基本原理 MySQL 的排序实现分为以下两种情 ...

  2. Junit单元测试的maven设置

    maven 官方文档: https://maven.apache.org/surefire/maven-surefire-plugin/usage.html maven是通过插件 maven-sure ...

  3. DPDI(Dispatch PDI)kettle调度管理平台升级内容

    DPDI升级内容(20240815版) DPDI online部署方式 定时任务优化(支持轮询机制,Cron可提示近5次运行时间) 运行任务优化(支持多机器分布式运行) 其它小功能优化 1. 首页可手 ...

  4. 解决 podman 容器无法在宿主机和容器内部相互访问问题的记录

    解决 podman 容器无法在宿主机和容器内部相互访问问题的记录 近期在使用 podman 时,遇到了容器无法在宿主机和容器内部相互访问的问题.经过一番探索,参考了这篇文章,成功解决了该问题.在此,我 ...

  5. 架构哲学与游戏工业化:策划x程序x抽象x复用x易用=降本增效

    (一)前言 策划 x 程序 x 抽象 x 复用 x 易用 = 降本增效 公式为什么是乘法而不是加法? 如果是加法,任何一个维度的数据为0时结果可能还是正数:如果是乘法,任何一个维度数据都不能为0否则结 ...

  6. java设置权限过滤器--防止用户未登录访问某些页面

    话不多说,上代码!!! package com.store.web.filter; import java.io.IOException; import javax.servlet.Filter; i ...

  7. 操作系统综合题之“用记录型信号量机制的wait操作和signal操作写出三个进程的同步代码(水果进箱问题-代码补充)”

    1.问题:假设一个水果赛选系统由三个进程A.B.C组成.进程A每次取一个水果,之后存放在货架F上,F的容量为每次只能存放一个水果.若货架上存放的是苹果则让进程B取出,并存放到苹果箱中:若货架上存放的是 ...

  8. centos7部署keepalived

    yum install keepalived -y 修改/etc/keepalived.conf配置文件,达到高可用状态 vim /etc/keepalived/keepalived.conf ! C ...

  9. 鸿蒙 NEXT(二):API12 带来的变革与创新

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  10. QtWidget项目-仿腾讯QQ音乐

    本博客主要介绍本人写的个人项目 - QtWidget5 仿腾讯QQ音乐项目. 效果演示 项目详情 源码 Gitee地址:https://gitee.com/run-little-peach/my-qq ...