7.15 长郡模考复盘

发布时间 2023-07-15 17:42:40作者: 啊鸧仓_Eliauk

说点闲话

今天的模考相比与\(\texttt {7.13}\)的模考还是要简单许多的,

我这个蒟蒻高兴到疯癫?!!!

这次没有爆零!

居然打了 \(170\) 分,全班第七!

这对于我这个蒟蒻可是天大的幸福!

最离谱的是,\(\texttt {T3}\) 是一道线段树的模板题,

但我却暴力卡常硬生生卡出了 \(80\) 分,全班第一?!

更离谱的是,除了 \(\texttt {T4}\),其他题目直接输样例就能骗 \(10\) 分?!

跟我一起唱:♫暴力出奇迹♪,♪骗分过样例♬……

啊哈哈哈哈哈?!!!

鸡汤来喽!

进入正题

照例放一下题面\(\texttt {PDF}\)

T1 谜

\(原题 \texttt {[USACO22JAN] Herdle B -} 洛谷\)

这道题可谓是我做过最简单的送分题,没有只因之一,做不出来的都是猪?好吧!(那你为什么没做出来

当时我的想法是先用一个 char 二维数组 \(s1\) 记录答案矩阵,

在读入的时候顺便用一个 int 变量 \(a\) 记录每种字母的数量,

再定义两个 int 变量 \(c,d\),分别记录绿色和黄色,

然后循环读入一个 char 变量 \(s2\)(猜测矩阵中的 \(s2_{ij}\)),同时与 \(s1_{ij}\) 比较,此时有两种情况:

  • 如果 \(s2\)\(s1_{ij}\) 相同,c ++

  • 否则,计算 s2 - 'a' 的结果并赋值给 int \(n\)

    如果 \(a_n > 0\)d ++,a[n] --

#include<bits/stdc++.h>
using namespace std;
char s1[4][4],s2,a[26];
int c,d;
int main(){
	//freopen("mystery.in","r",stdin);
	//freopen("mystery.out","w",stdout);
    //考场上复制下来的,不要介意
	for(int i = 1;i <= 3;i ++){
		for(int j = 1;j <= 3;j ++){
			cin>>s1[i][j];
			a[s1[i][j] - 'A'] ++;
		}
	}
	for(int i = 1;i <= 3;i ++){
		for(int j = 1;j <= 3;j ++){
			cin>>s2;
			if(s1[i][j] == s2)c ++,a[s2 - 'A'] --;
			else if(a[s2 - 'A'] )d ++,a[s2 - 'A'] --;
		}
	}
	cout<<c<<endl<<d;
	return 0;
}

结果……

\(\color {red} {\texttt {WA 2 }}\color {green} {\texttt {AC 8}}\)

QAQ!错了 \(2\) 个点!

正解

先把答案矩阵和猜测矩阵一口气读到 \(s1,s2\) 里,