2025多校沖刺CSP模擬賽1(螳臂復活祭)
寫在前面:
推歌:
《馬丁的早晨》
馬丁 馬丁 馬丁
每天早晨你醒來
馬丁 馬丁 馬丁
有個角色在等待
變成了龍啊真可愛
真可愛
變成原始人不太帥
不太帥
郭默是你的好朋友
我們去玩吧
羅娜是你喜歡的女孩
你真了不起
馬丁 馬丁 馬丁
你是超人飛得快
馬丁 馬丁 馬丁
你的故事太奇怪
馬丁 馬丁 馬丁
無論校內和校外
馬丁 馬丁 馬丁
有了你生活更精彩
為什么總發生在我身上
題解未動,廢話先行:
這次的模擬賽,肝硬化竟取得了比它近三次校內模擬賽的總分之和還要高 \(5pts\) 的成績!(雖然 \(rank~50\) ),興奮異常(?其實沒有),遂寫博文(其實是前幾天沒空寫)。
順帶一提,那個格式化代碼真的好丑(也可能是我沒品罷,山豬吃不了溪石)
開始題解:
T1 交友(friend)
(好久沒A \(T1\) 了)
題目描述:
有個網格,上面有草( \(G\) )和牛( \(C\) )和空氣( \(.\) ),倆牛吃了緊挨著它倆的草,到了一個格子就配對,草被吃了就沒了不能吃第二遍,求最多配對數。
輸入格式:
中間忘了。
輸出格式:
后面忘了。
樣例1
輸入:
4 5
.CGGC
.CGCG
CGCG.
.CC.C
輸出:
4
樣例解釋:
樣例很明了。
數據范圍:
看我代碼。
Solve:
可以很容易發現,一頭牛周圍至多八個位置可能會有與它配對的牛:

于是我們可以遍歷整個矩陣,如果那個位置是牛,那么就枚舉這四個位置:

之后兩頭牛配對之后就把它們吃的那塊草皮清空就好了。
Code:
#include <bits/stdc++.h>
using namespace std;
const int _ = 1010;
int n, m, g[_][_];
long long ans;
char s[_];
int main(){
freopen("friend.in", "r", stdin);
freopen("friend.out", "w", stdout);
scanf("%d%d", & n, & m);
for(int i = 1; i <= n; i ++){
scanf("%s", s);
for(int j = 1; j <= m; j ++){
if(s[j - 1] == 'G'){
g[i][j] = 1;
}
if(s[j - 1] == 'C'){
g[i][j] = 10086;
}
}
}
for(int i = 1; i <= n; i ++){
for(int j = 1; j <= m; j ++){
if(g[i][j] == 10086){
if(g[i][j + 1] == 1 && g[i][j + 2] == 10086){
ans ++;
g[i][j + 1] = 0;
}
if(g[i + 1][j] == 1 && g[i + 2][j] == 10086){
ans ++;
g[i + 1][j] = 0;
}
if((g[i + 1][j] == 1 || g[i][j + 1] == 1) && g[i + 1][j + 1] == 10086){
ans ++;
if(g[i][j + 1] == 1){
g[i][j + 1] = 0;
}
else g[i + 1][j] = 0;
}
if((g[i][j - 1] == 1 || g[i + 1][j] == 1) && g[i + 1][j - 1] == 10086){
ans ++;
if(g[i][j - 1] == 1)g[i][j - 1] = 0;
else g[i + 1][j] = 0;
}
}
}
}
printf("%lld", ans);
return 0;
}
/*
4 5
.CGGC
.CGCG
CGCG.
.CC.C
*/
T2 煉金(alchemy):
題目描述:
你覺得鉛是世界上最好的金屬,你的國王也覺得,于是他讓你用國庫里的金屬發明盡量多的鉛。你知道 \(M\) 種金屬,每種金屬都只知道一種配方,每種配方都是用兩種原料金屬各一克來反應生成一克該金屬,每次只能取整數克金屬,每種配方能用無窮次,鉛( \(Pb\) )為一號元素,求最終鉛的最大質量。
輸入格式:
一行 \(T\) ,一行 \(m\) , \(m\) 行,第 \(i\) 行表示第 \(i\) 號元素的配方,一行 \(m\) 個數,表示國庫里每號元素有多少克。
輸出格式:
后面忘了。
樣例1
輸入:
3
3
2 3
1 3
1 2
5 2 3
5
3 4
3 4
4 5
3 5
1 3
0 8 6 2 4
4
3 4
2 3
2 3
2 3
0 1 1 0
輸出:
4
樣例解釋:
樣例 \(1\) 中,用 \(2\) 克 \(2\) 號金屬和 \(2\) 克 \(3\) 號金屬制造 \(2\) 克鉛,最終共得到 \(7\) 克鉛。
樣例 \(2\) 中,先用 \(2\) 克 \(3\) 號金屬和 \(2\) 克 \(5\) 號金屬制造 \(2\) 克 \(4\) 號金屬,然后用 \(4\) 克 \(3\) 號金屬和 \(4\) 克 \(4\) 號金屬制造 \(4\) 克鉛。注意,可能有兩種配方使用相同的兩種原料金屬(只是煉金術手法不同)。也要注意,并不是每種金屬都一定會作為其他配方的原料;在本例中,\(2\) 號金屬從未作為原料。
樣例 \(3\) 中,注意某種金屬可能可以用來制造自身。(有時候煉金術的規律確實很逆天!)但在本例中無法制造出任何鉛。由于配方只能以整數克操作,不能用 \(0.5\) 克 \(2\) 號金屬和 \(0.5\) 克 3 號金屬制造 \(0.5\) 克 \(4\) 號金屬,再用 \(0.5\) 克 \(3\) 號金屬和 \(0.5\) 克 \(4\) 號金屬制造 \(0.5\) 克鉛。
數據范圍:
看我代碼。
Solve:
你等下我被王5大蛇Hack了【大悲】。

浙公網安備 33010602011771號