2024.9.6校测
T1
题目描述
猫猫是丛林里很多动物心中的天使,她为此十分自豪。猫猫最爱吃鱼了,她每天都要去池塘钓鱼吃。猫猫经常吃鱼脑,数学特别强,然而,小女生的性格决定了她的贪玩。
一天,猫猫钓到了很多条鱼。她并不想马上就把可怜的鱼儿吃掉,而是先折磨够之后再吃(有句话叫什么来着,最毒不过猫猫心)。
猫猫将这很多很多(数不过来)条鱼按照外观的漂亮程度排序,每个鱼的编号依次为
猫猫要把这些鱼放到桶里去。她每次拿的鱼的数目是任意的。中的鱼的“总美观程度”为各条鱼美观程度之和。例如:猫猫这一次拿了第一条鱼和第三条鱼,那么美观程度为
猫猫想知道,她可以获得的第
输入格式
数据包含
输出格式
输出包含
输入样例
1
7
输出样例
13
样例解释
猫猫能够拿到的美观程度从小到大为
数据规模
对于
对于
题解
我们将每条鱼的美观程度转化为三进制,那他们的美观程度就分别是
考虑如何快速找到第
于是,可以将
完整代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n, k;
signed main(){
freopen("catfish.in", "r", stdin);
freopen("catfish.out", "w", stdout);
scanf("%lld", &n);
while(n--){
scanf("%lld", &k);
int len = log2(k) + 1, ans = 0, mi = 1;
for(int i = len; i >= 1; i--){
ans += mi * (k % 2);
k /= 2;
mi *= 3;
}
printf("%lld\n", ans);
}
return 0;
}
T2
题目描述
回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法^_*)。她发现,把大池子视为
在代表池子的
猫猫是个贪婪的家伙,所以她想一口吃掉尽量多的鱼。请你帮猫猫计算一下,她一口下去,最多可以吃掉多少条鱼?
输入格式
有多组输入数据。
每组数据:
第一行有两个正整数
每两个数字之间用空格隔开。
输出格式
只有一个整数——猫猫一口下去可以吃掉的鱼的数量,占一行,行末有回车。
输入样例
4 6
0 1 0 1 0 0
0 0 1 0 1 0
1 1 0 0 0 1
0 1 1 0 1 0
输出样例
3
数据规模
对于
对于
对于
题解
一眼 DP。设
那么答案就是
考虑如何转移,以
但我们发现,假设在
设
设
那么就可以列出转移方程
同理可得:
状态个数
但这题空间大小只有
完整代码
#include <bits/stdc++.h>
using namespace std;
#define int short
const int N = 2.5e3 + 5;
int dp[N][N], n, m;
bool a[N][N];
int max(int x, int y){
if(x > y)
return x;
else
return y;
}
int min(int x, int y){
if(x > y)
return y;
else
return x;
}
signed main(){
freopen("meal.in", "r", stdin);
freopen("meal.out", "w", stdout);
while(scanf("%hd", &n) != EOF){
scanf("%hd", &m);
memset(dp, 0x3f, sizeof(dp));
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
scanf("%hd", &a[i][j]);
for(int i = 1; i <= n; i++){
int now = 0;
for(int j = 1; j <= m; j++){
dp[i][j] = now;
if(!a[i][j])
now++;
else
now = 0;
}
}
for(int j = 1; j <= m; j++){
int now = 0;
for(int i = 1; i <= n; i++){
dp[i][j] = min(dp[i][j], now);
if(!a[i][j])
now++;
else
now = 0;
}
}
int ans = 0;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
if(a[i][j]){
dp[i][j] = min(dp[i - 1][j - 1], dp[i][j]) + 1;
ans = max(ans, dp[i][j]);
}
else
dp[i][j] = 0;
memset(dp, 0x3f, sizeof(dp));
for(int i = 1; i <= n; i++){
int now = 0;
for(int j = m; j >= 1; j--){
dp[i][j] = now;
if(!a[i][j])
now++;
else
now = 0;
}
}
for(int j = 1; j <= m; j++){
int now = 0;
for(int i = 1; i <= n; i++){
dp[i][j] = min(dp[i][j], now);
if(!a[i][j])
now++;
else
now = 0;
}
}
for(int i = 1; i <= n; i++)
for(int j = m; j >= 1; j--)
if(a[i][j]){
dp[i][j] = min(dp[i - 1][j + 1], dp[i][j]) + 1;
ans = max(ans, dp[i][j]);
} else
dp[i][j] = 0;
printf("%hd\n", ans);
}
return 0;
}
T3
题目描述
猫猫把嘴伸进池子里,正准备“吸”鱼吃,却听到门铃响了。猫猫擦了擦脸上的水,打开门一看,那人正是她的好朋友——川川。
川川手里拿着一辆玩具汽车,对猫猫说:“这是我的新汽车!”接着,伴随一阵塑料叩击声,玩具汽车的车门竟开了,一只蜗牛慢慢吞吞爬了出来。
“哇!这么大的蜗牛……”猫猫惊讶道。
“这是我的宠物蜗牛,他叫点点。”川川介绍道。
“把他送给我好吗?”猫猫央求道。
“可以让他陪你几天,但是不能送给你……”
点点沿着川川的身体,爬到了地上,又移到了猫猫的池子旁边,只听见猫猫向川川介绍她的“创意吃鱼法”,心里不禁起了一丝凉意:“这个女生太毒了……吃鱼前还要玩鱼……”转眼一看,池中的鱼依旧畅快地游来游去。
“或许这些鱼听不懂猫语吧……好在我会一点儿猫语,也会一点鱼语……阿弥陀佛,善哉善哉。我还是救救这些鱼吧……”点点自言自语,一边费力地移动着身躯。他认识到——单凭自己的力量,把猫猫的阴谋告诉每一条鱼,似乎不太可能——自己底盘太低,走不快,看来只得想其他办法来传达信息。一翻认真思考之后,点点想到,如果把猫猫的计划告诉其中一条鱼,再让鱼们互相传达消息,那么在相对较短的时间内,每条鱼都会得知猫猫的计划。
鱼们的社会等级森严,除了国王菜鱼之外,每条鱼均有且只有一个直接上级,菜鱼则没有上级。如果 A 是 B 的上级,B 是 C 的上级,那么 A 就是 C 的上级。
绝对不会出现这样两条鱼 A、B:A 是 B 的上级,B 也是 A 的上级。
最开始的时刻是 0,点点要做的,就只是用 1 单位的时间把猫猫的阴谋告诉某一条“信息源鱼”,让鱼们自行散布消息。在任意一个时间单位中,任何一条已经接到通知的鱼,都可以把消息告诉他的一个直接上级或者直接下属。现在,点点想知道:
-
到底需要多长时间,消息才能传遍池子里的鱼?
-
使消息传递过程消耗的时间最短,可供选择的“信息源鱼”有那些?
输入格式
有多组输入数据,每组数据:
第一行有一个数
第
输出格式
对于每组输入数据:
第一行有一个数,表示最后一条鱼接到通知的最早时间。
第二行有若干个数,表示可供选择的鱼“信息源鱼”的标号,按照标号从小到大的顺序输出,中间用空格分开。
输入样例
8
1
1
3
4
4
4
3
输出样例
5
3 4 5 6 7
数据规模
对于
T4
题目描述
猫猫送走了客人,留住了蜗牛点点,晃晃悠悠走到池子边,又打起了鱼的主意。俯瞰池子,猫猫发现鱼阵明显乱了。“难道鱼们故意让我无法下嘴?”猫猫看到正在池边散步的点点,心想:“一定是他告的密……”猫猫愤怒地抓起点点,把他关进了抽屉里。
猫猫想:“好啊,鱼儿啊,你们不就是会传递信息吗?有什么了不起?用挡板把你们隔离开,看你们还怎么交流!”猫猫随即从后花园里拿来若干挡板,打算用这些挡板在水中设立“隔离室”,把鱼们分开。
池塘已经被猫猫抽象成了
输入格式
第一行有两个整数
输出格式
对于每组输入数据,输出一行:一个数字,猫猫所需挡板的最短总长度。
输入样例
4 3
0 1 0
0 0 0
1 0 1
0 0 0
输出样例
5
样例解释
可以这么分:
由于池塘边框不需要放置挡板,所以这个分割方案所需的挡板总长度为
数据规模
对于
对于
对于
对于
本文来自博客园,作者:JPGOJCZX,转载请注明原文链接:https://www.cnblogs.com/JPGOJCZX/p/18422881
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!