The Last Battle —— 2023~2024 赛季考场代码合辑

发布时间 2023-11-02 16:36:43作者: yhk1001

\[\Huge\mathfrak{CSP - S 2023} \]

\(\textrm{A}\;\text{密码锁}\)
\({\color{limegreen}\textrm{100}}\textrm{ / 100}\)

\(\textrm{We decide.}\)
\(\textrm{We choose.}\)
\(\textrm{As we decide and choose, so are our lives formed.}\)
\(\textrm{In the end, forming our own destiny is what ambition is about.}\)

点击查看代码 ```cpp /* We decide. We choose. As we decide and choose, so are our lives formed. In the end, forming our own destiny is what ambition is about. */

include

include

include

using namespace std;

const int N = 8, V = 1e5;

int n;
int cnt[V + 5];
int a[10], b[10];

int vis[V + 5], dfn;
void cpy()
{
for (int i = 1; i <= 5; i++)
b[i] = a[i];
return ;
}
int calc()
{
int res = 0;
for (int i = 1; i <= 5; i++)
res = res * 10 + b[i];
return res;
}

int main()
{
freopen("lock.in", "r", stdin);
freopen("lock.out", "w", stdout);

scanf("%d", &n);
for (int T = 1; T <= n; T++)
{
	for (int i = 1; i <= 5; i++)
		scanf("%d", a + i);

	dfn++;
	for (int i = 1; i <= 5; i++)
	{
		for (int x = 1; x <= 9; x++)
		{
			cpy();
			b[i] = (b[i] + x) % 10;
			vis[calc()] = dfn;

			cpy();
			b[i] = (b[i] + 10 - x) % 10;
			vis[calc()] = dfn;
		}
	}

	for (int i = 1; i < 5; i++)
	{
		for (int x = 1; x <= 9; x++)
		{
			cpy();
			b[i] = (b[i] + x) % 10;
			b[i + 1] = (b[i + 1] + x) % 10;
			vis[calc()] = dfn;

			cpy();
			b[i] = (b[i] + 10 - x) % 10;
			b[i + 1] = (b[i + 1] + 10 - x) % 10;
			vis[calc()] = dfn;
		}
	}

	for (int i = 0; i < V; i++)
		cnt[i] += (vis[i] == dfn);
}

int ans = 0;
for (int i = 0; i < V; i++)
	ans += (cnt[i] == n);
printf("%d\n", ans);
return 0;

}

</details>



$\textrm{B}\;\text{消消乐}$




$\textrm{C}\;\text{结构体}$
${\color{limegreen}\textrm{100}}\textrm{ / 100}$